입문자를 위한 MLOps: MLOps 시작하기 (2023.06.22)

https://www.cncf.io/blog/2023/06/22/mlops-for-beginners-getting-started-with-mlops/

한줄 요약: MLOps의 기반이 되는 지식과 MLOps의 단계 및 이점을 설명

관련 프로젝트: https://github.com/kelvins/awesome-mlops

MLOps: https://ml-ops.org/

이 문서는 기계 번역 후에 일부 내용만 다듬었으므로, 보다 정확한 이해를 위해서는 원문을 보는 것이 좋습니다.

게시일: 2023년 6월 22일 (Link)

이 앰배서더 게시물은 CNCF 앰배서더인 Atulpriya Sharma가 InfraCloud 블로그에 처음 게시했습니다. 개발자 홍보 대사, InfraCloud Technologies

머신 러닝(ML, Machine Learning)은 특정 작업의 자동화와 함께 데이터 기반 의사결정을 가능하게 함으로써 다양한 산업에 혁신을 가져왔습니다. 예를 들어, 많은 금융 기관에서는 사기 거래를 탐지하기 위해 고급 머신 러닝 모델을 배포합니다. 이러한 모델은 지속적으로 발전해야 하며 그렇지 않으면 오탐률이 급격히 증가하게 됩니다.

하지만 새로운 머신 러닝 모델을 프로덕션 환경에 배포하는 것은 쉽지 않습니다. 운영 데이터에 대한 모델 학습, 배포, 유지 관리가 쉽지 않기 때문입니다. 운영 환경의 머신 러닝 모델은 변화하는 데이터와 환경에 적응하지 못하는 경우가 많습니다. 그리고 이 모든 작업을 수동으로 수행하는 것은 효율적이지 않습니다.

MLOps 또는 머신 러닝 운영은 머신 러닝 개발 및 배포의 전체 수명 주기를 자동화하여 이러한 문제를 해결하는 데 도움을 줍니다. 이 포스팅에서는 MLOps의 정의, 작동 방식, 장점과 과제, 사용할 수 있는 다양한 도구에 대해 설명합니다.

하지만 MLOps가 무엇인지 자세히 알아보기 전에 한 걸음 물러나 기존 모델 또는 머신 러닝 모델 작업의 문제점을 살펴봅시다.

머신 러닝 개발: 기존 과제

인공지능(AI) 및 머신 러닝 분야는 계속 발전하고 있지만, 이와 관련된 프로세스에 있어서는 그 발전 속도가 느립니다. 오늘날 많은 조직이 다양한 사용 사례에 머신러닝 모델을 배포하고 있지만, 이러한 프로세스의 대부분은 수동으로 진행되어 여러 가지 문제를 야기합니다.

  • 데이터 품질 및 관리: 불완전하거나 부정확한 데이터는 머신러닝 모델의 성능에 영향을 미칠 수 있습니다. 여러 데이터 소스 및 형식을 수동으로 작업하면 오류가 발생하기 쉽고 프로세스 속도가 느려집니다.

  • 모델 복잡성: 데이터와 환경이 변화함에 따라 머신러닝 모델은 시간이 지남에 따라 복잡해질 수 있습니다. 복잡한 모델을 배포, 확장 및 작업하는 것은 어려운 일입니다.

  • 재현성: 데이터, 환경, 인프라 등이 다양하기 때문에 머신러닝 모델을 수동으로 재현하고 시간에 따른 변화를 추적하기가 어렵습니다.

  • 배포 복잡성: 다양한 환경과 시스템에 머신 러닝 모델을 배포하는 것은 복잡할 수 있으며 인프라를 크게 변경해야 할 수도 있습니다.

  • 협업: 머신 러닝 개발 팀에는 일반적으로 데이터 과학자, 개발자, 운영 담당자 등 서로 다른 전문성을 가진 사람들이 있습니다. 간소화된 프로세스가 없다면, 이 세 사람이 사일로(Silo, 조직 간 장벽과 부서 이기주의)에서 각자의 프로세스를 만들어 작업하면서 오해가 생길 수 있습니다.

이는 머신러닝 모델의 개발과 배포를 방해하는 몇 가지 과제입니다. 이러한 문제를 극복하기 위해 다양한 프로세스를 자동화하고 간소화하는 MLOps가 도입되었습니다.

머신 러닝이란 무엇인가요?

우리 모두가 알고 있듯이 머신러닝은 컴퓨터가 실제로 프로그래밍하지 않고도 학습하고 예측할 수 있도록 하는 인공 지능의 한 분야입니다.

머신 러닝은 다양한 산업 분야에서 사용됩니다. 시청할 영화를 추천하는 것(YouTube/Netflix)부터 사용자의 음성을 이해하고 선풍기를 켜는 것(Alexa)에 이르기까지 머신 러닝은 일상 생활에서 광범위하게 사용되고 있습니다. 은행과 같은 산업 분야에서도 신용카드의 사기 행위를 감지하고 챗봇을 배포하여 고객 서비스를 더 빠르게 처리하는 데 머신러닝을 사용합니다. 이는 실생활에서 머신러닝이 적용되는 몇 가지 예에 불과합니다.

머신 러닝의 유형

사람이 다양한 방식으로 학습하는 것처럼 알고리즘도 다양한 방식으로 학습합니다. 다음은 머신 러닝의 세 가지 주요 형태입니다. 머신 러닝에는 세 가지 유형이 있습니다:

  • 지도 학습: 지도 학습은 제공된 입력 데이터에 레이블이 지정된 머신 러닝 유형입니다. 즉, 일부 데이터에는 이미 정답이 태그가 지정되어 있습니다. 예를 들어 과일 이미지가 포함된 입력을 제공하는 경우 각 이미지에 해당 과일에 대한 레이블도 지정합니다. 모델은 이를 학습하여 레이블이 지정된 데이터를 기반으로 새로운 데이터에 대해 올바른 출력을 생성할 수 있습니다. 회귀와 분류는 지도 학습 모델의 두 가지 유형입니다.

  • 비지도 학습: 비지도 학습은 제공된 입력 데이터에 레이블이 지정되거나 분류되지 않은 경우입니다. 알고리즘은 아무런 정보 없이 이를 처리해야 합니다. 여기서 모델은 정렬되지 않은 입력을 패턴과 유사성에 따라 그룹화해야 합니다. 예를 들어, 알고리즘에 레이블 없이 한 번도 본 적이 없는 과일 이미지를 입력으로 제공할 수 있습니다. 알고리즘은 식별한 패턴에 따라 과일을 그룹화/분류합니다. 클러스터링과 연관성은 비지도 학습 모델의 두 가지 유형입니다.

  • 강화 학습: 강화 학습은 알고리즘이 피드백을 기반으로 학습하는 방식입니다. 알고리즘은 환경에서 행동하는 방법을 학습하고 행동에 따라 피드백을 받습니다. 이 시행착오 방법을 사용하여 작업을 수행하고 시간이 지남에 따라 학습합니다.

(역자: 좀 더 구체적인 설명을 보고자 한다면 링크를 클릭하세요)

머신 러닝 모델

머신 러닝의 핵심은 머신 러닝 모델입니다. 데이터 세트에 대해 학습되고 새로운 데이터에 대해 정확한 예측을 하도록 최적화된 알고리즘입니다. 이 과정의 결과물이 바로 머신러닝 모델입니다.

이러한 모델이 예측하는 방식에 따라 머신러닝 모델에는 여러 가지 유형이 있습니다:

  • 회귀(Regression) 모델: 이 모델은 수치 값을 예측하는 데 사용됩니다. 회귀 모델은 종속 변수와 독립 변수 간의 관계를 찾아 예측에 도달합니다. 예를 들어, 과거 데이터를 기반으로 주가를 예측하는 것이 회귀 모델입니다. 선형 회귀는 가장 널리 사용되는 회귀 모델 중 하나입니다.

  • 분류(Classification) 모델: 이러한 모델은 카테고리 값을 예측하는 데 도움이 됩니다. 데이터에서 패턴을 찾아 특정 카테고리로 분류하는 데 도움을 줍니다. 예를 들어, 이메일을 스팸으로 분류하는 것은 분류 모델을 통해 이루어집니다. 의사 결정 트리와 랜덤 포레스트가 널리 사용되는 분류 모델입니다.

  • 클러스터링(Clustering) 모델: 이 모델은 유사성에 따라 데이터 포인트를 그룹화합니다. 패턴을 식별하고 유사한 데이터 요소를 클러스터로 그룹화하는 방식으로 작동합니다. K-Means는 널리 사용되는 클러스터링 모델입니다. 예를 들어, 구매 내역을 기반으로 고객을 그룹화하는 것은 클러스터링 모델을 사용하여 수행됩니다.

  • 신경망(Neural) 모델: 인간의 뇌에서 영감을 받은 이 모델은 음성 및 시각을 포함한 복잡한 작업에 사용됩니다. 인공 뉴런의 레이어를 사용하여 데이터의 복잡한 패턴을 식별하는 방식으로 작동합니다. 컨볼루션 신경망은 가장 널리 사용되는 신경망 모델 중 하나이며 이미지 인식에 널리 사용됩니다.

MLOps란 무엇인가요?

MLOps 또는 머신 러닝 운영은 일관되고 재현 가능한 머신 러닝 파이프라인을 만들기 위한 프레임워크를 제공합니다. 머신 러닝 모델을 개발, 배포 및 관리하는 프로세스를 간소화하는 데 도움이 됩니다. MLOps는 머신 러닝 워크플로우에 데브옵스 원칙과 관행을 적용하는 방법입니다.

데이터 과학자, 엔지니어, 운영 팀은 MLOps를 통해 보다 효과적으로 협업하여 워크플로우 관리, 생산성 향상, 출시 시간 단축으로 이어질 수 있습니다. 실제로 IDC의 보고서에 따르면 2024년까지 기업의 60%가 MLOps 기능을 사용하여 MLOps 프로세스를 운영할 것이라고 합니다.

MLOps 워크플로

MLOps 파이프라인은 프로덕션 환경에서 머신 러닝 모델을 관리, 배포, 모니터링 및 유지 관리하는 데 사용되는 엔드투엔드 프로세스 및 도구를 말합니다. 강력한 MLOps 파이프라인을 사용하면 머신 러닝 모델을 효율적으로 업데이트, 확장 및 유지 관리할 수 있으며 정확성, 안정성 및 속도에 대한 비즈니스 요구 사항도 충족할 수 있습니다.

MLOps 파이프라인에는 일반적으로 데이터 수집, 데이터 전처리, 모델 학습, 모델 테스트, 모델 배포 및 모델 모니터링과 같은 단계가 포함됩니다.

MLOps Pipeline. Courtesy: iqt.

#1 데이터 준비 및 관리

모든 머신러닝 프로세스의 첫 번째 단계는 데이터 수집입니다. 깨끗하고 정확한 데이터가 없으면 모델은 쓸모가 없습니다. 따라서 데이터 준비 및 관리는 MLOps 워크플로우에서 매우 중요한 단계입니다.

여기에는 데이터를 수집, 정리, 변환 및 관리하여 ML 모델을 학습시킬 수 있는 올바른 데이터를 확보하는 작업이 포함됩니다. 최종 목표는 완전하고 정확한 데이터를 확보하는 것입니다.

데이터 준비 및 관리 단계와 관련된 하위 프로세스의 세부 사항을 자세히 살펴보겠습니다:

  • 데이터 수집: 이 단계에는 여러 소스에서 데이터를 수집하는 작업이 포함됩니다. 들어오는 데이터는 정형, 비정형 또는 반정형일 수 있습니다. API, 데이터베이스 또는 기타 소스에서 들어올 수 있습니다.

  • 데이터 정리: 데이터가 수집되면 다음 단계는 데이터를 정리하는 것입니다. 들어오는 데이터에는 누락된 값, 중복, 이상값 등이 있을 수 있습니다. 이 프로세스의 목적은 정확도를 높이기 위해 고품질 데이터만 모델에 공급되도록 하는 것입니다.

  • 데이터 변환: 그런 다음 깨끗한 데이터를 변환하거나 통합합니다. 정규화, 집계, 특징 추출 등의 프로세스가 적용되어 머신러닝 모델에 적합하게 만들어집니다.

  • 데이터 버전 관리: 데이터는 진화하고 있으므로 이를 추적하는 것이 중요합니다. 이것이 바로 데이터 버전 관리 단계에서 일어나는 일입니다. 이 단계에서 데이터는 추적 가능하고 머신 러닝 모델을 재현할 수 있도록 버전이 지정됩니다.

  • 데이터 시각화: 데이터 시각화에는 데이터에서 의미 있는 시각화를 생성하는 작업이 포함됩니다. 이를 통해 머신 러닝 모델을 개선하는 데 도움이 될 수 있는 패턴과 인사이트를 식별할 수 있습니다. 또한 다양한 이해관계자에게 모델의 결과를 전달하는 데 도움이 됩니다.

  • 데이터 거버넌스: 데이터 거버넌스 프로세스는 데이터가 GDPR 및 HIPAA와 같은 다양한 지침과 법률을 준수하는지 확인하는 데 도움이 됩니다. 또한 데이터가 모범 사례 및 보안 지침에 따라 올바른 방식으로 처리되도록 보장합니다.

#2 모델 학습 및 검증

데이터가 준비되면 머신러닝 모델에 데이터를 제공하여 모델을 학습시킬 수 있습니다. 이 단계에서 모델이 잘 학습되었는지 확인하고, 프로덕션 환경에서 정확하게 작동하는지 검증할 수 있습니다.

모델 학습 및 검증과 관련된 단계는 다음과 같습니다.

  • 데이터 분할: 머신 러닝 모델을 학습시키기 전에 데이터를 학습, 검증, 테스트 데이터의 세 가지 하위 집합으로 분할하는 것이 중요합니다. 학습 데이터는 모델을 학습시키는 데 사용되며, 검증 데이터는 모델의 성능을 테스트하는 데 사용되며, 테스트 데이터는 모델의 성능을 검증하는 데 사용됩니다.

  • 모델 선택: 이 단계에서는 당면한 문제를 해결할 수 있는 올바른 머신 러닝 알고리즘을 선택합니다. 알고리즘 선택은 원하는 정확도와 함께 문제, 유형, 데이터의 양에 따라 이루어집니다.

  • 모델 훈련: 이 단계에서는 학습 데이터로 선택한 모델을 학습시킵니다. 정확한 결과를 얻기 위해 관련된 다양한 매개변수를 수정합니다.

  • 모델 검증: 모델 학습이 완료되면 모델을 검증할 차례입니다. 검증 데이터 세트를 사용하여 모델의 성능과 정확성을 검증합니다. 정확도, F1 점수, 혼동 행렬 등과 같은 다양한 메트릭을 사용하여 모델의 성능을 결정합니다.

  • 모델 최적화: 이 단계에서는 하이퍼파라미터(hyperparameters)를 조정하여 모델의 성능을 최적화합니다. 하이퍼파라미터는 모델을 학습시키기 전에 값을 설정하는 변수입니다. 이는 모델의 학습 동작을 제어하는 데 사용됩니다.

#3 모델 배포

모델이 학습되고 성능이 검증되면 이제 프로덕션에 배포할 차례입니다. 모델 배포 단계에서는 이전 단계에서 학습, 테스트 및 검증이 완료된 모델을 다른 애플리케이션이나 시스템에서 사용할 수 있도록 하는 작업이 포함됩니다.

배포 프로세스에는 다음과 같은 여러 단계가 포함됩니다:

  • 모델 패키징: 첫 번째 단계는 모델을 다른 애플리케이션 및 시스템에서 사용할 수 있는 형식으로 변환하는 것입니다. 이 단계에서는 모델을 종속 요소와 함께 pickle 또는 JSON으로 직렬화된 형식으로 패키징합니다.

  • 컨테이너화: 패키징된 모델이 종속 요소와 함께 컨테이너에 추가됩니다. 컨테이너화된 모델은 여러 환경과 시스템에서 쉽게 배포하고 관리할 수 있습니다.

  • 프로덕션에 배포: 그런 다음 컨테이너화된 모델을 프로덕션 시스템에 배포합니다. 이는 AWS, Azure 또는 GCP와 같은 클라우드 기반 플랫폼 또는 온프레미스 설정에서 이루어질 수 있습니다.

  • 모델 확장: 모델이 프로덕션에 배포된 후에는 대량의 데이터를 처리하고 사용량을 늘리기 위해 모델을 확장해야 할 수 있습니다. 여기에는 추가 노드에 모델을 배포하고 로드 밸런서를 사용하는 것이 포함될 수 있습니다.

#4 지속적인 모델 모니터링 및 재교육

머신러닝 모델은 배포하고 잊어버리는 것이 아닙니다. 모델의 성능과 정확도를 지속적으로 모니터링해야 합니다. 실제 환경이 변화하여 모델의 효율성과 정확성에 영향을 미칠 수 있기 때문입니다.

모델 모니터링과 관련된 다양한 하위 프로세스는 다음과 같습니다.

  • 데이터 수집: 첫 번째 단계는 프로덕션에서 실제 데이터를 수집하는 것입니다. 여기에는 시스템 메트릭, 사용자 상호 작용 또는 모델 성능을 평가하는 데 유용한 모든 것이 포함될 수 있습니다.

  • 모델 성능 평가: 그런 다음 프로덕션 데이터를 사용하여 머신 러닝 모델의 성능을 평가합니다. 다시 한 번 정확도, F1 점수, 혼동 행렬 등과 같은 메트릭이 성능을 평가하는 데 사용됩니다.

  • 이상 탐지: 위 단계에서 얻은 결과를 바탕으로 이상 징후가 있는지 탐지해야 합니다. 이전에 사용한 과거 데이터의 결과를 현재 데이터와 비교하여 편차를 확인할 수 있습니다.

  • 모델 업데이트: 이상 징후가 감지되면 다음 단계는 머신 러닝 모델을 업데이트하는 것입니다. 여기에는 모델 학습 및 검증 단계에서 논의된 모든 단계가 포함됩니다.

위에서 언급한 각 프로세스에 사용할 수 있는 도구가 있습니다. 독점 도구부터 오픈 소스 도구까지 선택할 수 있습니다. 여러분의 편의를 위해 각 단계별로 분류된 오픈 소스 MLOps 도구 목록이 있는 Awesome MLOps 리포지토리가 있습니다.

일반적인 MLOps 워크플로에 관련된 다양한 프로세스를 살펴봤습니다. 이러한 각 단계는 모델 배포 프로세스를 간소화하는 데 도움이 됩니다. MLOps를 도입하는 것은 어려울 수 있지만, 혁신과 비즈니스 성과를 촉진하기 위한 머신 러닝의 잠재력을 실현하는 데는 상당한 이점이 있습니다.

MLOps의 이점

지금까지 MLOps가 머신 러닝 개발 프로세스를 간소화하는 데 도움이 된다는 것은 잘 알고 계실 것입니다. 하지만 이 외에도 다양한 이점이 있습니다.

MLOps 구현의 몇 가지 이점은 다음과 같습니다:

  • 효율성 향상: MLOps는 불필요한 수동 단계와 자동화된 반복 작업을 제거하여 전체 프로세스를 보다 효율적이고 안정적으로 만듭니다. 따라서 개발 시간과 비용을 절감할 수 있습니다.

  • 버전 제어: MLOps는 머신 러닝 모델과 데이터에 대한 버전 제어 기능을 제공합니다. 이를 통해 조직은 변경 사항을 추적하고 필요할 때 모델을 재현할 수도 있습니다.

  • 자동화된 배포: 조직은 MLOps를 구현하고 배포 시간을 단축하여 머신 러닝 모델을 더 빠르게 배포할 수 있습니다.

  • 보안 강화: 액세스 제어, 데이터 및 모델 암호화 기술을 통해 전체 MLOps 프로세스를 보호하여 보안을 강화할 수 있습니다.

  • 협업 개선: 여러 팀과 원활하게 커뮤니케이션할 수 있어 협업이 개선됩니다.

  • 가치 실현 시간 단축: 조직은 MLOps를 통해 머신 러닝 프로젝트를 더 빠르게 배포하여 고객의 가치 실현 시간을 단축할 수 있습니다.

요약

생성형 AI가 급성장하는 시대에 머신러닝의 미래는 밝습니다. 머신러닝은 엄청난 비즈니스 가치를 제공할 수 있는 엄청난 잠재력을 가지고 있습니다. 하지만 최신 머신러닝 모델을 구축하는 것만으로는 이러한 잠재력을 실현할 수 없습니다. 데이터 준비부터 모델 배포 및 모니터링에 이르기까지 전체 머신 러닝 수명 주기를 관리하는 포괄적인 엔드투엔드 프로세스가 필요합니다. 조직은 MLOps를 도입함으로써 가치를 더 빠르게 제공하고, 비용을 최적화하며, 효율성을 개선할 수 있습니다.

지금쯤이면 MLOps가 무엇이고 어떤 이점이 있는지 어느 정도 이해하셨을 것입니다. 다음 블로그 포스팅에서는 Kubernetes와 관련 도구의 MLOps에 대해 이야기할 예정이니 기대해 주세요.

이 블로그 포스팅은 여기까지이며, 이 블로그 포스팅과 관련하여 제안이나 문의 사항이 있으면 언제든지 Atul에게 연락주시기 바랍니다.

참고자료:

Last updated