범위, 팀 역할, CI/CD 파이프라인 및 도구를 비교하여 머신러닝 및 소프트웨어 제공 관행을 효율적으로 조정하세요.
작성자: Databricks 직원
MLOps와 DevOps는 신뢰할 수 있는 소프트웨어를 프로덕션 환경에 배포하고, 계속 실행하며, 지속적으로 개선한다는 하나의 목표를 공유합니다. 하지만 ML 모델이 등장하는 순간부터 경로는 급격히 달라집니다. DevOps는 기존 애플리케이션의 소프트웨어 개발 수명 주기에 중점을 두는 반면, MLOps는 데이터, 모델 학습, 모델 성능 모니터링의 추가적인 복잡성을 다루기 위해 이러한 원칙을 확장합니다.
DevOps 도구만으로 머신러닝 시스템을 관리하는 조직은 일상적으로 심각한 프로덕션 장애에 직면합니다. 기업 AI 프로그램에 대한 연구에 따르면, 전담 MLOps 전략 없이는 프로덕션에 도달하는 AI 이니셔티브의 88%가 실패하는데, 이는 ML 모델이 소스 코드는 절대 변하지 않는 방식으로 실제 데이터가 변경됨에 따라 성능이 저하되기 때문입니다. 이 가이드에서는 데이터 과학자, ML 엔지니어, IT 운영 팀을 위한 DevOps와 MLOps의 실질적인 차이점을 자세히 설명합니다.
DevOps는 소프트웨어 개발과 IT 운영을 단일 협업 워크플로로 통합합니다. 이 분야는 개발팀과 운영팀 간의 벽을 없애기 위해 등장했습니다. 이전에는 엔지니어가 코드를 격리하여 작성하고 운영팀에게 릴리스를 전달하는 방식이었습니다. DevOps는 공유 책임, 자동화된 테스트, 전체 소프트웨어 개발 수명 주기에 걸친 지속적인 배포로 이 모델을 대체했습니다.
DevOps에서는 소스 코드가 CI/CD 파이프라인, 스테이징 환경을 거쳐 각 전환 지점에서 자동화된 게이트를 통해 프로덕션으로 이동합니다. Jenkins, Docker, Terraform, GitHub Actions와 같은 도구는 성숙한 DevOps 툴체인의 핵심을 형성합니다. 개발팀과 운영팀은 배포 빈도, 변경 리드 타임, 복구 평균 시간으로 측정되는 공동 책임을 공유합니다.
머신러닝 운영(MLOps)은 데이터 수집부터 배포 및 지속적인 모니터링까지 ML 모델의 수명 주기를 자동화하는 실천, 프로세스 및 도구 세트입니다. DevOps가 코드에 중점을 두는 반면, MLOps는 코드, 데이터, 모델이라는 "성배"를 다룹니다. 이 세 가지 모두 동시에 거버넌스, 버전 관리, 모니터링되어야 합니다.
MLOps와 DevOps는 동일한 기본 철학을 공유합니다. 모든 것을 자동화하고, 모든 것을 버전 관리하며, CI/CD 파이프라인을 사용하여 아티팩트를 안전하게 환경으로 승격시킵니다. 결정적인 차이점은 MLOps가 데이터 분포가 변경되거나 비즈니스 요구 사항이 변경될 때 모델 재학습을 자동화하는 지속적 학습(CT)을 추가하여 DevOps 수명 주기를 확장한다는 것입니다. 새로운 데이터가 도착해도 코드의 정확도가 저하되지 않기 때문에, 지속적 학습은 기존 소프트웨어 개발에는 이에 상응하는 것이 없습니다.
DevOps는 소스 코드를 주요 아티팩트로 중점적으로 다룹니다. 표준 소프트웨어 개발 수명 주기에서는 엔지니어가 코드를 커밋하고, CI/CD 파이프라인이 해당 소프트웨어를 빌드, 테스트 및 배포합니다. 두 분야는 여기서 즉시 달라집니다. MLOps는 프로젝트 코드뿐만 아니라 데이터 세트, 피처 테이블, 학습된 ML 모델, 추론 출력도 거버넌스해야 합니다. 각 항목은 별도의 버전 관리, 품질 검사 및 액세스 제어가 필요합니다.
MLOps는 데이터 중심적인 관점에 중점을 둡니다. 모든 머신러닝 프로젝트의 핵심 구성 요소는 데이터 파이프라인이며, 머신러닝 솔루션을 운영화한다는 것은 머신러닝 수명 주기의 모든 단계에서 예측, 모니터링 테이블, 피처 테이블의 데이터를 프로덕션 데이터와 결합하는 것을 의미합니다.
소프트웨어 개발에서는 버전 관리가 소스 코드와 구성 파일을 추적합니다. MLOps 및 DevOps 통합 워크플로에서는 팀이 학습 데이터 세트, 데이터 버전 관리 로그, 모델 아티팩트 및 평가 결과를 포함하도록 버전 관리를 확장합니다. MLflow와 DVC는 Git이 코드에 제공하는 모델 버전 관리 및 데이터 버전 관리 계층을 제공하며, 각 모델 버전에 대한 학습 데이터로의 계보 캡처 기능도 추가됩니다. 모델 개발 아티팩트는 원시 데이터부터 배포된 엔드포인트까지 종단 간 추적이 가능해야 합니다.
표준 CI/CD 파이프라인은 코드 변경이 기존 기능을 손상시키지 않는지 확인한 다음 업데이트된 애플리케이션을 배포합니다. MLOps CI/CD 파이프라인은 새로 학습된 머신러닝 모델이 승격 전에 품질 임계값을 충족하는지 추가로 검증하고, 부하 상태에서 모델 서빙 인프라에 대한 자동화된 테스트를 처리하며, 예약 또는 모니터링 신호에 따라 모델 재학습을 트리거해야 합니다.
머신러닝 수명 주기에는 기존 소프트웨어 개발에는 없는 단계가 포함됩니다. 데이터 전처리, 피처 엔지니 어링, 모델 학습, 모델 검증, 모델 배포, 모델 모니터링, 모델 재학습입니다. 각 단계에는 MLOps 및 DevOps 실무자가 함께 설계해야 하는 자동화된 테스트 및 게이팅 규칙이 필요합니다.
MLOps 대 DevOps 비교에서 가장 두드러진 차이점 중 하나는 모델 드리프트입니다. 테스트를 통과하고 프로덕션에 도달한 코드는 저절로 성능이 저하되지 않습니다. 하지만 ML 모델은 실제 데이터 분포가 변경됨에 따라, 기본 코드는 변경되지 않았더라도 모델 성능이 저하됩니다. 이러한 드리프트를 감지하고 대응하려면 기존 DevOps 툴체인 외부의 모니터링 인프라가 필요합니다.
데이터 과학자는 실험을 설계하고, 학습 파이프라인을 개발하며, 보유한 프로덕션 데이터를 대상으로 모델 성능을 평가합니다. 또한 모델 성능이 재학습을 트리거할 만큼 저하되었음을 나타내는 모니터링 지표를 정의합니다. 성숙한 MLOps 및 DevOps 통합 팀에서는 데이터 과학자가 처음부터 버전 관리되는 리포지토리에서 코드를 공유하여 ML 엔지니어가 모델 개발 작업을 인수하고 운영화하기 쉽게 만듭니다.
MLOps 프로젝트는 머신러닝 수명 주기 전반에 걸쳐 데이터 과학자, ML 엔지니어, 데이터 엔지니어, 운영팀 간의 협업을 포함합니다. 각 역할은 고유한 단계와 품질 게이트를 소유합니다.
ML 엔지니어는 모델 개발과 프로덕션 배포를 연결합니다. 개발부터 스테이징을 거쳐 프로덕션까지 학습 코드를 전달하는 CI/CD 파이프라인을 구축 및 유지 관리하고, 자동화된 테스트 스위트를 설계하며, 모델 서빙 인프라를 구성합니다. 모델 정확도를 최적화하는 데이터 과학자와 프 로덕션 환경의 안정성 및 신뢰성을 최적화하는 운영팀 사이의 다리 역할을 합니다. ML 엔지니어는 새로 학습된 모델이 프로덕션 "챔피언"이 될 준비가 되었는지 여부를 결정하는 규칙인 지속적 통합 게이팅 로직을 관리합니다.
MLOps 환경의 운영팀은 표준 DevOps를 넘어서는 책임을 맡습니다. 인프라를 관리하고 안정적인 프로덕션 환경을 유지하는 것 외에도, 대규모 학습 작업(일반 소프트웨어 개발 워크로드에는 필요하지 않은 GPU 클러스터 포함)을 위한 컴퓨팅 리소스를 프로비저닝합니다. 또한 개발 및 프로덕션 카탈로그 간의 보안 경계를 유지하고, 서비스 계정을 관리하며, CI/CD 파이프라인이 대규모로 안정적으로 실행되도록 보장합니다.
MLOps의 개발팀과 운영팀은 공유 스프린트 의식, 공동 온콜 로테이션, 정기적인 모델 검토 세션을 통해 이점을 얻습니다. DevOps와 MLOps 모두 정렬 및 추적성을 위해 명확한 커뮤니케이션 프로토콜과 공유 문서가 필요합니다.
전통적인 소프트웨어 개발에서 지속적 통합은 모든 커밋이 자동화된 빌드 및 테스트 주기를 트리거한다는 것을 의미합니다. 단위 테스트는 개별 함수를 검증하고, 통합 테스트는 구성 요소가 함께 작동하는지 검증하며, CI/CD 파이프라인은 기존 기능을 손상시키는 변경 사항을 거부합니다. 이 주기는 몇 분 안에 실행되며, 아티팩트는 결정적입니다. 즉, 동일한 소스 코드는 항상 동일한 빌드 출력을 생성합니다.
머신러닝을 위한 CI/CD를 구현하는 MLOps 및 DevOps 팀은 표준 관행을 복잡하게 만드는 비결정적 요소를 고려해야 합니다. ML 모델 학습은 비용이 많이 들고 확률적이므로, CI/CD 파이프라인은 통합 테스트 중에 대표적인 데이터 하위 집합에서 학습을 실행하는 반면, 프로덕션 파이프라인은 예약에 따라 전체 데이터 세트를 사용합니다.
다음 CI 체크리스트는 MLOps 및 DevOps 실무자가 함께 시행해야 하는 재현성 요구 사항을 반영합니다.
ML CI 재현성 체크리스트
MLOps CI/CD 파이프라인은 ML별 게이트를 포함하여 표준 빌드-테스트-배포 단계를 확장합니다. 일반적인 파이프라인은 데이터 검증, 특성 엔지니어링, 모델 학습, 모델 검증, 모델 등록, 모델 배포 및 모니터링 설정을 거칩니다. MLOps 및 DevOps 실무자는 이러한 단계를 소프트웨어 개발에 사용되는 것과 동일한 환경 승격 모델, 즉 개발, 스테이징 및 프로덕션에 매핑합니다.
새로 학습된 모델이 "챔피언" 별칭을 받고 프로덕션 트래픽을 처리하려면 형식 및 메타데이터 검증, 보유 데이터에 대한 성능 임계값, 규정 준수 검사 및 사전 배포 로드 테스트와 같은 CI/CD 게이팅 규칙을 통과해야 합니다. 규제된 환경에서는 모델 배포에 수동 승인 게이트가 필요할 수도 있습니다.
MLOps 파이프라인은 일반적으로 Databricks Workflows, Apache Airflow 및 Kubeflow로 오케스트레이션됩니다. Jenkins, GitHub Actions, GitLab CI와 같은 DevOps CI/CD 도구는 코드 승격 및 통합 테스트 계층을 처리하며, ML별 오케스트레이터는 모델 학습 및 모델 배포를 관리합니다. CI/CD 파이프라인 트리거에는 코드 병합, 예약된 재학습 작업 및 모니터링 인프라의 자동 알림이 포함됩니다.
표준 개발 워크로드는 CPU 인프라에서 원활하게 실행됩니다. 머신러닝 모델 학습은 비용을 크게 증가시키는 GPU 클러스터를 자주 필요로 합니다. MLOps 파이프라인은 일반적으로 DevOps에서 필요하지 않은 GPU 또는 TPU와 같은 고유한 인프라에 대한 지원이 필요합니다.
Terraform 및 CloudFormation과 같은 IaC 도구는 ML 인프라에도 동일하게 적용됩니다. MLOps 팀은 정의를 소스 제어에 유지하면서 동일한 IaC 패턴을 사용하여 GPU 클러스터, 모델 서빙 엔드포인트 및 모니터링 리소스를 프로비저닝해야 합니다.
엔터프라이즈 모델 서빙 플랫폼은 50번째 백분위수에서 10밀리초 미만의 오버헤드 지연 시간과 초당 25,000개 이상의 쿼리 볼륨을 지원하며, 트래픽이 감소하면 자동으로 0으로 축소됩니다.
MLOps 모니터링은 표준 DevOps 모니터링에서 다루는 지연 시간, 처리량, 오류율과 같은 인프라 지표와 ML별 도구가 필요한 통계적 모델 품질 지표를 추적합니다. 데이터 품질 모니터링은 예측 정확도, 출력 분포 변경 및 시간 경과에 따른 특성 분포 드리프트를 추적합니다. 서빙 인프라가 정상으로 보여도 모델은 조용히 실패할 수 있으므로 이러한 지표를 독립적으로 추적해야 합니다.
프로덕션 데이터의 통계적 분포가 학습 데이터와 달라지면 모델 정확도가 저하됩니다. MLOps 모니터링 파이프라인은 드리프트 지표를 계산하고 임계값을 초과하면 알림을 트리거하여 자동화된 피드백 신호로 전달되어 상주 ML 엔지니어에게 알리고 재학습을 트리거할 수 있습니다.
효과적인 피드백 루프는 성숙한 DevOps 및 MLOps 관행 간의 가장 강력한 차별화 요소 중 하나입니다. 모니터링 지표가 성능 저하를 나타내면 피드백 루프는 초기 배포에 사용된 것과 동일한 CI/CD 파이프라인을 통해 자동화된 재학습을 트리거하거나 원인이 모호할 때 인간 검토로 에스컬레이션합니다. 잘 구성된 피드백 루프는 팀이 프로덕션에서 모델 품질 문제를 조사하는 데 소비하는 시간을 크게 줄여줍니다.
표준 DevOps CI/CD 툴체인은 Jenkins를 자동화에, Docker를 컨테이너화에, Terraform을 인프라 관리에, GitHub Actions 또는 GitLab CI를 모든 주요 소프트웨어 개발 플랫폼 전반의 오케스트레이션에 사용합니다.
MLOps 및 DevOps 툴체인은 CI/CD 계층에서 겹치고 ML별 계층에서 분기됩니다. 핵심 MLOps 도구에는 실험 추적 및 모델 버전 관리를 위한 MLflow, 데이터 버전 관리를 위한 DVC, 머신러닝 워크플로 오케스트레이션을 위한 Kubeflow 및 Airflow, 프로덕션 ML 파이프라인 설정을 가속화하기 위한 MLOps Stacks가 포함됩니다.
워크플로를 엔드투엔드로 자동화하려면 CI/CD 코드 승격 계층을 MLOps 모델 관리 계층에 연결해야 합니다. 표준 통합 패턴은 코드 병합 시 ML 학습 파이프라인을 트리거하고 결과 모델을 모델 레지스트리에 등록하며, 후속 자동화된 파이프라인 단계로 모델 검증 및 모델 배포를 실행합니다.
대부분의 조직에는 소프트웨어 개발을 위한 기존 CI/CD 인프라가 있습니다. MLOps 채택의 가장 위험이 적은 시작점은 아직 전체 모델 학습을 자동화하지 않고 기존 CI/CD 파이프라인에 데이터 유효성 검사 및 스키마 검사를 추가하는 것입니다. 이는 코드와 함께 데이터를 테스트하는 습관을 확립하며, 이는 후속 DevOps 및 MLOps 통합을 훨씬 더 원활하게 만드는 기본적인 MLOps 관행입니다.
완전한 전략은 세 가지 영역을 다룹니다. 코드는 표준 분기 워크플로를 사용하여 Git에 저장됩니다. 데이터 버전 관리는 DVC 또는 Delta Lake를 사용하여 특정 모델 버전과 연결된 데이터셋 스냅샷을 추적합니다. 모델 아티팩트는 버전 번호, 별칭 및 이를 생성한 데이터 및 코드에 대한 계보 링크와 함께 모델 레지스트리에 등록됩니다.
MLOps 및 DevOps 거버넌스는 액세스 제어 및 감사 가능성에서 수렴됩니다. 프로덕션 모델 아티팩트는 역할 기반 액세스 제어로 보호되어야 하며, 학습 파이프라인 로그는 완전한 추적성을 위해 모든 데이터 소스를 캡처해야 합니다. 규제 산업에서는 규정 준수 검사를 CI/CD 게이트로 포함해야 합니다.
가장 효과적인 파일럿 프로젝트는 ML 모델이 이미 프로덕션에 있지만 수동으로 관리되는 사용 사례입니다. 이러한 워크플로를 CI/CD 파이프라인으로 감싸고 자동화된 재학습을 추가하면 즉각적인 이점을 얻을 수 있습니다. 특성 스토어는 일반적인 특성을 공유하는 여러 ML 모델을 관리하는 팀에게 높은 가치를 제공하는 초기 추가 기능입니다.
머신러닝 모델이 비즈니스에 중요하고 자주 재학습되는 경우(예: 사기 탐지 및 추천 시스템) 전용 MLOps 인프라에 투자해야 합니다. 수동 모델 개발 비용은 자동화 비용을 훨씬 초과합니다. DevOps와 MLOps가 함께 작동하면 이러한 사용 사례에 필요한 모델 품질을 제공합니다.
머신러닝 구성 요소가 없는 애플리케이션을 구축하는 팀은 MLOps 오버헤드를 추가하지 않고 DevOps 성숙도에 투자해야 합니다. 순수 소프트웨어 개발 문제에 MLOps 패턴을 적용하면 이점 없이 복잡성만 증가합니다.
대부분의 엔터프라이즈 제품은 ML 모델과 규칙 기반 로직을 통합하는 애플리케이션의 하이브리드입니다. 이러한 맥락에서는 DevOps CI/CD 파이프라인이 애플리케이션 계층을 관리하고 MLOps 파이프라인이 모델 계층을 관리하는 아키텍처가 필요합니다. 이것이 DevOps와 MLOps 통합이 가장 큰 수익을 창출하는 곳입니다.
이 체크리스트를 사용하여 프로덕션 준비 MLOps 구현을 향한 진행 상황을 추적하세요:
코드 및 소스 제어
데이터 및 특성 관리
모델용 CI/CD
모니터링 및 피드백 루프
거버넌스 및 보안
DevOps는 소스 제어 및 CI/CD 파이프라인을 통해 기존 애플리케이션의 소프트웨어 개발 수명 주기를 자동화합니다. MLOps와 DevOps는 이 기반을 공유하지만, MLOps는 이를 확장하여 머신러닝 시스템을 관리합니다. 특히 데이터 버전 관리, 모델 훈련 자동화, 모델 품질 모니터링, 드리프트에 대한 응답으로 지속적인 훈련을 관리합니다. MLOps는 표준 DevOps만 사용하는 것보다 더 광범위한 도구와 교차 기능 기술이 필요합니다.
DevOps와 MLOps 모두 CI/CD 파이프라인에 의존하지만 구조는 다릅니다. 표준 DevOps CI/CD 파이프라인은 코드 테스트를 실행하고 애플리케이션 아티팩트를 배포합니다. MLOps CI/CD 파이프라인은 데이터 유효성 검사, 모델 훈련, 모델 유효성 검사 및 모델 레지스트리 단계를 추가하며, ML별 오케스트레이터가 모델 계층을 처리합니다.
지속적인 훈련(CT)은 새 데이터가 도착하거나 모니터링에서 드리프트로 인해 정확도가 허용 가능한 임계값 이하로 저하된 것으로 감지되면 모델 재훈련을 자동으로 트리거합니다. CT는 표준 DevOps 프로세스에 직접적인 동등물이 없습니다.
MLOps는 데이터 과학자, ML 엔지니어, 데이터 엔지니어 및 운영 팀 간의 협업을 포함합니다. 모든 역할에 걸쳐 명확한 커뮤니케이션과 공유된 문서화는 머신러닝 수명 주기 전반에 걸쳐 추적성을 위해 필수적입니다.
(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)
블로그를 구독하고 최신 게시물을 이메일로 받아보세요.