Ultralytics YOLO27:
통합

ClearML을 사용해 Ultralytics YOLOv5를 원격으로 학습하고 모니터링하기

원활한 ML 통합, 실험 추적 등을 제공하는 ClearML과의 파트너십으로 향상된 Ultralytics YOLOv5 경험을 살펴보세요.

NUNuvola Ladi6 min read
ClearML로 YOLOv5 학습 및 모니터링하기

Ultralytics는 YOLOv5와 같은 훌륭한 오픈 소스 도구를 모두에게 무료로 제공하기 위한 연구 및 개발 자금을 마련하고자 다른 스타트업과 상업적 파트너십을 맺고 있습니다. 이 글에는 해당 파트너에 대한 제휴 링크가 포함될 수 있습니다.

ClearML은 시간을 절약할 수 있도록 설계된 최신 오픈 소스 도구 상자인 당사의 새로운 파트너입니다.

ClearML은 ML 도입을 가속화한다는 사명 아래, 모든 Software 및 Hardware 제품에 ML을 원활하게 통합할 수 있도록 지원합니다.

이 통합 기능을 사용하면 YOLOv5 모델을 더욱 간편하게 학습하고 ClearML experiment manager를 사용하여 학습 과정을 자동으로 추적할 수 있습니다. ClearML dataset version ID를 데이터 입력으로 쉽게 지정할 수 있으며, 해당 ID가 자동으로 모델 학습에 사용됩니다.

Experiment Tracking을 한 단계 업그레이드하기#

  • experiment manager에서 모든 YOLOv5 학습 실행을 추적합니다.
  • 통합된 ClearML Data Versioning Tool을 사용하여 사용자 지정 학습 데이터의 버전을 관리하고 쉽게 액세스합니다.
  • ClearML Hyperparameter Optimization을 사용하여 최고의 mAP를 얻습니다.
  • ClearML Serving을 사용하면 몇 가지 명령만으로 새로 학습한 YOLOv5 모델을 API로 전환할 수 있습니다.

이러한 도구를 얼마나 사용할지는 사용자가 결정할 수 있습니다. experiment manager만 사용할 수도 있고, 모든 도구를 연결하여 인상적인 파이프라인으로 구성할 수도 있습니다.

설정하기#

ClearML은 실험과 데이터를 추적하기 위해 서버와 통신해야 합니다. 이를 위한 옵션은 두 가지입니다. ClearML Hosted Service에 무료로 가입하거나 자체 서버를 설정할 수 있습니다. 자세한 내용은 ClearML Server deployment docs를 참조하십시오.

서버도 오픈 소스이므로 민감한 데이터를 다루는 경우에도 문제가 되지 않습니다!

  1. clearml Python 패키지를 설치합니다: pip install clearml
  2. 자격 증명을 생성하여 ClearML SDK를 서버에 연결합니다(Settings → Workspace → Create new credentials로 이동). 그런 다음 아래 명령을 실행하고 안내를 따르십시오: clearml-init

이제 시작할 준비가 되었습니다...

ClearML을 사용한 YOLOv5 학습#

ClearML experiment tracking을 활성화하려면 ClearML pip 패키지를 설치하기만 하면 됩니다.

pip install clearml

이렇게 하면 YOLOv5 training script와 통합됩니다. 이제부터 모든 학습 실행이 ClearML experiment manager에 캡처되어 저장됩니다. project_name 또는 task_name을 변경하려면 사용자 지정 logger로 이동하여 변경할 수 있습니다: utils/loggers/clearml/clearml_utils.py

python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt --cache

다음 항목이 캡처됩니다:

  • 소스 코드 + 커밋되지 않은 변경 사항
  • 설치된 패키지
  • (하이퍼)파라미터
  • 모델 파일(--save-period n을 사용하면 n epoch마다 checkpoint를 저장합니다)
  • 콘솔 출력
  • 스칼라(mAP_0.5, mAP_0.5:0.95, precision, recall, losses, learning rates, ...)
  • 머신 세부 정보, 런타임, 생성 날짜 등의 일반 정보
  • label correlogram 및 confusion matrix와 같이 생성된 모든 plot
  • epoch별 bounding box가 표시된 이미지
  • epoch별 Mosaic
  • epoch별 validation 이미지

나쁘지 않습니다! 이제 ClearML UI에서 이 모든 정보를 시각화하여 학습 진행 상황을 한눈에 확인할 수 있습니다. 테이블 보기에 사용자 지정 열(예: mAP_0.5)을 추가하면 성능이 가장 우수한 모델을 쉽게 기준으로 정렬할 수 있습니다. 또는 여러 실험을 선택하여 직접 비교할 수도 있습니다!

이 모든 정보를 활용하면 hyperparameter optimization 및 remote execution과 같은 작업도 수행할 수 있으므로, 방법을 알아보려면 계속 읽어 보십시오!

Dataset Version Management#

일반적으로 데이터를 코드와 별도로 버전 관리하는 것이 좋으며, 최신 버전을 쉽게 가져올 수 있다는 장점도 있습니다. 이 repository는 dataset version ID를 지정할 수 있도록 지원하며, 데이터가 아직 없으면 자동으로 가져옵니다. 또한 이 workflow는 사용된 dataset ID를 task parameters의 일부로 저장하므로, 어떤 실험에 어떤 데이터가 사용되었는지 항상 확실하게 알 수 있습니다!

Dataset 준비하기#

YOLOv5 repository는 데이터 정보가 포함된 YAML 파일을 사용하여 여러 가지 dataset을 지원합니다. 기본적으로 dataset은 repository root folder를 기준으로 ../datasets folder에 다운로드됩니다. 따라서 YAML의 링크 또는 yolov5에서 제공하는 scripts를 사용하여 coco128 dataset을 다운로드하면 다음과 같은 folder structure가 생성됩니다:

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ LICENSE
        |_ README.txt

하지만 원하는 어떤 dataset이든 사용할 수 있습니다. 이 folder structure를 유지하기만 하면 자체 dataset을 사용해도 됩니다.

그다음 ⚠️해당 YAML 파일을 dataset folder의 root에 복사하십시오⚠️. 이러한 YAML 파일에는 ClearML이 dataset을 올바르게 사용하는 데 필요한 정보가 포함되어 있습니다. 물론 직접 만들 수도 있으며, 예제 YAML의 structure를 따르기만 하면 됩니다.

기본적으로 다음 key가 필요합니다: path, train, test, val, nc, names.

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ coco128.yaml # ← HERE!
        |_ LICENSE
        |_ README.txt

Dataset 업로드하기#

이 dataset을 버전이 관리되는 dataset으로 ClearML에 추가하려면 dataset root folder로 이동하여 다음 명령을 실행합니다:

cd coco128

clearml-data sync --project YOLOv5 --name coco128 --folder .

clearml-data sync 명령은 실제로 축약된 명령입니다. 다음 명령을 차례로 실행할 수도 있습니다:

# Optionally add --parent if you want to base
# this version on another dataset version, so no duplicate files are uploaded!

clearml-data create --name coco128 --project YOLOv5

clearml-data add --files .

clearml-data close

ClearML Dataset을 사용하여 학습 실행하기#

이제 ClearML dataset이 있으므로 이를 사용하여 사용자 지정 YOLOv5 모델을 매우 간단하게 학습할 수 있습니다.

python train.py --img 640 --batch 16 --epochs 3 --data clearml:// --weights yolov5s.pt --cache

Hyperparameter Optimization#

이제 실험과 데이터 버전이 준비되었으므로, 이를 기반으로 무엇을 구축할 수 있는지 살펴볼 차례입니다!

코드 정보, 설치된 패키지 및 환경 세부 정보를 사용하면 이제 실험 자체를 완전히 재현할 수 있습니다. 실제로 ClearML에서는 실험을 clone하고 parameter를 변경할 수도 있습니다. 그런 다음 이러한 새 parameter로 자동으로 다시 실행할 수 있으며, 이것이 바로 HPO의 기본적인 동작입니다!

hyperparameter optimization을 로컬에서 실행할 수 있도록 미리 작성된 script를 포함했습니다. 학습 task가 최소 한 번 실행되어 ClearML experiment manager에 등록되어 있는지 확인하십시오. 해당 task를 clone한 다음 hyperparameter를 변경하게 됩니다.

utils/loggers/clearml/hpo.py에 있는 script에서 이 template task의 ID를 입력한 다음 실행해야 합니다. task.execute_locally()을 task.execute()로 변경하면 ClearML queue에 추가하여 remote agent가 대신 작업하도록 할 수 있습니다.

# To use optuna, install it first, otherwise you can change the optimizer to just be RandomSearch
pip install optuna
python utils/loggers/clearml/hpo.py

Remote Execution(고급)#

HPO를 로컬에서 실행하는 것은 매우 편리하지만, 대신 remote machine에서 실험을 실행하려면 어떻게 해야 할까요? 현장에 매우 강력한 GPU machine에 액세스할 수 있거나 cloud GPU를 사용할 예산이 있을 수도 있습니다. 이때 ClearML Agent가 사용됩니다.

agent가 수행할 수 있는 작업을 여기에서 확인하십시오:

요약하면, experiment manager에서 추적하는 모든 실험에는 다른 machine에서 실험을 재현하는 데 충분한 정보(설치된 패키지, 커밋되지 않은 변경 사항 등)가 포함됩니다. 따라서 ClearML agent는 queue에서 들어오는 task를 수신하고, task를 찾으면 환경을 재생성하여 실행하는 동시에 스칼라, plot 등을 experiment manager에 계속 보고합니다.

다음 명령을 실행하기만 하면 모든 machine(cloud VM, 로컬 GPU machine 또는 개인 laptop)을 ClearML agent로 전환할 수 있습니다:

clearml-agent daemon --queue [--docker]

Clone, Edit 및 Enqueue#

agent가 실행 중이므로 이제 작업을 할당할 수 있습니다. HPO 섹션에서 task를 clone하고 hyperparameter를 편집할 수 있다는 점을 기억하시나요? interface에서도 동일한 작업을 수행할 수 있습니다!

🪄 마우스 오른쪽 버튼으로 실험을 클릭하여 clone합니다

🎯 hyperparameter를 원하는 값으로 편집합니다

⏳ 마우스 오른쪽 버튼으로 task를 클릭하여 원하는 queue에 enqueue합니다

Task를 원격으로 실행하기#

이제 위에서 설명한 것처럼 task를 clone하거나, 현재 script에 task.execute_remotely()을 추가하여 표시하기만 하면 됩니다. 그러면 실행 시 queue에 등록되고 agent가 작업을 시작합니다!

YOLOv5 training script를 원격으로 실행하려면 ClearML logger가 인스턴스화된 후 train.py script에 다음 줄을 추가하기만 하면 됩니다:

# ...
# Loggers
data_dict = None
if RANK in {-1, 0}:
    loggers = Loggers(save_dir, weights, opt, hyp, LOGGER)  # loggers instance
    if loggers.clearml:
        loggers.clearml.task.execute_remotely(queue="my_queue")  # <------ ADD THIS LINE

질문이 있으신가요? 커뮤니티에 참여하여 지금 질문을 남겨 보십시오!

Explore solutions

항공 이미지를 위한 컴퓨터 비전

항공 이미지를 위한 컴퓨터 비전

Ultralytics YOLO을 활용하여 드론 및 항공 이미지를 농업, 수산업, 환경 모니터링, 자연 보호, 지리 공간 분석을 위한 실시간 인사이트로 변환합니다.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 항공 모니터링에 비전 AI를 도입하세요. 컴퓨터 비전 솔루션으로 드론, 항공우주 워크플로, 환경 보전 및 지리 공간 산업을 지원합니다.
자세히 알아보기

Ultralytics YOLO 모델로 모든 사이트를 보호하세요. 비전 AI는 경계 모니터링, 위협 탐지, 번호판 인식 및 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 컴퓨터 비전

로보틱스 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 기계의 성능을 구현하세요. 로보틱스의 Vision AI는 자율 주행, 인식, 객체 추적 및 실시간 제어를 지원합니다.
자세히 알아보기
물류 컴퓨터 비전

물류 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 효율화하세요. Vision AI는 패키지 검사, 분류, 차량 추적 및 창고의 실시간 안전 모니터링을 지원합니다.
자세히 알아보기
소매 컴퓨터 비전

소매 컴퓨터 비전

Ultralytics YOLO 모델로 소매업을 새롭게 혁신하세요. Vision AI는 재고 추적, 선반 모니터링, 대기열 관리 및 더 스마트한 고객 인사이트를 지원합니다.
자세히 알아보기
헬스케어 분야의 컴퓨터 비전

헬스케어 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 헬스케어 솔루션을 구축하십시오. 헬스케어 분야의 Vision AI는 더 빠른 의료 영상 처리, 더욱 스마트한 진단, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조를 최적화하십시오. Vision AI는 품질 관리, 결함 탐지, PPE 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 산업의 컴퓨터 비전

자동차 산업의 컴퓨터 비전

Ultralytics YOLO 모델을 활용해 자동차 산업에 컴퓨터 비전을 적용합니다. 비전 AI는 도로 안전, 운전자 보조, 차량 자동화를 향상해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업의 컴퓨터 비전

농업의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입합니다. 작물 모니터링, 가축 추적, 정밀 농업을 강화해 더 높은 수확량을 스마트하게 실현합니다.
자세히 알아보기
항공 이미지를 위한 컴퓨터 비전

항공 이미지를 위한 컴퓨터 비전

Ultralytics YOLO을 활용하여 드론 및 항공 이미지를 농업, 수산업, 환경 모니터링, 자연 보호, 지리 공간 분석을 위한 실시간 인사이트로 변환합니다.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 항공 모니터링에 비전 AI를 도입하세요. 컴퓨터 비전 솔루션으로 드론, 항공우주 워크플로, 환경 보전 및 지리 공간 산업을 지원합니다.
자세히 알아보기

Ultralytics YOLO 모델로 모든 사이트를 보호하세요. 비전 AI는 경계 모니터링, 위협 탐지, 번호판 인식 및 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 컴퓨터 비전

로보틱스 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 기계의 성능을 구현하세요. 로보틱스의 Vision AI는 자율 주행, 인식, 객체 추적 및 실시간 제어를 지원합니다.
자세히 알아보기
물류 컴퓨터 비전

물류 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 효율화하세요. Vision AI는 패키지 검사, 분류, 차량 추적 및 창고의 실시간 안전 모니터링을 지원합니다.
자세히 알아보기
소매 컴퓨터 비전

소매 컴퓨터 비전

Ultralytics YOLO 모델로 소매업을 새롭게 혁신하세요. Vision AI는 재고 추적, 선반 모니터링, 대기열 관리 및 더 스마트한 고객 인사이트를 지원합니다.
자세히 알아보기
헬스케어 분야의 컴퓨터 비전

헬스케어 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 헬스케어 솔루션을 구축하십시오. 헬스케어 분야의 Vision AI는 더 빠른 의료 영상 처리, 더욱 스마트한 진단, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조를 최적화하십시오. Vision AI는 품질 관리, 결함 탐지, PPE 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 산업의 컴퓨터 비전

자동차 산업의 컴퓨터 비전

Ultralytics YOLO 모델을 활용해 자동차 산업에 컴퓨터 비전을 적용합니다. 비전 AI는 도로 안전, 운전자 보조, 차량 자동화를 향상해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업의 컴퓨터 비전

농업의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입합니다. 작물 모니터링, 가축 추적, 정밀 농업을 강화해 더 높은 수확량을 스마트하게 실현합니다.
자세히 알아보기
항공 이미지를 위한 컴퓨터 비전

항공 이미지를 위한 컴퓨터 비전

Ultralytics YOLO을 활용하여 드론 및 항공 이미지를 농업, 수산업, 환경 모니터링, 자연 보호, 지리 공간 분석을 위한 실시간 인사이트로 변환합니다.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 항공 모니터링에 비전 AI를 도입하세요. 컴퓨터 비전 솔루션으로 드론, 항공우주 워크플로, 환경 보전 및 지리 공간 산업을 지원합니다.
자세히 알아보기

Ultralytics YOLO 모델로 모든 사이트를 보호하세요. 비전 AI는 경계 모니터링, 위협 탐지, 번호판 인식 및 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 컴퓨터 비전

로보틱스 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 기계의 성능을 구현하세요. 로보틱스의 Vision AI는 자율 주행, 인식, 객체 추적 및 실시간 제어를 지원합니다.
자세히 알아보기
물류 컴퓨터 비전

물류 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 효율화하세요. Vision AI는 패키지 검사, 분류, 차량 추적 및 창고의 실시간 안전 모니터링을 지원합니다.
자세히 알아보기
소매 컴퓨터 비전

소매 컴퓨터 비전

Ultralytics YOLO 모델로 소매업을 새롭게 혁신하세요. Vision AI는 재고 추적, 선반 모니터링, 대기열 관리 및 더 스마트한 고객 인사이트를 지원합니다.
자세히 알아보기
헬스케어 분야의 컴퓨터 비전

헬스케어 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 헬스케어 솔루션을 구축하십시오. 헬스케어 분야의 Vision AI는 더 빠른 의료 영상 처리, 더욱 스마트한 진단, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조를 최적화하십시오. Vision AI는 품질 관리, 결함 탐지, PPE 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 산업의 컴퓨터 비전

자동차 산업의 컴퓨터 비전

Ultralytics YOLO 모델을 활용해 자동차 산업에 컴퓨터 비전을 적용합니다. 비전 AI는 도로 안전, 운전자 보조, 차량 자동화를 향상해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업의 컴퓨터 비전

농업의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입합니다. 작물 모니터링, 가축 추적, 정밀 농업을 강화해 더 높은 수확량을 스마트하게 실현합니다.
자세히 알아보기

AI의 미래를 함께 만들어가세요!

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