주요 컨텐츠로 이동

MLOps (기계 학습 운영)

Databricks 무료로 시작하기

MLOps란 무엇입니까?

MLOps는 머신 러닝 작업(Machine Learning Operations)을 뜻합니다. MLOps는 머신 러닝 모델을 프로덕션으로 전환하는 프로세스를 간소화하고, 뒤이어 이를 유지관리하고 모니터링하는 데 주안점을 둔 머신 러닝 엔지니어링의 핵심 기능입니다. MLOps는 협업 기능이며, 주로 데이터 사이언티스트, DevOps 엔지니어, IT로 구성됩니다.

MLOps 주기

MLOps의 용도는 무엇입니까?

MLOps는 머신 러닝과 AI 솔루션 제작과 품질에 대한 유용한 접근법입니다. 데이터 사이언티스트와 머신 러닝 엔지니어는 MLOps 방식을 채택하여 협업을 추진하고 모델 개발과 프로덕션 속도를 증강할 수 있습니다. 이를 위해 ML 모델의 적절한 모니터링, 검증과 거버넌스를 포함해 지속적인 통합과 배포(CI/CD) 관례를 구현해야 합니다.

MLOps가 필요한 이유는 무엇입니까?

머신 러닝의 (대량) 생산은 쉽지 않은 일입니다. 머신 러닝 수명 주기는 데이터 수집, 데이터 준비, 모델 훈련, 모델 조정, 모델 배포, 모델 모니터링, 설명 가능성과 같은 복잡한 구성 요소가 많이 모인 형태로 구성되어 있습니다. 또한 데이터 엔지니어링부터 데이터 사이언스, ML 엔지니어링에 이르기까지 여러 팀에 걸친 협업과 전달이 필요한 일이기도 합니다. 따라서 이 모든 프로세스를 동기화하고 협력이 이루어지는 상태를 유지하려면 극히 엄격한 운영 원칙을 적용해야 합니다. MLOps는 머신 러닝 수명 주기의 실험, 반복과 지속적 개선을 총망라합니다.

MLOps의 장점은 무엇입니까?

MLOps의 주된 장점은 효율성, 확장성과 리스크 완화입니다. 효율성: MLOps를 사용하면 데이터 팀이 모델을 더욱 빨리 배포하고 양질의 ML 모델을 제공하며 배포와 프로덕션 속도를 높일 수 있습니다. 확장성: MLOps는 엄청난 확장성과 관리를 지원하므로 수천 개의 모델을 감독, 제어, 관리, 모니터링하여 지속해서 통합, 제공하고 지속해서 배포할 수 있습니다. 구체적으로 설명하자면, MLOps는 ML 파이프라인 재현성을 제공하므로 여러 데이터 팀에서 좀 더 긴밀하게 결합된 협업을 추진할 수 있고 DevOps 팀과 IT 팀의 갈등이 줄어들며 릴리스 속도도 빨라집니다. 리스크 완화: 머신 러닝 모델에는 철저한 규제 검토와 드리프트 검사가 필요할 때가 많습니다. MLOps를 이용하면 투명성을 강화할 수 있고 그러한 요청에 더욱 빨리 대응할 수 있으며 기업이나 업계의 규정을 더욱 엄격히 준수하는 데 도움이 됩니다.

MLOps의 구성 요소는 무엇입니까?

MLOps 구성 요소

머신 러닝 프로젝트에서 MLOps의 폭은 프로젝트의 필요에 따라 집중적일 수도, 광범위할 수도 있습니다. 경우에 따라서는 MLOps가 데이터 파이프라인부터 모델 프로덕션까지 모든 것을 통괄할 수도 있고, 아니면 어떤 프로젝트의 경우 모델 배포 프로세스에만 MLOps를 구현해야 하기도 합니다. 대부분 기업체에서 MLOps 원칙을 활용하는 분야는 다음과 같습니다.

  • EDA(Exploratory Data Analysis, 탐색적 데이터 분석)
  • 데이터 준비와 피처 엔지니어링
  • 모델 훈련 및 조정
  • 모델 검토와 거버넌스
  • 모델 유추와 서빙
  • 모델 모니터링
  • 자동 모델 재훈련

MLOps의 모범 사례로는 어떤 것이 있습니까?

MLOps 모범 사례는 MLOps 원칙을 적용하는 단계에 따라 설명할 수 있습니다.

  • EDA(Exploratory Data Analysis) - 재생산 가능하고 편집 가능하며 공유할 수 있는 데이터 세트, 표와 시각화를 만들어 머신 러닝 수명 주기에 적합한 데이터를 반복적으로 탐색, 공유하고 준비합니다.
  • 데이터 준비와 피처 엔지니어링 - 데이터를 반복적으로 변환, 집계 및 중복 제거하여 미세하게 조정된 특징(feature)을 만듭니다. 이보다 더 중요한 것은 피처 스토어를 활용하여 여러 데이터 팀을 상대로 데이터를 표시하고 공유할 수 있게 하는 것입니다.
  • 모델 훈련 및 조정 - scikit-learn이나 hyperopt와 같은 대중적인 오픈 소스 라이브러리를 이용하여 모델을 훈련하고 모델 성능을 개선할 수 있습니다. 이보다 더 간단한 대안으로는 AutoML과 같은 자동 머신 러닝 툴을 사용하여 시험 작동을 자동으로 수행하고, 검토와 배포가 가능한 코드를 만드는 방법도 있습니다.
  • 모델 검토 및 거버넌스 - 모델 계보, 모델 버전을 추적하고 모델 아티팩트와 전환을 수명 주기 전체에 걸쳐 관리합니다. MLflow와 같은 오픈 소스 MLOps 플랫폼의 도움을 받아 ML 모델 전반에 걸쳐 검색, 공유와 협업을 수행합니다.
  • 모델 유추와 서빙 - 모델 새로 고침 빈도, 추론 요청 횟수와 테스트 및 QA 면에서 이와 비슷한 프로덕션 세부 사항을 관리합니다. 리포지토리나 오케스트레이터(DevOps 원칙을 차용함)와 같은 CI/CD 툴을 사용하여 프로덕션 이전의 파이프라인을 자동화합니다.
  • 모델 배포와 모니터링 - 권한 부여와 클러스터 생성을 자동화하여 등록된 모델을 (대량) 생산합니다. 또한 REST API 모델 엔드포인트를 활성화합니다.
  • 자동 모델 재훈련 - 알림과 자동화를 생성하여 훈련과 추론 데이터가 서로 달라 모델 드리프트가 발생하는 경우 시정 조치를 합니다.

MLOps와 DevOps는 무엇이 다릅니까?

MLOps는 머신 러닝 프로젝트에만 국한된 일련의 엔지니어링 실무로, 소프트웨어 엔지니어링 분야에서 광범위하게 도입된 DevOps 원칙을 빌려온 것입니다. DevOps는 애플리케이션 전달에 지속해서 반복적이면서 속도도 빠른 접근 방식을 도입했지만, MLOps의 경우 머신 러닝 모델의 프로덕션 돌입까지의 과정에 같은 원칙을 적용합니다. 두 경우 모두 소프트웨어 품질 개선, 패치 적용과 릴리스 속도 가속, 높은 고객 만족도 달성과 같은 결과를 낸다는 점은 같습니다.

대규모 언어 모델(LLMOps) 트레이닝과 기존 MLOps는 어떻게 다른가요?

MLOps의 여러 개념이 여전히 적용되지만 Dolly와 같은 대규모 언어 모델을 트레이닝할 때는 다른 사항들을 고려해야 합니다. 기존 MLOps 접근 방식과 다른 LLM 트레이닝의 몇 가지 핵심 사항을 살펴보겠습니다.

  • 컴퓨팅 리소스: 대규모 언어 모델을 트레이닝하고 세부적으로 조정하려면 일반적으로 대규모 데이터 세트에 훨씬 더 많은 계산을 수행해야 합니다. 이 프로세스의 속도를 높이려면 훨씬 더 빠른 데이터 병렬 작업을 수행할 수 있는 GPU와 같은 특수 하드웨어가 필요합니다. 이러한 특수 컴퓨팅 리소스에 대한 액세스 권한은 대규모 언어 모델을 트레이닝하고 배포하는 데 필수적입니다. 또한, 추론 비용은 모델 압축 및 모델 정제 기술이 중요한 부분으로 자리잡게 만듭니다.
  • 전이 학습: 처음부터 새로 생성하거나 트레이닝하는 많은 기존 ML 모델과 달리 대부분의 대규모 언어 모델은 기본 모델에서 시작하여 특정 도메인에서의 성능을 개선하기 위해 새로운 데이터로 세부 조정됩니다. 세부적으로 조정하면 더 적은 데이터와 컴퓨팅 리소스로도 특정 애플리케이션의 성능을 극대화할 수 있습니다.
  • 사람의 피드백: 대규모 언어 모델 트레이닝의 주요 개선 사항 중 하나는 사람의 피드백을 활용한 강화 학습(RLHF)을 통해 이루어졌습니다. 더 일반적으로 말하면, LLM 작업은 매우 개방적이므로 애플리케이션 최종 사용자의 피드백은 LLM 성능을 평가하는 데 매우 중요합니다. LLMOps 파이프라인으로 이 피드백 루프를 통합하면 트레이닝된 대규모 언어 모델의 성능을 향상시킬 수 있습니다.
  • 초매개변수 조정: 기존 ML에서 초매개변수 튜닝은 정확도 또는 기타 지표를 개선하는 데 중점을 두는 경우가 많습니다. LLM의 경우 튜닝은 트레이닝 및 추론의 비용과 컴퓨팅 성능 요구 사항을 줄이는 데에도 중요합니다. 예를 들어, 배치 크기와 학습 속도를 튜닝하면 트레이닝 속도와 비용이 크게 달라질 수 있습니다. 따라서 기존 ML과 LLM 모두 튜닝 프로세스를 추적하고 최적화할 수 있지만, 서로 다른 부분에 주안점을 둡니다.
  • 성능 지표: 기존 ML 모델에도 정확도, AUC, F1 점수 등과 같이 매우 명확하게 정의된 성능 지표가 있습니다. 이러한 지표는 매우 간단하게 계산할 수 있습니다. 그러나 LLM을 평가할 때는 추가적인 구현 고려 사항인 BLEU(Bilingual Evaluation Understudy) 및 ROGUE(Recall-Oriented Understudy for Gisting Evaluation)와 같은 완전히 다른 표준 지표 및 점수가 적용됩니다. 

MLOps 플랫폼이란 무엇입니까?

MLOps 플랫폼은 데이터 사이언티스트와 소프트웨어 엔지니어에게 협업 환경을 제공하여 반복 데이터 탐색, 실시간 공동 작업 기능을 지원하여 실험 추적, 피처 엔지니어링, 모델 관리 등을 간편하게 수행할 수 있게 해줍니다. 이뿐만 아니라 관리형 모델 전환, 배포와 모니터링까지 가능합니다. MLOps는 머신 러닝 수명 주기의 운영과 동기화 측면을 자동화해줍니다.

MLFlow

Databricks를 사용해 보세요. 완전 관리형 MLflow 환경으로, 세계를 선도하는 개방형 MLOps 플랫폼입니다. https://www.databricks.com/try/databricks-free-ml

추가 자료

용어집으로 돌아가기