용어집

지속적 통합(CI)

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

YOLO 모델을 Ultralytics HUB로 간단히
훈련

자세히 알아보기

지속적 통합(CI)은 최신 소프트웨어 개발의 기본 관행이며 인공 지능(AI)머신 러닝(ML) 분야에서 그 중요성이 점점 더 커지고 있습니다. 여기에는 여러 기여자의 코드 변경 사항을 중앙 리포지토리로 자주 병합한 후 자동화된 빌드 및 테스트를 실행하는 작업이 포함됩니다. CI의 주요 목표는 통합 문제를 조기에 발견하고 코드 품질을 개선하며 개발 워크플로우를 간소화하는 것입니다. 이러한 자동화와 신속한 피드백 루프는 교육 및 배포와 관련된 프로젝트와 같이 복잡한 프로젝트에 특히 유용합니다. Ultralytics YOLO 모델 훈련 및 배포와 같은 복잡한 프로젝트에 특히 유용합니다.

AI/ML에서 지속적 통합이 중요한 이유는 무엇인가요?

데이터, 모델, 매개변수 ( 하이퍼파라미터 튜닝데이터 증강 등)에 대한 실험을 포함하는 AI/ML 개발의 반복적인 특성으로 인해 CI는 특히 유용합니다. CI를 통합하면 변경 사항에 대한 신속한 피드백을 제공하여 새 코드가 기존 코드베이스와 올바르게 통합되고 모델 성능이 예기치 않게 저하되지 않도록 보장할 수 있습니다. 주요 이점은 다음과 같습니다:

  • 버그 조기 발견: 자동화된 테스트는 코드 변경 사항이 병합된 후 오류를 빠르게 포착하여 나중에 수정하는 데 드는 비용과 노력을 줄여줍니다.
  • 코드 품질 향상: 일관된 테스트와 통합은 더 나은 코딩 관행과 유지 관리 가능한 코드베이스를 장려합니다. 린터 및 정적 분석기와 같은 도구는 종종 CI 파이프라인의 일부입니다.
  • 개발 주기 단축: 자동화를 통해 수동 테스트 작업을 줄이고 개발자는 기능 구축에 집중할 수 있습니다.
  • 일관된 모델 성능: CI 파이프라인에는 모델 정확도, 정밀도, 리콜 및 기타 관련 메트릭을 평가하여 회귀를 방지하는 단계가 포함될 수 있습니다. 여기에는 종종 F1 점수 또는 평균 정밀도(mAP)와 같은 메트릭을 확인하는 것이 포함됩니다.
  • 향상된 협업: 잦은 통합으로 병합 충돌을 최소화하고 팀이 최신 코드베이스로 작업할 수 있습니다.

AI/ML 프로젝트에서 CI가 작동하는 방식

CI를 사용하는 일반적인 AI/ML 프로젝트에서는 개발자가 코드 변경 사항(모델 스크립트, 구성 파일 또는 새로운 데이터 처리 단계 포함)을 Git과 같은 공유 버전 제어 시스템에 커밋할 때 프로세스가 시작되는 경우가 많습니다. 이 커밋은 자동으로 CI 파이프라인을 트리거하며, 보통 Jenkins, GitLab CI/CD 또는 GitHub Actions와 같은 플랫폼에서 관리합니다. 파이프라인은 일반적으로 여러 단계를 수행합니다:

  1. 빌드: 코드를 컴파일하고 필요한 아티팩트(예: Docker 이미지)를 빌드합니다.
  2. 단위 테스트: 개별 코드 컴포넌트에 대해 소규모의 격리된 테스트를 실행합니다.
  3. 통합 테스트: 시스템의 여러 부분 간의 상호 작용을 테스트합니다.
  4. 모델 검증: 데이터 무결성 확인, 모델 아키텍처 검증, 소규모 테스트 데이터 세트에 대한 추론 실행 등 ML 모델과 관련된 테스트를 실행합니다.
  5. 성능 테스트: 미리 정의된 벤치마크 또는 이전 버전과 비교하여 모델의 성능 지표(맵, 정확도, 지연 시간)를 평가합니다. 여기에는 벤치마킹 모드가 포함될 수 있습니다.
  6. 보고: 빌드 및 테스트 결과를 팀에 알리며, 종종 Slack과 같은 커뮤니케이션 도구와 통합됩니다.

Ultralytics CI를 광범위하게 사용하며, 프로세스에 대한 자세한 내용은 Ultralytics CI 가이드에서 확인할 수 있습니다.

AI/ML에서 지속적 통합의 실제 적용 사례

지속적 통합은 효율성과 안정성을 높이기 위해 다양한 실제 AI/ML 애플리케이션에서 사용됩니다.

  • 물체 감지 시스템 개발: 물체 감지 시스템을 개발하는 회사에서 다음을 사용하는 경우 Ultralytics YOLO11를 사용하는 회사에서는 CI를 사용하여 새로운 코드 변경 사항을 자동으로 테스트할 수 있습니다. 각 커밋은 데이터의 하위 집합(예: COCO128)에서 모델을 재학습 또는 검증하는 파이프라인을 트리거하고, 평가를 실행하여 맵과 추론 속도를 확인하고, 병합 전에 변경 사항이 성능에 부정적인 영향을 미치지 않는지 확인하는 작업을 수행할 수 있습니다. 이를 통해 자동차 AI 또는 보안 분야의 애플리케이션에서 모델 품질을 유지하는 데 도움이 됩니다.
  • 자연어 처리(NLP) 모델 개선: NLP 기술을 사용하여 감성 분석 모델을 개발하는 팀은 CI를 구현할 수 있습니다. 모든 코드 업데이트(예: 기능 추출 또는 모델 아키텍처 조정)는 자동으로 테스트를 트리거합니다. 이러한 테스트는 업데이트된 모델을 검증 데이터 세트에서 실행하여 감정 분류 정확도와 F1 점수를 기준 결과와 비교할 수 있습니다. 이를 통해 모델의 효율성을 지속적으로 모니터링하고 개선할 수 있습니다.

지속적 통합 대 지속적 배포/배포(CD)

밀접한 관련이 있지만 CI는 지속적 배포 및 지속적 배포(CD)와는 구별됩니다.

  • 지속적 통합(CI): 코드 변경 사항을 자주 통합하고 자동으로 테스트하는 데 중점을 둡니다. 결과물은 다음 단계를 위해 준비된 검증된 빌드입니다.
  • 지속적 배포(CD): 스테이징 또는 프로덕션 환경으로 배포할 수 있도록 검증된 코드 변경 사항을 자동으로 준비하여 CI를 확장합니다. 프로덕션으로의 배포는 일반적으로 수동으로 트리거됩니다. 이 Atlassian 가이드에서 차이점에 대해 자세히 알아볼 수 있습니다.
  • 지속적 배포(CD): 수동 개입 없이 검증된 모든 변경 사항을 프로덕션에 직접 자동으로 배포하여 한 단계 더 나아갑니다.

CI 및 CD 관행은 개발부터 배포모니터링에 이르는 전체 머신 러닝 수명 주기를 간소화하는 것을 목표로 하는 머신 러닝 운영(MLOps)의 핵심 구성 요소입니다. Ultralytics HUB와 같은 플랫폼은 모델 훈련 및 배포를 포함하여 이 수명 주기의 일부를 관리하는 데 도움을 줄 수 있습니다.

모두 보기