콘텐츠로 건너뛰기

Ultralytics YOLO를 위한 MLflow 통합

MLflow 생태계

소개

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

이 문서 페이지는 Ultralytics YOLO 프로젝트에 대한 MLflow 로깅 기능을 설정하고 활용하기 위한 포괄적인 가이드입니다.

MLflow란 무엇입니까?

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

기능

  • 메트릭 로깅: 각 epoch의 끝과 훈련의 끝에서 메트릭을 기록합니다.
  • 파라미터 로깅: 훈련에 사용된 모든 파라미터를 기록합니다.
  • 아티팩트 로깅: 훈련이 끝나면 가중치 및 구성 파일을 포함한 모델 아티팩트를 기록합니다.

설정 및 필수 조건

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 기본적으로 'runs/mlflow' 디렉토리에 모든 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 공식 문서를 참조하십시오.

FAQ

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

MLflow와 Ultralytics YOLO를 사용하여 어떤 메트릭과 파라미터를 기록할 수 있습니까?

MLflow를 사용하는 Ultralytics YOLO는 학습 과정 전반에 걸쳐 다양한 메트릭, 파라미터 및 아티팩트 로깅을 지원합니다.

  • 지표 로깅: 각 epoch 종료 시점과 훈련 완료 시점에 지표를 추적합니다.
  • 파라미터 로깅: 훈련 과정에서 사용된 모든 파라미터를 기록합니다.
  • Artifacts 로깅: 훈련 후 가중치 및 구성 파일과 같은 모델 artifacts를 저장합니다.

자세한 내용은 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와 통합하면 어떤 이점이 있습니까?

Ultralytics YOLO와 MLflow를 통합하면 머신러닝 실험 관리에 여러 가지 이점이 있습니다.

  • 향상된 실험 추적: 다양한 실행 및 결과를 쉽게 추적하고 비교할 수 있습니다.
  • 향상된 모델 재현성: 모든 파라미터와 artifacts를 로깅하여 실험을 재현할 수 있도록 보장합니다.
  • 성능 모니터링: 시간 경과에 따른 성능 지표를 시각화하여 모델 개선을 위한 데이터 기반 의사 결정을 내릴 수 있습니다.
  • 간소화된 워크플로: 수동 추적보다는 모델 개발에 더 집중할 수 있도록 로깅 프로세스를 자동화합니다.
  • Collaborative Development: 더 나은 협업과 지식 공유를 위해 팀원과 실험 결과를 공유하세요.

Ultralytics YOLO에서 MLflow를 설정하고 활용하는 방법에 대한 자세한 내용은 Ultralytics YOLO용 MLflow 통합 문서를 참조하십시오.



📅 1년 전에 생성됨 ✏️ 4개월 전에 업데이트됨

댓글