Yolo 深圳
深セン
今すぐ参加
用語集

コールバック

Ultralytics トレーニングを最適化する仕組みを発見しましょう。早期停止、チェックポイント保存、カスタムロギングの実装方法を学び、AIワークフローを強化しましょう。

ソフトウェア工学と人工知能(AI)の領域において 人工知能(AI)コールバックとは、他のコードの引数として渡される実行可能コードであり、 その後、指定されたタイミングでその引数を実行(呼び戻し)することが期待される。特に フレームワークにおいて、コールバックは開発者が動作をカスタマイズするための不可欠なツールであり、 フレームワークにおいて、 コールバックは開発者がモデルの動作をカスタマイズするための必須ツールである。 モデルトレーニング ループの動作をカスタマイズする上で不可欠なツールです。これらは自動化されたトリガーとして機能し、 トレーニングプロセスの様々な段階(例えばエポックの開始や終了時など)で特定のアクションを実行します。 、トレーニングバッチ、またはトレーニングセッション全体の終了時など、トレーニングプロセスの様々な段階で特定のアクションを実行する自動トリガー、トレーニングバッチ、またはトレーニングセッション全体の終了時など、トレーニングプロセスの様々な段階で特定のアクションを実行する自動トリガーとして機能します。

機械学習におけるコールバックの役割

複雑な ニューラルネットワークの の学習には数時間から 数日かかることもある。コールバックなしでは、学習プロセスは基本的に完了するまで実行される「ブラックボックス」であり、 多くの場合手動での監視が必要となる。コールバックは可観測性と制御を導入し、システムが リアルタイムのパフォーマンス指標に基づいて自己調整することを可能にする。

PyTorchのような高レベルライブラリを使用する場合 PyTorchTensorFlowを使用する場合、コールバックは最適化アルゴリズムにロジックを注入する方法を提供します。 最適化アルゴリズムにロジックを注入する方法を提供します。例えば、モデルが良好に学習している場合、コールバックは現在の状態を保存するかもしれません。学習が停止した場合、コールバックはリソースを節約するためにプロセスを停止するかもしれません。これにより、機械学習(ML)は 機械学習(ML) ワークフロー をより効率的かつ堅牢にします。

一般的な応用例と実世界の事例

コールバックは汎用性が高く、モデル監視中の様々なタスクに使用できます。 モデル監視 および 最適化の過程で多様なタスクに使用できます。

  • 早期停止:最も一般的な用途の一つは 早期停止。このコールバックは、 検証データ 損失。設定されたエポック数において 損失の減少が止まった場合、コールバックはトレーニングを停止します。これにより 過学習を防ぎを防ぎ、モデルが を防止します。
  • モデルチェックポイント:長時間のトレーニング実行中、ハードウェア障害は壊滅的な結果を招く可能性があります。チェックポイントコールバックは モデル重みを を保存します (例:毎エポック)またはモデルが 精度平均精度(mAP)などの指標で新たな「最高」スコアを達成した時のみ行うことができます。これにより、常に最高のパフォーマンスを発揮するモデルの保存バージョンを確保できます。
  • 学習率スケジューリング: 学習率 は、モデル重みが更新されるたびに推定誤差に応じてモデルがどれだけ変化するかを制御します。コールバックは この速度を動的に調整でき、学習が停滞した際にこれを減速させることでモデルが最適解に収束するのを助けます。 この手法はしばしば 学習率減衰と呼ばれる。
  • ロギングと可視化:コールバックは実験の追跡と統合するために頻繁に使用される 実験追跡ツールとの連携に頻繁に使用されます ツールとの連携に頻繁に使用されます。 これらは TensorBoardMLflowなどのダッシュボードにメトリクスをストリーミングし、データサイエンティストが損失関数を可視化できるようにします。 損失関数 やパフォーマンス グラフをリアルタイムで可視化できるようになります。

Ultralytics YOLOでのコールバック実装

Ultralytics は堅牢なコールバックシステムをサポートしており、ユーザーはモデルトレーニング中のイベントにフックできます。 YOLO26などのモデルトレーニング中のイベントにフックできます。これは特に、 Ultralytics 上でワークフローを管理し、カスタムロギングや制御ロジックを必要とするユーザーにとって特に有用です。

以下は、トレーニングのエポック終了時にメッセージを出力するカスタムコールバックを定義・登録する簡潔な例です。 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)

コールバックとフック

関連はしているものの、コールバックとフックを区別することは有用である フック区別することが有用である。PyTorchフレームワークでは、フックは一般的に特定のテンソルに紐づく低レベルな関数である。 tensor 操作やニューラルネットワークの レイヤーに紐付けられ、フォワードパスやバックワードパス中に勾配や出力を検査・変更するものです。一方、コールバックは 通常、トレーニングループに紐付けられたより高レベルの抽象化です。 トレーニングループ イベント(開始、終了、バッチ処理)に紐づく高レベルな抽象化である。

その他の資料

トレーニングワークフローの最適化手法に関する理解を深めたい方に向けて、 ハイパーパラメータ調整 は 論理的な次のステップです。さらに、基盤となる コンピュータビジョン(CV) タスク(例: 物体検出など) を理解することも重要です。 物体検出インスタンスセグメンテーション コールバックを介した精密なトレーニング制御が必要な理由について 背景情報を提供します。これらのプロセスを企業レベルで管理するには、 Ultralytics Platform Ultralytics は、これらのコールバック駆動型動作の多くを自動化する統合ソリューションを提供します。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加