지속적 통합으로 AI/ML 워크플로우를 개선하세요. 테스트를 자동화하고 코드 품질을 개선하며 모델 개발을 간소화하십시오.
지속적 통합(CI)은 개발자가 코드 변경 사항을 공유된 중앙 리포지토리에 코드 변경 사항을 공유 중앙 리포지토리에 병합하는 기본적인 소프트웨어 개발 관행입니다. CI는 대규모 업데이트를 주기적으로 통합하기보다는 자동화된 빌드 및 테스트 시퀀스를 트리거하는 소규모의 정기적인 커밋을 권장합니다. 역동적인 분야에서 인공 지능(AI) 및 머신러닝(ML)의 역동적인 분야에서 이러한 관행은 초석입니다. 머신 러닝 운영(MLOps). 코드, 데이터 또는 하이퍼파라미터에 대한 변경이 하이퍼파라미터를 변경해도 기존 시스템을 손상시키거나 모델 성능을 저하시키지 않도록 합니다.
CI의 주요 목표는 오류를 가능한 한 빨리 detect 것인데, 이를 흔히 '실패를 빨리"라는 개념입니다. 이 프로세스는 Git과 같은 버전 관리 시스템에 크게 의존합니다. 코드베이스를 관리합니다. 개발자가 변경 사항을 푸시하면 CI 서버(예 GitHub Actions, GitLab CI 또는 Jenkins와 같은 CI 서버가 자동으로 새로운 환경으로 전환합니다.
ML 프로젝트의 경우 이 환경에서는 종종 다음과 같은 컨테이너화 도구를 개발, 테스트 및 프로덕션 전반에서 일관성을 보장하기 위해 Docker와 같은 컨테이너화 도구를 사용합니다. CI 파이프라인은 일련의 검사를 실행합니다:
ML을 위한 CI의 중요한 측면은 코드가 오류 없이 실행되지만 모델의 인텔리전스가 저하되는 것을 방지하는 것입니다. 이는 모델 테스트를 모델 테스트를 CI 워크플로에 직접 통합하면 됩니다.
다음 Python 스니펫은 CI 스크립트가 어떻게 YOLO11 모델을 로드하고 해당 성능 메트릭이 특정 표준을 충족하는지 확인하는 방법을 보여줍니다. 특정 표준을 충족하는지 확인하는 방법을 보여줍니다.
from ultralytics import YOLO
# Load the model to be tested (e.g., a newly trained artifact)
model = YOLO("yolo11n.pt")
# Run validation on a standard dataset (e.g., coco8.yaml for quick CI checks)
results = model.val(data="coco8.yaml")
# Extract the mAP50-95 metric
map_score = results.box.map
# Assert performance meets the minimum requirement for the pipeline to pass
print(f"Current mAP: {map_score}")
if map_score < 0.30:
raise ValueError("Model performance regression detected! mAP is too low.")
지속적 통합의 적용은 신뢰성이 타협할 수 없는 산업에서 필수적입니다.
CI/CD로 함께 언급되는 경우가 많지만, 지속적 통합을 다음과 구별하는 것이 중요합니다. 지속적 배포.
이 두 가지를 함께 사용하면 간소화된 파이프라인을 형성하여 간소화된 파이프라인을 형성하여 팀이 더 빠르게 반복 작업을 수행할 수 있습니다. 높은 수준의 품질과 보안을 유지하면서 더 빠르게 반복할 수 있습니다.