콜백이 Ultralytics 훈련을 어떻게 최적화하는지 알아보세요. 조기 종료, 체크포인트 저장, 맞춤형 로깅을 구현하여 AI 워크플로우를 향상시키는 방법을 배워보세요.
소프트웨어 공학 및 인공지능(AI)콜백은 실행 가능한 코드 조각으로, 다른 코드에 인자로 전달되며 주어진 시점에 해당 인자를 실행(콜백)할 것으로 기대됩니다. 딥 러닝(DL) 개발자가 모델의 동작을 맞춤 설정할 수 있게 하는 핵심 도구입니다. 모델 훈련 루프의 동작을 핵심 훈련 코드 자체를 수정하지 않고도 맞춤화할 수 있게 해주는 필수 도구입니다. 이들은 훈련 과정의 다양한 단계(예: 에포크 시작 또는 종료)에서 특정 작업을 수행하는 자동화된 트리거 역할을 합니다. 에포크, 훈련 배치, 또는 전체 훈련 세션의 시작 또는 종료 시점과 같은 훈련 과정의 다양한 단계에서 특정 작업을 수행하는 자동화된 트리거 역할을 합니다.
복잡한 신경망 훈련 훈련에는 몇 시간에서 며칠이 소요될 수 있습니다. 콜백 없이 훈련 과정은 완료될 때까지 실행되는 '블랙박스'와 같아 수동 감독이 필요한 경우가 많습니다. 콜백은 관측 가능성과 제어 기능을 도입하여 시스템이 실시간 성능 지표를 기반으로 자체 조절할 수 있게 합니다.
PyTorch와 같은 고수준 라이브러리를 사용할 때 PyTorch 이나 TensorFlow를 사용할 때, 콜백은 최적화 알고리즘에 로직을 주입하는 방법을 제공합니다. 예를 들어, 모델이 잘 학습하고 있다면 콜백이 현재 상태를 저장할 수 있습니다; 학습이 멈추면 콜백이 리소스를 절약하기 위해 프로세스를 중단할 수 있습니다. 이는 머신 러닝(ML) 워크플로우를 보다 효율적이고 견고하게 만듭니다.
콜백은 다용도로 활용 가능하며 모델 모니터링 과정에서 다양한 작업에 사용될 수 있습니다. 모델 모니터링 및 최적화 과정에서 다양한 작업에 활용될 수 있습니다.
Ultralytics 강력한 콜백 시스템을 지원하여 사용자가 모델 훈련 중 발생하는 이벤트에 연결할 수 있도록 합니다. YOLO26과 같은 모델 훈련 중 발생하는 이벤트에 연결할 수 있습니다. 이는 특히 Ultralytics 에서 사용자 지정 로깅이나 제어 로직이 필요한 경우에 특히 유용합니다.
아래는 Python API를 사용하여 훈련 에포크마다 메시지를 출력하는 사용자 정의 콜백을 정의하고 등록하는 간결한 예시입니다. Python :
from ultralytics import YOLO
# Define a custom callback function
def on_train_epoch_end(trainer):
"""Callback function to execute at the end of each training epoch."""
print(f"Epoch {trainer.epoch + 1} complete. Current Fitness: {trainer.fitness}")
# Load the YOLO26 model (latest generation)
model = YOLO("yolo26n.pt")
# Register the custom callback to the model
model.add_callback("on_train_epoch_end", on_train_epoch_end)
# Train the model with the callback active
model.train(data="coco8.yaml", epochs=3)
비록 관련이 있지만, 콜백과 훅(hook)구분하는 것이 유용합니다. PyTorch 같은 프레임워크에서 훅은 일반적으로 특정 텐서에 연결되는 저수준 함수입니다. tensor 연산이나 신경망 레이어에 부착되어 전파(forward pass) 또는 역전파(backward pass) 과정에서 기울기 및 출력을 검사하거나 수정합니다. 반면 콜백은 일반적으로 훈련 루프에 연결된 상위 수준의 추상화입니다. 훈련 루프 이벤트(시작, 종료, 배치 처리)에 연결된 고수준 추상화입니다.
훈련 워크플로우 최적화 방법에 대한 이해를 심화하고자 하는 분들을 위해, 하이퍼파라미터 튜닝 은 논리적인 다음 단계입니다. 또한, 기반이 되는 컴퓨터 비전(CV) 작업들, 예를 들어 물체 탐지 객체 탐지 및 인스턴스 분할 콜백을 통한 정밀한 훈련 제어의 필요성에 대한 맥락을 제공할 것입니다. 이러한 프로세스의 기업급 관리를 위해 Ultralytics 플랫폼은 Ultralytics 은 이러한 콜백 기반 동작의 상당 부분을 자동화하는 통합 솔루션을 제공합니다.