욜로 비전 선전
선전
지금 참여하기

MLflow 통합을 사용하여 Ultralytics YOLO 실험 기록

Abirami Vina

4분 소요

2024년 12월 30일

MLflow 통합 및 로깅이 컴퓨터 비전 애플리케이션을 위한 뛰어난 추적 기능을 지원하여 Ultralytics YOLO 실험을 어떻게 향상시키는지 살펴보세요.

컴퓨터 비전 프로젝트를 퍼즐이라고 생각할 수 있습니다. 기본적으로 데이터 세트 수집, 모델 학습 및 배포와 같은 퍼즐 조각을 모아 기계가 시각적 데이터를 이해하도록 가르칩니다. 모든 것이 들어맞으면 이미지와 비디오를 효과적으로 분석하고 이해할 수 있는 시스템을 얻을 수 있습니다.

하지만 실제 퍼즐처럼 컴퓨터 비전 프로젝트의 모든 부분이 간단하지는 않습니다. 실험 추적(설정, 구성 및 데이터 기록 유지) 및 로깅(결과 및 성능 지표 캡처)과 같은 작업은 많은 시간과 노력이 필요할 수 있습니다. 이러한 단계는 컴퓨터 비전 모델을 개선하고 다듬는 데 중요하지만 때로는 병목 현상처럼 느껴질 수 있습니다.

바로 이 지점에서 Ultralytics YOLO 모델과 MLflow와의 통합이 중요한 역할을 합니다. Ultralytics YOLO11과 같은 모델은 객체 감지, 인스턴스 분할, 이미지 분류를 포함한 광범위한 컴퓨터 비전 작업을 지원합니다. 이러한 기능을 통해 흥미로운 컴퓨터 비전 애플리케이션을 만들 수 있습니다. MLflow 통합과 같은 통합에 의존할 수 있는 옵션이 있으면 비전 엔지니어는 세부 사항에 얽매이지 않고 모델 자체에 집중할 수 있습니다. 

특히 MLflow 통합은 훈련 과정 전반에 걸쳐 다양한 메트릭, 매개변수 및 아티팩트를 로깅하여 프로세스를 단순화합니다. 이 기사에서는 MLflow 통합이 어떻게 작동하는지, 그 이점 및 Ultralytics YOLO 워크플로를 간소화하기 위해 이를 사용하는 방법을 살펴봅니다.

MLflow란 무엇인가요?

MLflow는 전체 머신러닝 수명 주기를 간소화하고 관리하도록 설계된 오픈 소스 플랫폼(Databricks에서 개발)입니다. 여기에는 머신러닝 모델 개발, 배포 및 유지 관리 프로세스가 포함됩니다. 

MLflow에는 다음과 같은 주요 구성 요소가 포함되어 있습니다.

  • 실험 추적: 이 구성 요소는 각 모델 학습 실행에 대한 모델 설정, 결과 및 파일과 같은 중요한 세부 정보를 기록하는 데 중점을 둡니다. 모델을 비교하고, 변경 사항이 성능에 미치는 영향을 확인하고, 최적의 모델을 찾는 데 도움이 됩니다.
  • 모델 레지스트리: 모델을 위한 스토리지 시스템과 같으며, 다양한 버전을 추적하고 테스팅, 스테이징 및 프로덕션과 같은 단계별로 구성할 수 있습니다.
  • 프로젝트 패키징: MLflow를 사용하면 코드, 설정 및 필요한 도구를 포함하여 머신 러닝 프로젝트를 쉽게 번들로 묶을 수 있으므로 팀과 환경에서 일관되게 공유하고 사용할 수 있습니다.
  • 모델 배포: MLflow는 학습된 모델을 워크스테이션 또는 AWS 및 Azure와 같은 클라우드 플랫폼과 같은 위치에 빠르게 배포하여 실제 사용에 대비할 수 있도록 하는 도구를 제공합니다.
__wf_reserved_inherit
Fig 1. MLflow의 구성 요소입니다.

MLflow의 구성 요소는 머신러닝 프로세스를 보다 쉽고 효율적으로 관리할 수 있도록 합니다. 이러한 통합을 통해 Ultralytics는 MLflow의 실험 추적 기능을 사용하여 YOLO 모델을 학습하는 동안 파라미터, 메트릭 및 아티팩트를 기록할 수 있도록 합니다. 이를 통해 다양한 YOLO 모델 버전을 쉽게 추적하고 비교할 수 있습니다.

MLflow 통합은 학습을 간소화합니다.

이제 MLflow가 무엇인지 알아보았으니, MLflow 통합의 세부 사항과 제공하는 기능에 대해 자세히 살펴보겠습니다. 

MLflow 통합은 컴퓨터 비전 실험의 중요한 측면을 자동으로 추적하고 로깅하여 학습 프로세스를 보다 효율적이고 체계적으로 만들 수 있도록 설계되었습니다. 이는 메트릭, 파라미터 및 아티팩트의 세 가지 주요 로깅 유형을 용이하게 합니다.

다음은 각 로깅 유형에 대한 자세한 내용입니다.

  • 지표 로깅: 지표는 훈련 중 모델의 성능을 측정하는 정량적 값입니다. 예를 들어 정확도, 정밀도, 재현율 또는 손실과 같은 지표는 각 에포크(데이터 세트를 완전히 통과)가 끝날 때 추적됩니다.
  • 매개변수 로깅: 매개변수는 학습률, 배치 크기(한 번의 훈련 단계에서 처리되는 샘플 수) 및 epoch 수와 같이 모델 훈련이 시작되기 전에 정의하는 설정입니다. 이러한 매개변수는 모델의 동작과 성능에 큰 영향을 미칩니다.
  • 아티팩트 로깅: 아티팩트는 훈련 중에 생성된 출력 또는 파일입니다. 여기에는 모델 가중치(모델이 훈련 중에 학습하는 숫자 값), 구성 파일(훈련 설정을 저장하는 파일) 및 기타 관련 데이터와 같은 필수 파일이 포함됩니다.
__wf_reserved_inherit
Fig 2. MLflow 통합의 주요 로깅 기능. 이미지 출처: 작성자.

MLflow 연동 작동 방식

MLflow 통합 활성화에 대한 단계별 지침은 Ultralytics 문서를 참조하십시오. 설정이 완료되면 위에서 설명한 대로 통합이 학습 실험의 주요 세부 정보를 자동으로 추적하고 기록합니다. 따라서 수동으로 추적할 필요가 없으므로 모델 개선에 집중할 수 있습니다.

MLflow 통합을 통해 모든 훈련 실행이 한 곳에 저장되므로 결과를 비교하고 다양한 구성을 더 쉽게 평가할 수 있습니다. 기록된 결과를 비교하면 최상의 성능을 내는 구성을 식별하고 이러한 통찰력을 활용하여 모델을 개선할 수 있습니다. 이를 통해 워크플로가 더욱 효율적이고 문서화가 잘 되어 있으며 재현 가능합니다.

특히 각 훈련 세션은 여러 실행을 위한 컨테이너 역할을 하는 실험으로 구성됩니다. 실험 내에서 관련된 모든 실행을 보고, 성능을 나란히 비교하고, 다양한 구성에서 추세를 분석할 수 있습니다. 

예를 들어, Ultralytics YOLOv8을 사용하여 다양한 학습률 또는 배치 크기를 테스트하는 경우, 아래와 같이 관련된 모든 실행이 동일한 실험으로 그룹화되어 쉽게 비교하고 분석할 수 있습니다.

__wf_reserved_inherit
Fig 3. MLflow 통합을 사용하여 실험을 볼 수 있습니다.

한편, 개별 실행 수준에서 MLflow는 특정 학습 세션에 대한 자세한 통찰력을 제공합니다. 에포크에 따른 정확도, 손실 및 정밀도와 같은 지표를 보고, 사용된 학습 파라미터(예: 배치 크기 및 학습률)를 확인하고, 모델 가중치 및 구성 파일과 같은 생성된 아티팩트에 액세스할 수 있습니다. 이러한 세부 정보는 체계적인 형식으로 저장되므로 모든 실행을 간단하게 다시 방문하거나 재현할 수 있습니다.

MLflow 통합 선택: 그 이유

Ultralytics 문서를 살펴보고 사용 가능한 통합을 탐색하면서 다음과 같은 질문이 생길 수 있습니다. MLflow 통합을 차별화하는 요소는 무엇이며 워크플로에 MLflow 통합을 선택해야 하는 이유는 무엇입니까?

메트릭 추적 및 결과 시각화를 위한 도구를 제공하는 TensorBoard와 같은 통합을 통해 MLflow 통합을 돋보이게 만드는 고유한 품질을 이해하는 것이 중요합니다. 

다음은 MLflow가 YOLO 프로젝트에 이상적인 선택이 될 수 있는 이유입니다.

  • 사용자 친화적인 인터페이스(User-friendly interface): MLflow 대시보드를 사용하면 실험을 쉽게 보고, 실행을 비교하고, 결과를 분석하여 최상의 성능을 보이는 구성을 빠르게 식별할 수 있습니다.
  • 사용자 지정 메트릭 로깅: 비전 엔지니어는 표준 메트릭 외에도 사용자 지정 메트릭을 기록하여 프로젝트 요구 사항에 특정한 보다 심층적인 분석을 수행할 수 있습니다.
  • 다국어 워크플로우 지원: MLflow는 Python, R, Java를 포함한 여러 프로그래밍 언어와 호환되므로 다양한 머신러닝 파이프라인에 통합하기 쉽습니다.

YOLO11 및 MLflow 통합의 실제 응용

MLflow 통합을 사용할 수 있는 시기에 대한 보다 포괄적인 이해를 돕기 위해 X선 또는 CT 스캔 이미지에서 종양을 탐지하도록 YOLO11을 훈련해야 하는 의료 분야의 AI 애플리케이션을 고려해 보겠습니다. 

이러한 시나리오에서 데이터 세트는 주석이 달린 의료 이미지로 구성됩니다. 최적의 정확도를 얻으려면 학습률, 배치 크기 및 이미지 전처리 기술 조정과 같은 다양한 구성을 실험해야 합니다. 의료 분야에서는 위험 부담이 크고 정밀성과 신뢰성이 중요하므로 각 실험을 수동으로 추적하면 관리가 어려워질 수 있습니다.

__wf_reserved_inherit
Fig 4. Ultralytics YOLO11을 사용한 종양 감지.

MLflow 통합은 모든 실험의 파라미터, 메트릭 및 아티팩트를 자동으로 로깅하여 이러한 문제를 해결합니다. 예를 들어, 학습률을 수정하거나 새로운 증강 전략을 적용하면 MLflow는 이러한 변경 사항을 성능 메트릭과 함께 기록합니다. 또한 MLflow는 학습된 모델 가중치와 구성을 저장하여 성공적인 모델을 쉽게 재현하고 배포할 수 있도록 보장합니다. 

이는 MLflow 통합이 Vision AI 애플리케이션에서 실험 관리를 향상시키는 한 가지 예일 뿐입니다. 동일한 기능이 다음을 포함한 다른 컴퓨터 비전 애플리케이션에도 적용됩니다.

  • 자율 주행: YOLO11은 자율 주행 시스템의 안전과 효율성을 개선하기 위해 보행자, 차량 및 교통 표지판을 실시간으로 감지하고 분류하는 데 사용할 수 있습니다.
  • 소매 분석(Retail analytics): 객체 감지 모델은 비디오 피드를 통해 매장 내 활동을 분석하여 고객 행동을 모니터링하고, 제품 배치를 추적하고, 재고를 최적화할 수 있습니다.
  • 보안 및 감시: 모델을 학습하여 민감한 영역에서 이상 징후를 감지하거나 실시간 활동을 모니터링하여 보안을 강화할 수 있습니다.

MLflow 통합의 이점

YOLO 모델과의 MLflow 통합은 머신 러닝 실험을 더 쉽고 효율적으로 관리할 수 있도록 해줍니다. 주요 작업을 자동화하고 모든 것을 체계적으로 유지함으로써 모델 구축 및 개선에 집중할 수 있습니다. 주요 이점은 다음과 같습니다.

  • 대규모 프로젝트를 위한 확장: 이 플랫폼은 여러 실험과 모델을 효율적으로 처리하므로 대규모 팀과 복잡한 워크플로에 적합합니다.
  • 상세한 실험 이력: 이 플랫폼은 실험에 대한 전체 이력을 유지 관리하므로 과거 실행을 다시 방문하고, 이전 구성을 분석하고, 이전 결과로부터 학습할 수 있습니다.
  • 옵션 비활성화 및 재설정: MLflow 로깅은 필요하지 않을 때 쉽게 비활성화할 수 있으며 설정을 기본값으로 재설정하여 다양한 워크플로 요구 사항에 맞게 조정할 수 있는 유연성을 제공합니다.

주요 내용

MLflow 통합은 Ultralytics YOLO 실험의 관리 및 최적화를 더 쉽고 효율적으로 만들어줍니다. 파라미터, 메트릭 및 아티팩트와 같은 주요 세부 정보를 자동으로 추적하여 프로세스를 간소화하고 수동 실험 관리의 번거로움을 제거합니다. 

종양 감지와 같은 의료 솔루션을 개발하든, 자율 주행 시스템을 개선하든, 소매 분석을 향상시키든, 이 통합은 모든 것을 체계적이고 재현 가능하게 유지하는 데 도움이 됩니다. 직관적인 인터페이스와 유연성을 갖춘 MLflow를 통해 개발자는 더 나은 모델을 구축하고 Vision AI 애플리케이션의 혁신을 주도하는 데 집중할 수 있습니다.

커뮤니티에 참여하고 GitHub 저장소를 확인하여 AI에 대해 알아보세요. 솔루션 페이지에서 제조 분야의 컴퓨터 비전 또는 자율 주행 자동차의 AI의 더 많은 응용 분야를 탐색할 수도 있습니다.

함께 미래의 AI를 만들어 갑시다!

미래의 머신러닝 여정을 시작하세요

무료로 시작하기
클립보드에 링크가 복사되었습니다.