Yolo 비전 선전
선전
지금 참여하기
용어집

콜백

머신 러닝에서 콜백의 필수적인 역할을 살펴보세요. 정확성, 유연성 및 효율성을 향상시키기 위해 모델 훈련을 모니터링, 제어 및 자동화하는 도구입니다.

머신 러닝(ML)에서 콜백은 컴퓨팅 프로세스의 특정 단계에서 자동으로 실행되도록 설계된 컴퓨팅 프로세스의 특정 단계에서 자동으로 실행되도록 설계된 다목적 함수 또는 코드 블록입니다. 내에서 신경망(NN) 훈련의 맥락에서, 콜백은 훈련 수명 주기와 상호 작용하는 "후크" 역할을 하며 훈련 수명 주기와 상호 작용하여 메트릭 로깅과 같은 작업을 수행합니다, 중간 결과 저장 또는 제어 매개변수 조정 등의 작업을 수행합니다. 이러한 보조 작업을 메인 트레이닝 루프에서 분리함으로써 트레이닝 루프에서 이러한 보조 작업을 분리함으로써 개발자는 핵심 알고리즘을 수정하지 않고도 모듈식, 가독성, 고도로 사용자 정의 가능한 워크플로를 알고리즘을 수정하지 않고도

콜백의 작동 방식

일반적인 학습 프로세스는 세트에 대해 데이터 세트를 반복합니다. 패스 횟수 동안 데이터 세트를 반복합니다. 이 주기 동안 시스템은 예측을 위한 포워드 패스를 수행하고 역전파를 수행하여 모델 가중치를 업데이트합니다. 콜백은 이 루프 내에서 미리 정의된 "훈련 시작, 배치 종료 또는 에포크 완료와 같이 이 루프 내에서 미리 정의된 '이벤트'에 개입합니다.

같은 프레임워크의 트레이너 객체는 이러한 이벤트를 관리합니다. 와 같은 프레임워크의 트레이너 객체가 이러한 이벤트를 관리합니다. 특정 이벤트가 발생하면 트레이너는 등록된 모든 콜백 함수를 실행하여 모델을 현재 상태로 전달합니다. 이 메커니즘은 최신 실시간 관찰 및 자동화된 개입을 가능하게 하는 실시간 관찰 및 자동화된 개입을 가능하게 합니다.

AI의 일반적인 애플리케이션

콜백은 성능과 리소스 사용을 최적화하는 데 필수적입니다. 딥 러닝(DL).

  • 조기 중지: 가장 중요한 애플리케이션 중 하나는 애플리케이션 중 하나는 과적합을 방지하는 것입니다. 조기 콜백을 중지하면 오류율을 모니터링합니다. 모델의 성능이 일정 기간 동안 정체되거나 성능이 저하되면 콜백이 즉시 훈련을 중단하여 시간 및 클라우드 컴퓨팅 비용을 절약할 수 있습니다.
  • 동적 학습 속도 스케줄링: 최적화 알고리즘의 단계 크기를 조정하는 것은 최적화 알고리즘의 단계 크기를 조정하는 것은 컨버전스. 콜백은 정체기가 감지될 때 학습 속도를 줄여 모델이 보다 최적의 솔루션으로 정착할 수 있도록 최적의 솔루션에 도달할 수 있습니다.
  • 모델 체크포인트: 모델의 최신 버전이 유지되도록 하기 위해 체크포인트 콜백은 은 다음과 같은 주요 메트릭이 변경될 때마다 시스템 상태를 저장합니다. 평균 평균 정밀도(mAP), 개선될 때마다 시스템 상태를 저장합니다. 이는 다음과 같이 대규모 데이터 세트에 대한 긴 트레이닝 세션에 필수적입니다. ImageNet 또는 COCO.
  • 실험 로깅: 다음과 같은 시각화 도구와 통합 TensorBoard, ClearML또는 MLflow와 같은 시각화 도구와의 통합은 콜백을 통해 처리되는 경우가 많습니다. 이러한 도구는 손실 곡선, 시스템 하드웨어 사용량, 나중에 분석할 수 있는 샘플 예측을 기록합니다.

사용자 지정 콜백 구현하기

그리고 ultralytics 라이브러리는 다음과 같은 모델에 사용자 정의 콜백을 첨부하기 위한 간단한 API를 제공합니다. YOLO11. 이를 통해 사용자는 다음과 같은 특정 로직을 주입할 수 있습니다. 상태 업데이트 인쇄 또는 외부 API와의 상호 작용과 같은 특정 로직을 트레이닝 파이프라인에 직접 주입할 수 있습니다.

다음 예는 모든 교육이 끝날 때마다 확인 메시지를 인쇄하는 간단한 콜백을 추가하는 방법을 보여줍니다. 교육 에포크:

from ultralytics import YOLO


def on_train_epoch_end(trainer):
    """Callback function to print the current epoch number after it finishes."""
    print(f"Custom Callback: Epoch {trainer.epoch + 1} completed successfully.")


# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Register the custom callback for the 'on_train_epoch_end' event
model.add_callback("on_train_epoch_end", on_train_epoch_end)

# Train the model with the registered callback
model.train(data="coco8.yaml", epochs=2)

관련 개념과의 차이점

콜백을 효과적으로 사용하려면 소프트웨어 엔지니어링 및 데이터 과학의 유사한 용어와 구분하는 것이 도움이 됩니다. 과학의 유사 용어와 구별하는 것이 도움이 됩니다.

  • 후크: "콜백"과 "후크"는 종종 같은 의미로 사용되지만, 일반적으로 후크는 코드에서 외부 함수를 붙일 수 있는 위치(중단점)를 의미하며 외부 함수를 붙일 수 있는 코드의 위치(인터셉션 지점)를 의미합니다. 콜백은 사용자가 제공한 특정 함수가 해당 훅에서 실행되도록 사용자가 제공한 것입니다.
  • 하이퍼파라미터 튜닝: 콜백은 학습 속도 스케줄러 또는 다음과 같은 라이브러리와의 통합을 통해 튜닝을 용이하게 하지만(예: 학습 속도 스케줄러 또는 레이 튠)을 통해 튜닝을 용이하게 하지만, 튜닝 프로세스 자체는 아닙니다. 튜닝에는 최적의 구성 값을 찾는 작업이 포함되지만 콜백은 변경 사항을 적용하거나 변경 사항을 적용하거나 진행 상황을 모니터링하는 메커니즘입니다.
  • 데이터 증강: 증강은 입력 데이터가 네트워크에 도달하기 전에 수정합니다. 일부 고급 파이프라인에서는 콜백을 사용하여 증강 강도를 동적으로 조정(예: 모자이크 확률의 YOLOv5), 표준 증강은 일반적으로 학습이 아닌 데이터 로딩 파이프라인의 일부입니다.

실제 혜택

콜백을 사용하면 보다 강력하고 효율적인 AI 에이전트 및 애플리케이션으로 직결됩니다. 예를 들어 자율 주행 차량의 경우, 모델을 학습하려면 방대한 양의 센서 데이터를 처리해야 합니다. 콜백을 사용하면 엔지니어는 수동 모니터링 없이도 어려운 엣지 사례에서 가장 잘 작동하는 모델을 자동으로 스냅샷할 수 있습니다. 마찬가지로 의료 이미지 분석에서 콜백은 모델이 학습이 아닌 환자 데이터를 기억하기 시작하면(과적합) 경고 또는 광범위한 로깅을 트리거합니다. 일반화 가능한 기능으로 임상 배포에 대한 높은 신뢰성을 보장합니다.

콜백을 활용하면 다음과 같은 프레임워크를 사용하는 개발자는 PyTorch 또는 TensorFlow 은 시간을 절약하고 시간을 절약하고, 오류를 줄이며, 컴퓨터 비전(CV) 솔루션의 컴퓨터 비전(CV) 솔루션의 성능을 극대화할 수 있습니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기