YOLO26 학습 향상: Comet으로 로깅 프로세스 간소화#
파라미터, 메트릭, 이미지 예측, 모델 체크포인트와 같은 주요 학습 세부 정보를 로깅하는 것은 머신 러닝에서 필수적입니다. 이를 통해 프로젝트의 투명성을 유지하고, 진행 상황을 측정 가능하게 하며, 결과를 재현할 수 있습니다.
Watch: How to Use Comet for Ultralytics YOLO Model Training Logs and Metrics 🚀
Ultralytics YOLO26은 Comet(이전 명칭 Comet ML)과 원활하게 통합되어 YOLO26 객체 탐지 모델의 학습 프로세스 전반을 효율적으로 캡처하고 최적화합니다. 이 가이드에서는 설치 프로세스, Comet 설정, 실시간 인사이트, 사용자 지정 로깅 및 오프라인 사용을 다루어 YOLO26 학습 과정을 철저히 문서화하고 탁월한 결과를 얻을 수 있도록 지원합니다.
Comet#
Comet은 머신 러닝 모델과 실험을 추적, 비교, 설명 및 최적화하기 위한 플랫폼입니다. 모델 학습 중에 메트릭, 파라미터, 미디어 등을 로깅하고 시각적으로 보기 좋은 웹 인터페이스를 통해 실험을 모니터링할 수 있습니다. Comet은 데이터 과학자가 더 빠르게 반복 작업을 수행하도록 지원하고, 투명성과 재현성을 높이며, 프로덕션 모델 개발에 기여합니다.
YOLO26과 Comet의 강력한 기능 활용#
Ultralytics YOLO26을 Comet과 결합하면 다양한 이점을 활용할 수 있습니다. 여기에는 간소화된 실험 관리, 신속한 조정을 위한 실시간 인사이트, 유연하고 맞춤화된 로깅 옵션, 인터넷 액세스가 제한된 경우 실험을 오프라인으로 로깅하는 기능이 포함됩니다. 이 통합을 통해 데이터 기반 의사 결정을 내리고, 성능 메트릭을 분석하며, 탁월한 결과를 달성할 수 있습니다.
설치#
필요한 패키지를 설치하려면 다음을 실행합니다:
# Install YOLO26 and Comet
pip install ultralytics comet_mlComet 구성#
필요한 패키지를 설치한 후에는 가입하고 Comet API Key를 발급받아 구성해야 합니다.
# Set your Comet API Key
export COMET_API_KEY=YOUR_API_KEY그런 다음 Comet으로 인증합니다. Ultralytics 콜백은 실험을 생성하고 YOLO의 project 학습 인자를 Comet 프로젝트 이름으로 사용합니다.
import comet_ml
comet_ml.login()Google Colab 노트북을 사용하는 경우 위 코드를 실행하면 초기화를 위해 API 키를 입력하라는 메시지가 표시됩니다.
사용법#
사용 지침을 살펴보기 전에 Ultralytics에서 제공하는 YOLO26 모델을 확인하시기 바랍니다. 이를 통해 프로젝트 요구 사항에 가장 적합한 모델을 선택할 수 있습니다.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt")
# Train the model
results = model.train(
data="coco8.yaml",
project="comet-example-yolo26-coco128",
batch=32,
save_period=1,
save_json=True,
epochs=3,
)학습 코드를 실행하면 Comet은 실행을 자동으로 추적하기 위해 Comet 워크스페이스에 실험을 생성합니다. 그런 다음 YOLO26 모델 학습 프로세스의 상세 로깅을 확인할 수 있는 링크가 제공됩니다.
Comet은 추가 구성 없이 다음 데이터를 자동으로 로깅합니다. mAP 및 loss와 같은 메트릭, 하이퍼파라미터, 모델 체크포인트, 대화형 혼동 행렬, 이미지 바운딩 박스 예측입니다.
Comet 시각화를 통한 모델 성능 이해#
YOLO26 모델이 학습을 시작하면 Comet 대시보드에서 확인할 수 있는 내용을 살펴보겠습니다. 대시보드는 다양한 자동 로깅 정보를 시각 자료와 통계로 제공하는 핵심 공간입니다. 다음은 주요 기능에 대한 간략한 안내입니다.
실험 패널
Comet 대시보드의 실험 패널 섹션에서는 다양한 실행과 해당 메트릭을 구성하고 표시합니다. 여기에는 세그먼트 마스크 loss, 클래스 loss, 정밀도 및 평균 정밀도가 포함됩니다.
메트릭
메트릭 섹션에서는 메트릭을 표 형식으로도 검토할 수 있으며, 이 내용은 여기에 표시된 것처럼 전용 창에 표시됩니다.
대화형 혼동 행렬
혼동 행렬 탭에서 확인할 수 있는 혼동 행렬은 모델의 분류 정확도를 대화형으로 평가할 수 있는 방법을 제공합니다. 올바른 예측과 잘못된 예측을 자세히 보여 주므로 모델의 강점과 약점을 파악할 수 있습니다.
시스템 메트릭
Comet은 학습 프로세스의 병목 현상을 식별하는 데 도움이 되도록 시스템 메트릭을 로깅합니다. 여기에는 GPU 사용률, GPU 메모리 사용량, CPU 사용률 및 RAM 사용량과 같은 메트릭이 포함됩니다. 이러한 메트릭은 모델 학습 중 리소스 사용 효율성을 모니터링하는 데 필수적입니다.
Comet 로깅 사용자 지정#
Comet은 환경 변수를 설정하여 로깅 동작을 사용자 지정할 수 있는 유연성을 제공합니다. 이러한 구성을 통해 특정 요구 사항과 선호도에 맞게 Comet을 조정할 수 있습니다. Ultralytics 콜백은 다음 환경 변수를 읽습니다(학습을 시작하기 전에 설정하십시오).
| 환경 변수 | 기본값 | 설명 |
|---|---|---|
COMET_START_ONLINE | 1 | 온라인(1) 또는 오프라인(0) 모드로 실험을 실행합니다. |
COMET_PROJECT_NAME | args.project | Comet 워크스페이스 프로젝트입니다. 설정되지 않은 경우 YOLO의 project 학습 인자를 사용합니다. |
COMET_MODEL_NAME | Ultralytics | 로깅된 모델 아티팩트에 등록되는 이름입니다. |
COMET_MAX_IMAGE_PREDICTIONS | 100 | 실행당 로깅할 검증 이미지 예측의 총 개수입니다. |
COMET_EVAL_BATCH_LOGGING_INTERVAL | 1 | N번째 검증 배치마다 이미지 예측을 로깅합니다. |
COMET_EVAL_LOG_IMAGE_PREDICTIONS | true | 이미지 예측 로깅을 켜거나(true) 끕니다(false). |
COMET_EVAL_LOG_CONFUSION_MATRIX | false | 각 검증 epoch마다 혼동 행렬을 로깅합니다. 학습이 끝나면 최종 행렬은 항상 로깅됩니다. |
COMET_MAX_CONFIDENCE_SCORE | 100.0 | 로깅하기 전에 탐지 confidence score에 적용되는 배율입니다(Comet UI는 백분율 스케일을 사용합니다). |
COMET_MODE (deprecated) | online | COMET_START_ONLINE의 레거시 별칭입니다("online" ↔ 1, "offline" ↔ 0). 사용 중단 경고가 표시됩니다. |
불리언 토글(COMET_EVAL_LOG_IMAGE_PREDICTIONS 및 COMET_EVAL_LOG_CONFUSION_MATRIX)의 경우 1, true, yes, on, y 및 t 값은 True로 구문 분석됩니다(대소문자를 구분하지 않음). 그 외의 값은 False입니다.
이미지 예측 로깅#
실험 중 Comet이 로깅하는 이미지 예측 수를 제어할 수 있습니다. 기본적으로 Comet은 검증 세트에서 이미지 예측 100개를 로깅합니다. 그러나 요구 사항에 맞게 이 수를 변경할 수 있습니다. 예를 들어 이미지 예측 200개를 로깅하려면 다음 코드를 사용합니다.
import os
os.environ["COMET_MAX_IMAGE_PREDICTIONS"] = "200"이미지 예측 로깅을 완전히 비활성화하려면(예: 느린 연결에서 업로드 용량을 줄이려면) COMET_EVAL_LOG_IMAGE_PREDICTIONS을 "false"로 설정합니다.
import os
os.environ["COMET_EVAL_LOG_IMAGE_PREDICTIONS"] = "false"배치 로깅 간격#
Comet에서는 이미지 예측 배치를 얼마나 자주 로깅할지 지정할 수 있습니다. COMET_EVAL_BATCH_LOGGING_INTERVAL 환경 변수가 이 빈도를 제어합니다. 기본 설정은 1이며, 모든 검증 배치의 예측을 로깅합니다. 이 값을 조정하여 다른 간격으로 예측을 로깅할 수 있습니다. 예를 들어 4로 설정하면 네 번째 배치마다 예측을 로깅합니다.
import os
os.environ["COMET_EVAL_BATCH_LOGGING_INTERVAL"] = "4"혼동 행렬 로깅 비활성화#
경우에 따라 각 epoch 후에 검증 세트의 혼동 행렬을 로깅하지 않으려 할 수 있습니다. COMET_EVAL_LOG_CONFUSION_MATRIX 환경 변수를 "false"로 설정하면 이 기능을 비활성화할 수 있습니다. 혼동 행렬은 학습이 완료된 후 한 번만 로깅됩니다.
import os
os.environ["COMET_EVAL_LOG_CONFUSION_MATRIX"] = "false"온라인 및 오프라인 모드#
기본적으로 Comet은 온라인 모드로 실행되며 실험 데이터를 Comet 서버로 스트리밍합니다. 인터넷 액세스 없이 학습해야 하는 경우 학습을 시작하기 전에 COMET_START_ONLINE=0을 설정합니다. 실험 데이터는 로컬에 저장되며 나중에 comet upload CLI를 사용하여 업로드할 수 있습니다.
import os
os.environ["COMET_START_ONLINE"] = "0" # 1 (default) = online, 0 = offline이전 버전에서는 이 용도로 COMET_MODE="offline"을 사용했습니다. 이전 버전과의 호환성을 위해 이 변수는 계속 적용되지만 사용 중단 경고가 표시됩니다. 앞으로는 COMET_START_ONLINE을 사용하십시오.
프로젝트 이름#
기본적으로 Comet 콜백은 YOLO의 project 학습 인자를 Comet에 전달합니다(인자가 설정되지 않은 경우 None을 전달하며, 이 경우 Comet은 워크스페이스 기본값을 사용합니다). YOLO 학습 인자와 관계없이 모든 실험을 특정 Comet 워크스페이스 프로젝트로 보내려면 COMET_PROJECT_NAME로 재정의합니다.
import os
os.environ["COMET_PROJECT_NAME"] = "my-yolo26-experiments"모델 아티팩트 이름#
COMET_MODEL_NAME은 Comet이 로깅된 모델 아티팩트에 등록하는 이름을 설정합니다(기본값은 Ultralytics). 공유 워크스페이스에서 모델 변형을 구분하려면 이를 사용합니다.
import os
os.environ["COMET_MODEL_NAME"] = "yolo26n-coco128"Confidence Score 스케일링#
탐지 confidence score는 [0, 1] 범위로 출력되지만, Comet UI는 기본적으로 백분율 스케일로 표시합니다. 콜백은 로깅하기 전에 각 score에 COMET_MAX_CONFIDENCE_SCORE을 곱합니다(기본값은 100.0). 원시 확률 또는 다른 스케일을 선호하는 경우 이를 조정합니다.
import os
os.environ["COMET_MAX_CONFIDENCE_SCORE"] = "1.0" # log raw [0, 1] scores요약#
이 가이드에서는 Comet을 Ultralytics의 YOLO26과 통합하는 방법을 살펴보았습니다. 설치부터 사용자 지정까지 실험 관리를 간소화하고, 실시간 인사이트를 확보하며, 프로젝트 요구 사항에 맞게 로깅을 조정하는 방법을 학습했습니다.
Comet 공식 YOLOv8 통합 문서를 확인해 보십시오. 이 문서는 YOLO26 프로젝트에도 적용됩니다.
또한 특히 이미지 세그멘테이션 작업에서 YOLO26의 실제 적용 사례를 더 자세히 알아보고 싶다면, Comet으로 YOLO26 파인튜닝에 대한 이 상세 가이드에서 모델 성능을 향상시키는 데 유용한 인사이트와 단계별 지침을 확인할 수 있습니다.
또한 Ultralytics의 다른 유용한 통합을 살펴보려면 다양한 리소스와 정보를 제공하는 통합 가이드 페이지를 확인해 보십시오.
FAQ#
Comet을 Ultralytics YOLO26과 통합하려면 다음 단계를 따르십시오.
-
필요한 패키지 설치:
pip install ultralytics comet_ml -
Comet API Key 설정:
export COMET_API_KEY=YOUR_API_KEY -
Python 코드에서 Comet 인증:
import comet_ml comet_ml.login() -
YOLO26 모델 학습 및 메트릭 로깅:
from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model.train( data="coco8.yaml", project="comet-example-yolo26-coco128", batch=32, save_period=1, save_json=True, epochs=3, )
자세한 지침은 Comet 구성 섹션을 참조하십시오.
-
Ultralytics YOLO26을 Comet과 통합하면 다음을 수행할 수 있습니다.
- 실시간 인사이트 모니터링: 학습 결과에 대한 즉각적인 피드백을 받아 신속하게 조정할 수 있습니다.
- 다양한 메트릭 로깅: mAP, loss, 하이퍼파라미터 및 모델 체크포인트와 같은 주요 메트릭을 자동으로 캡처합니다.
- 오프라인에서 실험 추적: 인터넷 액세스를 사용할 수 없을 때 학습 실행을 로컬에 로깅합니다.
- 다양한 학습 실행 비교: 대화형 Comet 대시보드를 사용하여 여러 실험을 분석하고 비교합니다.
이러한 기능을 활용하면 더 나은 성능과 재현성을 위해 머신 러닝 워크플로를 최적화할 수 있습니다. 자세한 내용은 Comet 통합 가이드를 참조하십시오.
Comet에서는 환경 변수를 사용하여 로깅 동작을 광범위하게 사용자 지정할 수 있습니다.
-
로깅되는 이미지 예측 수 변경:
import os os.environ["COMET_MAX_IMAGE_PREDICTIONS"] = "200" -
배치 로깅 간격 조정:
import os os.environ["COMET_EVAL_BATCH_LOGGING_INTERVAL"] = "4" -
혼동 행렬 로깅 비활성화:
import os os.environ["COMET_EVAL_LOG_CONFUSION_MATRIX"] = "false" -
Comet 프로젝트 이름 설정:
import os os.environ["COMET_PROJECT_NAME"] = "my-yolo26-experiments" -
로깅된 모델 아티팩트 이름 설정:
import os os.environ["COMET_MODEL_NAME"] = "yolo26n-coco128"
이미지 예측 토글, confidence score 스케일링, 온라인/오프라인 모드를 포함한 전체 목록은 Comet 로깅 사용자 지정 섹션을 참조하십시오.
-
YOLO26 모델이 학습을 시작하면 Comet 대시보드에서 다양한 메트릭과 시각화에 액세스할 수 있습니다. 주요 기능은 다음과 같습니다.
- 실험 패널: 세그먼트 마스크 loss, 클래스 loss 및 평균 정밀도를 비롯한 다양한 실행과 해당 메트릭을 확인합니다.
- 메트릭: 상세한 분석을 위해 메트릭을 표 형식으로 검토합니다.
- 대화형 혼동 행렬: 대화형 혼동 행렬을 사용하여 분류 정확도를 평가합니다.
- 시스템 메트릭: GPU 및 CPU 사용률, 메모리 사용량 및 기타 시스템 메트릭을 모니터링합니다.
이러한 기능에 대한 자세한 개요는 Comet 시각화를 통한 모델 성능 이해 섹션을 참조하십시오.
예. 로컬에 로깅하려면 학습을 시작하기 전에
COMET_START_ONLINE=0을 설정합니다.import os os.environ["COMET_START_ONLINE"] = "0"실험 데이터는 디스크에 저장되며 연결이 가능해지면
comet uploadCLI를 사용하여 나중에 Comet에 업로드할 수 있습니다. 이전COMET_MODE="offline"변수도 계속 작동하지만 사용 중단 경고가 표시됩니다. 자세한 내용은 온라인 및 오프라인 모드 섹션을 참조하십시오.