콘텐츠로 건너뛰기

MLflow 통합 대상 Ultralytics YOLO

MLflow 에코시스템

소개

실험 로깅은 다양한 메트릭, 매개변수 및 아티팩트를 추적할 수 있는 머신 러닝 워크플로우의 중요한 측면입니다. 모델 재현성을 높이고, 문제를 디버그하며, 모델 성능을 개선하는 데 도움이 됩니다. Ultralytics YOLO 실시간 객체 감지 기능으로 잘 알려진 머신 러닝 라이프사이클 관리를 위한 오픈 소스 플랫폼인 MLflow와의 통합을 이제 제공합니다.

이 문서 페이지는 Ultralytics YOLO 프로젝트의 MLflow 로깅 기능 설정 및 활용에 대한 종합적인 안내서입니다.

MLflow란 무엇인가요?

MLflow는 엔드투엔드 머신 러닝 수명 주기를 관리하기 위해 데이터브릭스에서 개발한 오픈 소스 플랫폼입니다. 여기에는 실험 추적, 재현 가능한 실행으로 코드 패키징, 모델 공유 및 배포를 위한 도구가 포함되어 있습니다. MLflow는 모든 머신 러닝 라이브러리 및 프로그래밍 언어와 함께 작동하도록 설계되었습니다.

특징

  • 메트릭 로깅: 각 에포크가 끝날 때와 교육이 끝날 때 메트릭을 기록합니다.
  • 파라미터 로깅: 트레이닝에 사용된 모든 파라미터를 기록합니다.
  • 아티팩트 로깅: 훈련이 끝나면 가중치 및 구성 파일을 포함한 모델 아티팩트를 기록합니다.

설정 및 사전 요구 사항

MLflow가 설치되어 있는지 확인합니다. 설치되어 있지 않은 경우 pip를 사용하여 설치하세요:

pip install mlflow

Ultralytics 설정에서 MLflow 로깅이 활성화되어 있는지 확인합니다. 일반적으로 이 설정은 다음과 같은 설정으로 제어됩니다. mlflow 키를 입력합니다. 참조 설정 페이지에서 자세한 정보를 확인하세요.

업데이트 Ultralytics MLflow 설정

Python 환경 내에서 update 메서드의 settings 객체를 사용하여 설정을 변경할 수 있습니다:

from ultralytics import settings

# Update a setting
settings.update({"mlflow": True})

# Reset settings to default values
settings.reset()

명령줄 인터페이스를 선호하는 경우 다음 명령어를 사용하여 설정을 수정할 수 있습니다:

# Update a setting
yolo settings mlflow=True

# Reset settings to default values
yolo settings reset

사용 방법

명령

  1. 프로젝트 이름을 설정합니다: 환경 변수를 통해 프로젝트 이름을 설정할 수 있습니다:

    export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAME
    

    또는 project=<project> 인수를 사용하여 YOLO 모델을 학습시킬 때, 즉 yolo train project=my_project.

  2. 실행 이름 설정: 프로젝트 이름 설정과 마찬가지로 환경 변수를 통해 실행 이름을 설정할 수 있습니다:

    export MLFLOW_RUN=YOUR_RUN_NAME
    

    또는 name=<name> 인수를 사용하여 YOLO 모델을 학습시킬 때, 즉 yolo train project=my_project name=my_name.

  3. 로컬 MLflow 서버를 시작합니다: 추적을 시작하려면 다음을 사용합니다:

    mlflow server --backend-store-uri runs/mlflow
    

    그러면 다음 위치에서 로컬 서버가 시작됩니다. http://127.0.0.1:5000 를 기본값으로 설정하고 모든 mlflow 로그를 'runs/mlflow' 디렉터리에 저장합니다. 다른 URI를 지정하려면 MLFLOW_TRACKING_URI 환경 변수입니다.

  4. MLflow 서버 인스턴스 종료: 실행 중인 모든 MLflow 인스턴스를 중지하려면 실행합니다:

    ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
    

로깅

로깅은 다음에서 처리합니다. on_pretrain_routine_end, on_fit_epoch_endon_train_end 콜백 함수. 이러한 함수는 학습 프로세스의 각 단계에서 자동으로 호출되며 매개변수, 메트릭 및 아티팩트의 로깅을 처리합니다.

예제

  1. 사용자 지정 지표 로깅: 사용자 정의 메트릭을 수정하여 기록할 사용자 정의 메트릭을 추가할 수 있습니다. trainer.metrics 사전 이전 on_fit_epoch_end 를 호출합니다.

  2. 실험 보기: 로그를 보려면 MLflow 서버로 이동합니다(일반적으로 http://127.0.0.1:5000)를 클릭하고 실험을 선택한 후 실행합니다. YOLO MLflow 실험

  3. 실행 보기: 실행은 실험 내의 개별 모델입니다. 실행을 클릭하면 업로드된 아티팩트 및 모델 가중치를 포함한 실행 세부 정보를 확인할 수 있습니다. YOLO MLflow 실행

MLflow 비활성화

MLflow 로깅을 끄려면 다음과 같이 하세요:

yolo settings mlflow=False

결론

머신 러닝 실험을 추적할 수 있는 간소화된 방법을 제공하는 Ultralytics YOLO MLflow 로깅 통합. 성능 메트릭을 모니터링하고 아티팩트를 효과적으로 관리할 수 있어 강력한 모델 개발 및 배포를 지원합니다. 자세한 내용은 MLflow 공식 문서를 참조하세요.

자주 묻는 질문

Ultralytics YOLO 으로 MLflow 로깅을 설정하려면 어떻게 하나요?

Ultralytics YOLO 으로 MLflow 로깅을 설정하려면 먼저 MLflow가 설치되어 있는지 확인해야 합니다. pip를 사용하여 설치할 수 있습니다:

pip install mlflow

그런 다음 Ultralytics 설정에서 MLflow 로깅을 활성화합니다. 이는 다음을 사용하여 제어할 수 있습니다. mlflow 키를 입력합니다. 자세한 내용은 설정 가이드.

업데이트 Ultralytics MLflow 설정

from ultralytics import settings

# Update a setting
settings.update({"mlflow": True})

# Reset settings to default values
settings.reset()
# Update a setting
yolo settings mlflow=True

# Reset settings to default values
yolo settings reset

마지막으로 추적을 위해 로컬 MLflow 서버를 시작합니다:

mlflow server --backend-store-uri runs/mlflow

Ultralytics YOLO 에서 MLflow를 사용하여 어떤 메트릭과 매개 변수를 기록할 수 있나요?

Ultralytics YOLO 를 사용하면 트레이닝 프로세스 전반에 걸쳐 다양한 지표, 매개변수, 아티팩트 로깅을 지원합니다:

  • 메트릭 로깅: 각 에포크가 끝날 때와 교육이 완료될 때 지표를 추적합니다.
  • 파라미터 로깅: 트레이닝 프로세스에 사용된 모든 파라미터를 기록합니다.
  • 아티팩트 로깅: 학습 후 가중치 및 구성 파일과 같은 모델 아티팩트를 저장합니다.

자세한 내용은 Ultralytics YOLO 추적 문서를 참조하세요.

MLflow 로깅이 활성화된 후에는 비활성화할 수 있나요?

예, 설정을 업데이트하여 Ultralytics YOLO 에 대한 MLflow 로깅을 비활성화할 수 있습니다. 방법은 CLI 에서 확인할 수 있습니다:

yolo settings mlflow=False

추가 사용자 지정 및 설정 재설정에 대한 자세한 내용은 설정 가이드를 참조하세요.

Ultralytics YOLO 추적을 위해 MLflow 서버를 시작하고 중지하려면 어떻게 해야 하나요?

Ultralytics YOLO 에서 실험을 추적하기 위한 MLflow 서버를 시작하려면 다음 명령을 사용합니다:

mlflow server --backend-store-uri runs/mlflow

이 명령은 기본적으로 http://127.0.0.1:5000 에서 로컬 서버를 시작합니다. MLflow 서버 인스턴스 실행을 중지해야 하는 경우 다음 bash 명령을 사용하세요:

ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9

더 많은 명령어 옵션은 명령어 섹션을 참조하세요.

실험 추적을 위해 MLflow를 Ultralytics YOLO 과 통합하면 어떤 이점이 있나요?

MLflow를 Ultralytics YOLO 와 통합하면 머신 러닝 실험을 관리하는 데 몇 가지 이점이 있습니다:

  • 향상된 실험 추적: 다양한 실행과 그 결과를 쉽게 추적하고 비교할 수 있습니다.
  • 모델 재현성 향상: 모든 매개변수와 아티팩트를 기록하여 실험을 재현할 수 있는지 확인하세요.
  • 성능 모니터링: 시간 경과에 따른 성능 메트릭을 시각화하여 모델 개선을 위한 데이터 기반 의사 결정을 내릴 수 있습니다.
  • 간소화된 워크플로: 로깅 프로세스를 자동화하여 수동 추적 대신 모델 개발에 더 집중할 수 있습니다.
  • 공동 개발: 팀원들과 실험 결과를 공유하여 더 나은 협업과 지식 공유를 도모하세요.

Ultralytics MLflow 설정 및 활용에 대한 자세한 내용은YOLO , Ultralytics YOLO 에 대한 MLflow 통합 문서를 참조하세요.

📅1 년 전 생성됨 ✏️ 업데이트됨 3 일 전

댓글