용어집

콜백

정확성, 유연성, 효율성을 개선하기 위해 모델 학습을 모니터링, 제어, 자동화하는 도구인 머신러닝에서 콜백의 필수적인 역할에 대해 알아보세요.

머신 러닝에서 콜백은 모델의 학습 과정 중 특정 시점에 실행되는 자동화된 스크립트 또는 함수입니다. 콜백은 훈련 프레임워크가 에포크의 시작 또는 종료, 훈련 배치 또는 전체 훈련 세션과 같이 미리 정의된 단계에서 따르는 일련의 지침이라고 생각하면 됩니다. 콜백은 개발자가 모델이나 트레이닝 루프의 핵심 코드를 변경하지 않고도 트레이닝의 다양한 측면을 모니터링, 제어 및 자동화할 수 있는 강력한 메커니즘을 제공합니다. 콜백은 효율적이고 강력한 머신 러닝(ML) 파이프라인을 구축하는 데 필수적인 도구입니다.

콜백 작동 방식

교육할 때 신경망(NN)를 반복하는 프로세스가 포함됩니다. 데이터 세트 를 여러 시대에 걸쳐 학습합니다. 학습 루프는 이 프로세스를 관리하며, 여기에는 모델에 데이터를 공급하고 다음을 계산하는 것이 포함됩니다. 손실 기능를 업데이트하고 모델 가중치 통해 역전파. 콜백은 특정 이벤트에서 이 루프에 연결됩니다. 예를 들어 on_epoch_end 콜백은 각 에포크가 완료된 후 정확하게 코드를 실행합니다. 이를 통해 동적 개입이 가능합니다. 학습 속도를 사용하여 최상의 모델 버전을 저장하거나 성능이 정체된 경우 훈련을 조기에 중단할 수 있습니다. 이러한 자동화는 잘 짜여진 체계적인 머신 러닝 워크플로.

실제 사례

콜백은 교육 결과를 개선하기 위해 다양한 컴퓨터 비전(CV) 작업에서 널리 사용됩니다.

  1. 최상의 객체 감지 모델 저장하기: 객체 감지를 위해 Ultralytics YOLO 모델을 훈련할 때 ModelCheckpoint 콜백을 사용할 수 있습니다. 이 콜백은 유효성 검사 데이터 세트의 평균 평균 정밀도(mAP) 를 모니터링합니다. 이전에 저장된 최고 점수에 비해 mAP 점수가 개선된 경우에만 모델의 가중치를 파일에 저장하여 가장 정확한 모델을 유지할 수 있도록 합니다. 모델 비교 페이지에서 다양한 모델의 성능을 확인할 수 있습니다.
  2. 이미지 분류에서 과적합 방지: 이미지넷과 같은 복잡한 데이터 세트에서 이미지 분류를 위한 모델을 훈련한다고 상상해 보세요. 유효성 검사 손실을 모니터링하도록 조기 중지 콜백을 구성할 수 있습니다. 설정된 기간 동안 유효성 검사 손실이 감소하지 않으면 콜백이 자동으로 학습을 중지합니다. 이렇게 하면 모델이 훈련 데이터에 과적합하는 것을 방지하고 훈련 시간과 계산 비용을 크게 절약할 수 있습니다. 이미지 분류 작업과 그 구현 방법에 대해 자세히 알아보세요.

콜백 대 다른 개념

콜백을 관련 용어와 구분하는 것이 도움이 됩니다:

  • 함수: 콜백은 함수의 한 유형이지만, 다른 함수(학습 루프)에 인수로 전달되어 특정 시간에 해당 함수에 의해 내부적으로 호출되는 것이 특징입니다. 표준 함수는 일반적으로 프로그래머가 직접 호출합니다.
  • 후크: 소프트웨어 엔지니어링에서 후크는 코드에서 사용자 지정 로직을 삽입할 수 있는 위치를 가리키는 보다 일반적인 용어입니다. 머신 러닝 프레임워크의 콜백은 모델의 학습 수명 주기의 이벤트에 맞춘 후크 개념의 구체적인 구현입니다.
  • 하이퍼파라미터 튜닝: 모델에 대한 최적의 하이퍼파라미터(학습 속도 또는 배치 크기 등)를 찾는 프로세스입니다. 예를 들어 학습 속도 스케줄러를 구현하는 등 콜백은 하이퍼파라미터 튜닝을 지원할 수 있지만 튜닝 프로세스 자체는 아닙니다. 튜닝 프로세스는 더 높은 수준의 검색 또는 최적화 절차입니다.

콜백 사용의 이점

콜백을 교육 프로세스에 통합하면 몇 가지 중요한 이점이 있습니다:

  • 자동화: 콜백은 모델 저장, TensorBoard와 같은 도구를 사용한 메트릭 로깅, 매개변수 조정과 같은 반복적인 작업을 자동화하여 긴 훈련 실행 중 수동 개입의 필요성을 줄여줍니다.
  • 유연성 및 사용자 지정: 개발자는 핵심 프레임워크 코드를 수정하지 않고도 트레이닝 루프에 사용자 지정 로직을 삽입할 수 있어 고도로 맞춤화된 트레이닝 동작을 구현할 수 있습니다. 이는 복잡한 실험이나 고급 훈련 기법을 구현할 때 특히 유용합니다.
  • 효율성: 조기 중지 및 동적 학습 속도 조정과 같은 콜백은 계산 리소스를 절약하고 잠재적으로 모델 수렴 속도를 높여 학습을 더욱 효율적으로 만들 수 있습니다.
  • 인사이트 및 모니터링: 모델 평가에 중요한 시간 경과에 따른 메트릭의 상세한 로깅 및 시각화를 지원하여 트레이닝 역학에 대한 심층적인 인사이트를 제공합니다.
  • 재현성: 콜백은 훈련 중에 수행되는 작업(예: 저장 기준, 중지 조건)을 표준화함으로써 머신 러닝 실험의 재현성을 높이는 데 기여합니다.

KerasPyTorch Lightning과 같은 프레임워크는 광범위한 기본 제공 콜백 컬렉션과 사용자 지정 콜백을 생성하기 위한 간단한 인터페이스를 제공합니다. 또한, Ultralytics는 트레이닝 파이프라인 내에서 내부적으로 콜백을 활용하여 Ultralytics YOLO11Ultralytics HUB 플랫폼과 같은 도구의 견고성과 사용자 친화성에 기여하고 있습니다. Ultralytics 설명서를 참조하면 YOLO 모델 훈련과 관련된 보다 구체적인 예시를 확인할 수 있습니다.

울트라 애널리틱스 커뮤니티 가입

AI의 미래와 함께하세요. 글로벌 혁신가들과 연결, 협업, 성장하기

지금 가입하기
링크가 클립보드에 복사됨