범위, 팀 역할, 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 파이프라인 트리거에는 코드 병합, 예약된 재학습 작업 및 모니터링 인프라의 자동 알림이 포함됩니다.