용어집

지속적 통합(CI)

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

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

자세히 알아보기

지속적 통합(CI)은 개발자가 코드 변경 사항을 중앙 리포지토리에 자주 병합한 후 자동화된 빌드 및 테스트를 실행하는 소프트웨어 개발 관행입니다. 이 프로세스는 버그를 신속하게 식별 및 해결하고, 소프트웨어 품질을 개선하며, 새로운 소프트웨어 업데이트를 검증하고 릴리스하는 데 걸리는 시간을 줄이는 데 도움이 되므로 AI 및 머신러닝(ML) 프로젝트를 포함한 최신 소프트웨어 개발에서 매우 중요합니다. 코드 변경 사항을 지속적으로 통합함으로써 팀은 변경 사항을 병합하기 위해 프로젝트가 끝날 때까지 기다리는 '통합 지옥'을 피할 수 있습니다.

지속적 통합의 주요 측면

지속적 통합에는 몇 가지 주요 관행이 포함됩니다. 첫째, 개발자는 하루에 여러 번 공유 리포지토리에 코드를 커밋합니다. 그런 다음 각 커밋은 자동화된 빌드를 통해 검증되므로 팀은 문제를 조기에 발견할 수 있습니다. 자동화된 테스트는 CI의 또 다른 초석으로, 단위 테스트, 통합 테스트 및 기타 형태의 자동화된 테스트를 포괄하여 각 업데이트 후에도 소프트웨어가 계속 작동하는지 확인합니다. 지속적인 피드백은 개발자에게 변경 사항의 영향에 대한 즉각적인 인사이트를 제공하는 데 필수적입니다. 이러한 신속한 피드백 루프는 문제를 신속하게 해결하고 높은 수준의 코드 품질을 유지하는 데 도움이 됩니다.

AI/ML 지속적 통합의 이점

AI와 ML의 맥락에서 지속적 통합은 많은 이점을 제공합니다. 모델의 학습 및 검증을 자동화하여 개발 워크플로우를 간소화하고 새로운 코드가 기존 시스템과 원활하게 통합되도록 보장합니다. 이는 새로운 데이터로 모델을 자주 재학습해야 하는 머신러닝 프로젝트에서 특히 중요합니다. CI는 모델 정확도, 성능 및 기타 중요한 메트릭을 확인하는 테스트를 자동으로 실행하여 코드 품질을 유지하는 데 도움을 줍니다. 또한 일관되고 투명한 개발 프로세스를 제공함으로써 팀원 간의 협업을 촉진합니다. CI는 문제를 조기에 발견함으로써 개발 주기 후반에 발생할 수 있는 주요 문제의 위험을 줄여 궁극적으로 더욱 안정적이고 견고한 AI/ML 시스템을 구축할 수 있게 해줍니다.

지속적 통합과 관련 용어

지속적 통합은 강력한 방법이지만, 지속적 배포(CD) 및 지속적 배포와 같은 다른 관련 개념과 함께 논의되는 경우가 많습니다. 지속적 배포는 테스트 또는 스테이징 환경에 모든 변경 사항을 자동으로 배포하여 소프트웨어를 언제든지 프로덕션에 릴리스할 수 있도록 함으로써 CI를 확장합니다. 지속적 배포는 프로덕션 파이프라인의 모든 단계를 통과하는 모든 변경 사항을 라이브 환경에 자동으로 릴리스함으로써 한 단계 더 나아갑니다. CI가 빌드 및 테스트 단계에 중점을 두는 반면, CD 및 지속적 배포는 릴리스 및 배포 단계에 중점을 둡니다. 이러한 관행은 함께 CI/CD로 알려진 파이프라인을 형성하며, 이는 AI/ML 프로젝트를 포함한 최신 소프트웨어 개발의 모범 사례입니다.

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

지속적 통합은 효율성과 안정성을 향상시키기 위해 다양한 실제 AI/ML 애플리케이션에서 사용됩니다. 예를 들어, Ultralytics YOLO 을 사용하여 객체 감지 시스템을 개발하는 회사에서는 CI를 사용하여 일련의 성능 벤치마크에 대해 새로운 코드 변경 사항을 자동으로 테스트하여 업데이트가 모델의 정확도나 속도를 저하시키지 않는지 확인할 수 있습니다. 각 코드 커밋은 자동화된 빌드 프로세스를 트리거하여 유효성 검사 데이터 세트에서 모델을 학습시키고 평균 정확도(mAP)와 같은 성능 메트릭을 평가합니다. 이 접근 방식은 지속적인 모델 개선과 신뢰성을 보장합니다.

또 다른 예로는 자연어 처리(NLP) 분야에서 감성 분석 모델을 개발하는 팀이 있을 수 있습니다. CI를 구현하면 모든 코드 변경이 모델의 정확한 정서 분류 기능에 미치는 영향을 자동으로 테스트할 수 있습니다. 여기에는 테스트 데이터 세트에서 업데이트된 모델을 실행하고 이전 버전과 성능을 비교하는 작업이 포함될 수 있습니다. 이러한 테스트의 지속적인 피드백은 팀이 문제를 신속하게 파악하고 수정하여 모델이 정확하고 효과적인 상태를 유지할 수 있도록 도와줍니다.

지속적 통합을 위한 도구 및 플랫폼

여러 도구와 플랫폼이 지속적 통합을 지원합니다. Jenkins는 프로젝트 구축, 배포 및 자동화를 지원하는 수백 개의 플러그인을 제공하는 오픈 소스 자동화 서버입니다. 트래비스 CI는 사용 편의성과 GitHub와의 통합으로 잘 알려진 또 다른 인기 도구입니다. GitLab CI/CD는 GitLab 내에 통합되어 있으며 CI/CD 파이프라인을 위한 종합적인 솔루션을 제공합니다. CircleCI는 다양한 언어와 플랫폼을 지원하여 다양한 프로젝트 요구사항에 유연하게 대응할 수 있습니다. GitHub Actions를 사용하면 GitHub 리포지토리 내에서 직접 워크플로우를 자동화할 수 있어 GitHub에서 호스팅되는 프로젝트에 편리한 옵션입니다. 이러한 도구는 팀이 CI를 효과적으로 구현하여 AI/ML 모델을 지속적으로 테스트하고 개선할 수 있도록 도와줍니다. 또한 Ultralytics 허브와 같은 플랫폼을 CI 파이프라인에 통합하여 모델의 학습배포를 간소화함으로써 개발 프로세스의 효율성을 더욱 높일 수 있습니다.

모두 보기