욜로 비전 선전
선전
지금 참여하기
용어집

지속적 통합(CI)

지속적 통합으로 AI/ML 워크플로우를 개선하세요. 테스트를 자동화하고 코드 품질을 개선하며 모델 개발을 간소화하십시오.

지속적 통합(CI)은 개발자가 코드 변경 사항을 중앙 리포지토리에 자주 병합하는 소프트웨어 개발 방식으로, 이후 자동화된 빌드 및 테스트가 실행됩니다. CI의 주요 목표는 통합 문제를 조기에 감지하고, 코드 품질을 개선하며, 개발 워크플로를 간소화하는 것입니다. 인공 지능(AI)머신 러닝(ML)의 맥락에서 CI는 기존 코드 검사를 넘어 데이터, 모델 및 전체 파이프라인 성능의 유효성 검사를 포함하도록 확장되어 머신 러닝 운영(MLOps)의 중요한 구성 요소를 형성합니다.

지속적인 통합의 주요 원칙

CI 프로세스는 자동화 및 빈번한 반복을 기반으로 구축됩니다. 개발자는 Git과 같은 버전 제어 시스템을 사용하여 공유 리포지토리에 작고 빈번한 변경 사항을 푸시합니다. 각 푸시는 여러 주요 단계를 실행하는 자동화된 워크플로 또는 파이프라인을 트리거합니다.

  • 자동 빌드: 시스템은 코드가 올바르게 통합되도록 자동으로 컴파일합니다. ML 프로젝트의 경우 이는 Docker와 같은 컨테이너화 도구를 사용하여 환경을 설정하는 것을 포함할 수 있습니다.
  • 자동화된 테스트: 새로운 변경 사항의 유효성을 검사하기 위해 일련의 테스트가 실행됩니다. 여기에는 코드 로직에 대한 단위 테스트, 구성 요소 상호 작용에 대한 통합 테스트, 데이터 유효성 검사 및 모델 평가와 같은 ML에 대한 특수 테스트가 포함됩니다.
  • 빠른 피드백 루프: 파이프라인의 어떤 단계에서든 오류가 발생하면 개발팀에 즉시 알림이 전송됩니다. 이를 통해 문제가 더 복잡해져서 메인 코드베이스에 통합되기 전에 신속하게 문제를 해결할 수 있습니다.

머신러닝을 위한 CI (CI4ML)

머신 러닝 프로젝트에 CI를 적용하는 것은 고유한 과제를 제시합니다. 단순히 코드 외에도 ML 시스템은 데이터와 훈련된 모델을 포함하며, 이 또한 버전 관리 및 검증되어야 합니다. Ultralytics YOLO 모델과 관련된 프로젝트와 같은 ML 프로젝트를 위한 효과적인 CI 파이프라인은 다음과 같은 추가 단계를 포함합니다.

  • 데이터 유효성 검사(Data Validation): 새로운 데이터의 정확성, 스키마 준수 및 잠재적인 데이터 세트 편향을 자동으로 확인합니다. Great Expectations와 같은 도구를 이를 위해 사용할 수 있습니다.
  • 모델 테스트: 성능 저하를 확인하기 위해 테스트를 실행합니다. 여기에는 표준화된 검증 데이터 세트에서 기준 버전과 비교하여 새 모델의 성능 지표를 비교하는 것이 포함됩니다.
  • 학습 파이프라인 유효성 검사: 모델 학습 프로세스 자체가 재현 가능하고 효율적인지 확인합니다. 이는 데이터 세트 관리 및 학습 워크플로를 간소화하는 Ultralytics HUB와 같은 플랫폼을 사용하여 관리할 수 있습니다.

실제 애플리케이션

  1. 자율 주행 개발: 자율 주행 차량객체 감지 모델을 개발하는 팀은 CI 파이프라인을 사용합니다. 개발자가 야간에 보행자를 감지하는 모델의 능력을 향상시키기 위해 코드를 제출하면 파이프라인이 자동으로 트리거됩니다. 파이프라인은 단위 테스트를 실행하고, 테스트 데이터 세트에서 YOLOv8 모델의 경량 버전을 재학습하고, mAP를 평가합니다. 정확도가 떨어지지 않고 모든 테스트를 통과하면 변경 사항이 병합 승인됩니다. GitHub Actions 또는 Jenkins와 같은 널리 사용되는 CI 도구는 이러한 워크플로를 자동화하는 데 일반적으로 사용됩니다.
  2. 의료 영상 분석: 의료 영상에서 종양을 탐지하도록 설계된 시스템에서 데이터 과학자는 견고성을 향상시키기 위해 새로운 증강 데이터를 추가할 수 있습니다. CI 파이프라인은 새로운 데이터 형식과 분포를 검증합니다. 그런 다음 사전 학습된 모델을 사용하여 검증 실행을 트리거하여 모델의 "골든 데이터 세트"에 대한 예측이 일관되게 유지되는지 확인하여 프로덕션 환경에서 예기치 않은 동작을 방지합니다. 이 프로세스는 헬스케어 분야의 AI에 중요한 높은 수준의 안정성을 유지하는 데 도움이 됩니다.

지속적 통합 vs. 지속적 제공/배포(CD)

CI는 지속적 제공 및 지속적 배포(CD)와 밀접하게 관련되어 있지만, 구별됩니다.

  • 지속적 통합(CI): 코드 변경 사항의 빈번한 통합 및 자동화된 테스트에 중점을 둡니다. 출력은 다음 단계를 위해 준비된 유효성이 검사된 빌드입니다. Ultralytics는 CI를 사용하여 병합하기 전에 모든 풀 요청을 테스트합니다.
  • 지속적 배포(CD): 모든 유효성이 검사된 변경 사항을 스테이징 또는 프로덕션 환경에 릴리스할 수 있도록 자동으로 준비하여 CI를 확장합니다. 그러나 프로덕션 환경에 대한 최종 모델 배포에는 수동 승인이 필요합니다. 이 접근 방식은 Atlassian과 같은 소스의 가이드에 자세히 설명되어 있습니다.
  • 지속적 배포(CD): 모든 유효성이 검사된 변경 사항을 사람의 개입 없이 프로덕션 환경에 직접 자동으로 배포하여 한 단계 더 나아갑니다. 이는 소프트웨어 릴리스 수명 주기에서 가장 높은 수준의 자동화를 나타냅니다.

CI 및 CD 방식은 초기 실험에서부터 배포 및 지속적인 모델 모니터링에 이르기까지 머신 러닝 시스템의 개발 및 운영을 통합하는 것을 목표로 하는 강력한 MLOps 전략의 기본입니다.

Ultralytics 커뮤니티에 참여하세요

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기
클립보드에 링크가 복사되었습니다.