기계 학습에 DevOps 사례를 적용할 때의 비즈니스 가치 발견

완료됨

이 단원에서는 MLOps(기계 학습 작업)의 중요성에 대해 설명합니다. MLOps는 DevOps(개발 및 운영)의 방법론을 적용하여 기계 학습 수명 주기를 보다 효율적으로 관리합니다. 이를 통해 모든 이해 관계자 간에 AI 팀에서 보다 민첩하고 생산적인 공동 작업을 수행할 수 있습니다. 이러한 협업에는 데이터 과학자, AI 엔지니어, 앱 개발자 및 기타 IT 팀이 포함됩니다.

팀이 MLOps를 구현하는 데 도움이 되는 사용 가능한 제품이 많이 있습니다. Microsoft는 Azure Machine Learning, Azure DevOps 및 GitHub를 제공합니다.

MLOps 프로세스 및 도구를 이용하면 여러 팀이 협업하고, 감사 가능한 공유 문서를 통해 가시성을 제공할 수 있습니다. MLOps 기술은 데이터, 코드, 모델 및 기타 도구와 같은 모든 리소스에 대한 변경 내용을 저장하고 추적하는 기능을 제공합니다. 이러한 기술은 자동화, 반복 가능한 워크플로, 재사용 가능한 자산을 사용하여 효율성을 높이고 수명 주기의 속도를 높이는 역할도 합니다. 이러한 모든 사례는 AI 프로젝트는 더 민첩하고 효율적으로 만듭니다.

모델 재현 가능성

초기 반복 학습 및 이후 모델 재학습 과정에서 몇 가지 요소를 이용하면 복잡한 프로세스를 쉽게 관리할 수 있습니다. 그 중 하나는 모델을 재현 가능한 상태로 유지하는 것입니다. 즉, 동일하거나 유사한 결과를 가진 팀 구성원이 동일한 데이터 세트에서 쉽게 실행할 수 있습니다. 재현성은 프로세스를 문서화하고 리소스를 공유하여 달성됩니다.

먼저 여러 팀에서 공유하고 다시 사용할 수 있도록 환경, 코드, 데이터 세트 및 모델 같은 자산을 중앙에서 관리하는 것이 좋습니다.

  • 모델 레지스트리: 여러 팀이 서로 다른 모델 버전을 시험할 때 모델 레지스트리를 이용하면 각 버전을 한 곳에서 저장할 수 있습니다. 레지스트리를 사용하면 팀은 솔루션이 생산 단계에 있다 하더라도 문제 발생 시 이전 버전으로 쉽게 되돌릴 수 있습니다. 또한 모델 레지스트리는 각 모델의 기록에 대한 감사 추적 역할을 합니다.
  • 코드 관리: 기술 의사 결정권자는 팀이 코드 관리에 사용할 기술과 프로세스를 결정해야 합니다. 대부분의 경우 코드를 저장하고, 버전을 지정하고 공유 및 재사용할 수 있는 GitHub 같은 코드 리포지토리가 여기에 포함됩니다. 여기에는 코드 사용 및 버전 관리를 위한 도구도 포함됩니다.
  • 데이터 세트 관리: 학습 데이터 세트는 중앙 집중식으로 저장하는 것이 좋습니다. 이렇게 하면 팀은 데이터 세트를 재사용하고 동료와 공유하거나 시간 경과에 따른 변화를 모니터링하여 드리프트를 관리할 수 있습니다.

A screenshot of a graph showing MLOps practices: data scientists and IT work together on model reproducibility, validation, deployment, and retraining.

  • 공유 환경: 개인 간에 공유할 수 있는 모델 환경을 만듭니다. 이렇게 하면 모델 생성 프로세스의 단계 간 전달을 간소화하고 특정 단계에서 여러 팀의 협업을 구현할 수 있습니다.

둘째, 기계 학습 파이프라인을 사용하여 작업을 자동화하는 것이 좋습니다. 파이프라인은 독립적으로 실행할 수 있는 전체 컴퓨팅 작업의 워크플로입니다. 기계 학습에서 파이프라인은 데이터 준비, 학습 구성, 학습 프로세스 또는 모델 유효성 검사를 자동화할 수 있습니다. 파이프라인은 기계 학습 수명 주기의 일부를 반복해야 할 때마다 데이터 과학자의 비용과 시간을 절약합니다.

모델 유효성 검사

모델을 배포하기 전에 성능 메트릭의 유효성을 검사하는 것이 중요합니다. ‘가장 좋은’ 모델을 나타내고자 여러 메트릭을 이용할 수도 있습니다. 데이터 과학자와 협업하여 중요한 메트릭을 이해하고, 배포하기 전에 메트릭을 평가해야 합니다. 손실 함수나 혼동 행렬 같은 모델 메트릭을 평가하는 다양한 도구가 있습니다.

메트릭은 일반적으로 모델이 예측한 내용과 예측해야 하는 항목(실제 값 또는 실측 자료)을 비교합니다. 전반적으로 진정한 긍정 및 참 부정, 즉 실제 값을 예측하는 데 성공한 모델을 최대화하는 데 중점을 줍니다. 위양성과 위음성, 즉 잘못된 예측과 누락된 예측을 피하는 것이 둘 다 중요합니다.

비즈니스 사용 사례와 비교하여 성능 메트릭의 유효성을 검사하는 것이 중요합니다. 예를 들어 환자 상태를 예측하는 모델을 설계한다고 가정해 보겠습니다. 생사가 걸린 상황을 다루는 의료인은 정확도가 대단히 높지만 진단을 놓치기보다는 차라리 위양성 진단을 선호할 것입니다.

모델이 기존 모델의 신규 버전이라면, 주요 메트릭에 대한 성능이 이전 모델보다 우수한지 확인해야 합니다.

A screenshot of a graph showing a confusion matrix with predicted and true labels. Alignment of true and predicted values indicates high accuracy.

모델 배포

프로덕션 환경에 모델을 배포하는 몇 가지 옵션이 있습니다. 데이터 과학자와 AI 엔지니어는 함께 협력하여 각 사례에 가장 적합한 옵션을 찾아야 합니다.

  • 클라우드: 한 가지 옵션은 클라우드를 사용하여 모델을 배포하고 종종 API(애플리케이션 프로그래밍 인터페이스)를 활용하는 것입니다. Kubernetes 또는 Azure Container Instances 같이 이 프로세스를 자동화하고 간소화하는 확장 가능한 도구가 있습니다.
  • 온-프레미스: 모델을 조직 자체 서버에 직접 배포할 수도 있습니다.
  • Edge: 카메라, 드론 및 기계와 같은 에지 디바이스에 모델을 배포할 수도 있습니다. 이 옵션은 IoT 시나리오에서 유용할 수 있습니다.

모델을 어떤 위치에 배포하더라도 워크플로는 비슷합니다. 먼저 모델을 모델 레지스트리에 등록합니다. 그런 다음 자산, 사용량 및 컴퓨팅 대상을 지정하여 모델을 배포할 준비를 합니다. 마지막으로 원하는 위치에 모델을 배포 및 테스트하고, 수명 주기가 끝날 때까지 모델별 메트릭을 계속 모니터링합니다.

모델 재학습

개발 프로세스의 마지막 단계이나 유지 관리 주기에서는 시작 단계입니다. 성능 문제를 해결하고 최신 학습 데이터를 활용하려면 모델을 모니터링하고 주기적으로 재학습해야 합니다. 성공을 거두려면 재학습 루프를 만들거나, 체계적이고 반복적인 프로세스를 만들어 모델을 지속적으로 개선하고 정확도를 보장해야 합니다.

이 프로세스는 지나치게 복잡해 보일 수 있습니다. 미리 빌드된 모델을 사용하여 크게 간소화할 수 있습니다. Azure Machine Learning과 같은 MLOps 도구는 반드시 사용자 지정 모델로 채워질 필요는 없으며 미리 빌드된 모델도 허용합니다. 이러한 의미에서 Azure AI 서비스는 필요한 데이터 과학 전문 지식이 적으면서 더 빠른 결과를 제공하므로 좋은 대안입니다.

다음 단원에서는 Azure AI 서비스의 기회를 살펴보겠습니다.