지속적 통합(CI)
지속적 통합으로 AI/ML 워크플로우를 개선하세요. 테스트를 자동화하고, 코드 품질을 개선하고, 모델 개발을 손쉽게 간소화하세요.
지속적 통합(CI)은 개발자가 코드 변경 사항을 중앙 리포지토리에 자주 병합한 후 자동화된 빌드 및 테스트를 실행하는 소프트웨어 개발 관행입니다. CI의 주요 목표는 통합 문제를 조기에 발견하고 코드 품질을 개선하며 개발 워크플로우를 간소화하는 것입니다. 인공 지능(AI) 및 머신 러닝(ML)의 맥락에서 CI는 기존의 코드 검사를 넘어 데이터, 모델 및 전반적인 파이프라인 성능의 유효성 검사를 포함하며 머신 러닝 운영(MLOps)의 중요한 구성 요소를 형성합니다.
지속적 통합의 핵심 원칙
CI 프로세스는 자동화와 빈번한 반복을 기반으로 구축됩니다. 개발자는 Git과 같은 버전 관리 시스템을 사용하여 공유 리포지토리에 소규모의 변경 사항을 자주 푸시합니다. 각 푸시는 몇 가지 주요 단계를 실행하는 자동화된 워크플로 또는 파이프라인을 트리거합니다:
- 자동 빌드: 시스템이 코드를 자동으로 컴파일하여 올바르게 통합되도록 합니다. ML 프로젝트의 경우, 여기에는 Docker와 같은 컨테이너화 도구를 사용하여 환경을 설정하는 작업이 포함될 수 있습니다.
- 자동화된 테스트: 새로운 변경 사항을 검증하기 위해 일련의 테스트가 실행됩니다. 여기에는 코드 로직에 대한 단위 테스트, 구성 요소 상호 작용에 대한 통합 테스트, 데이터 유효성 검사 및 모델 평가와 같은 ML을 위한 전문 테스트가 포함됩니다.
- 빠른 피드백 루프: 파이프라인의 어떤 단계라도 실패하면 개발팀에 즉시 알림이 전송됩니다. 이를 통해 문제가 더 복잡해지고 메인 코드베이스에 통합되기 전에 신속하게 문제를 해결할 수 있습니다.
머신 러닝용 CI(CI4ML)
머신러닝 프로젝트에 CI를 적용하면 고유한 과제가 발생합니다. ML 시스템에는 단순한 코드 외에도 데이터와 학습된 모델이 포함되며, 버전 관리와 검증도 필요합니다. Ultralytics YOLO 모델과 같은 ML 프로젝트를 위한 효과적인 CI 파이프라인에는 추가 단계가 포함됩니다:
실제 애플리케이션
- 자율 주행 개발: 자율 주행 차량용 물체 감지 모델을 개발하는 팀은 CI 파이프라인을 사용합니다. 개발자가 야간에 보행자를 감지하는 모델의 기능을 개선하기 위해 코드를 제출하면 파이프라인이 자동으로 트리거됩니다. 단위 테스트를 실행하고, 테스트 데이터 세트에서 경량 버전의 YOLO11 모델을 재학습하고, 맵을 평가합니다. 정확도가 떨어지지 않고 모든 테스트가 통과되면 변경 사항이 병합 승인됩니다. 이러한 워크플로우를 자동화하는 데는 일반적으로 GitHub Actions 또는 Jenkins와 같은 인기 있는 CI 도구가 사용됩니다.
- 의료 이미지 분석: 의료 이미지에서 종양 탐지를 위해 설계된 시스템에서 데이터 과학자는 견고성을 향상시키기 위해 새로운 증강 데이터를 추가할 수 있습니다. CI 파이프라인은 새로운 데이터 형식과 배포를 검증합니다. 그런 다음 사전 학습된 모델을 사용해 검증을 실행하여 '황금 데이터 세트'에 대한 모델의 예측이 일관성을 유지하도록 함으로써 프로덕션에서 예기치 않은 동작을 방지합니다. 이 프로세스는 의료 분야의 AI에 필수적인 높은 수준의 신뢰성을 유지하는 데 도움이 됩니다.
지속적 통합 대 지속적 배포/배포(CD)
밀접한 관련이 있지만 CI는 지속적 배포 및 지속적 배포(CD)와는 구별됩니다.
- 지속적 통합(CI): 빈번한 통합과 코드 변경 사항의 자동화된 테스트에 중점을 둡니다. 결과물은 다음 단계를 위해 준비된 검증된 빌드입니다. Ultralytics는 CI를 사용하여 모든 풀 리퀘스트를 병합하기 전에 테스트합니다.
- 지속적 배포(CD): 스테이징 또는 프로덕션 환경으로 릴리스할 모든 검증된 변경 사항을 자동으로 준비하여 CI를 확장합니다. 그러나 프로덕션에 대한 최종 모델 배포에는 수동 승인이 필요합니다. 이 접근 방식은 Atlassian과 같은 출처의 가이드에 자세히 설명되어 있습니다.
- 지속적 배포(CD): 한 단계 더 나아가 사람의 개입 없이 검증된 모든 변경 사항을 프로덕션에 직접 자동으로 배포합니다. 이는 소프트웨어 릴리스 수명 주기에서 가장 높은 수준의 자동화를 나타냅니다.
CI와 CD 관행은 초기 실험부터 배포 및 지속적인 모델 모니터링에 이르기까지 머신 러닝 시스템의 개발과 운영을 통합하는 것을 목표로 하는 강력한 MLOps 전략의 기본입니다.