5.9 KiB
コールバック数
コールバックは、PyTorch のトレーニング ループの動作をカスタマイズできるオブジェクトです。
トレーニング ループを検査できる [Trainer
] (この機能は TensorFlow にはまだ実装されていません)
状態を確認し (進捗レポート、TensorBoard または他の ML プラットフォームへのログ記録など)、決定を下します (初期段階など)。
停止中)。
コールバックは、返される [TrainerControl
] オブジェクトを除けば、「読み取り専用」のコード部分です。
トレーニング ループ内では何も変更できません。トレーニング ループの変更が必要なカスタマイズの場合は、次のことを行う必要があります。
[Trainer
] をサブクラス化し、必要なメソッドをオーバーライドします (例については、trainer を参照してください)。
デフォルトでは、TrainingArguments.report_to
は "all"
に設定されているため、[Trainer
] は次のコールバックを使用します。
- [
DefaultFlowCallback
] は、ログ記録、保存、評価のデフォルトの動作を処理します。 - [
PrinterCallback
] または [ProgressCallback
] で進行状況を表示し、 ログ (最初のログは、[TrainingArguments
] を通じて tqdm を非アクティブ化する場合に使用され、そうでない場合に使用されます) 2番目です)。 - [
~integrations.TensorBoardCallback
] (PyTorch >= 1.4 を介して) tensorboard にアクセスできる場合 またはテンソルボードX)。 - [
~integrations.WandbCallback
] wandb がインストールされている場合。 - [
~integrations.CometCallback
] comet_ml がインストールされている場合。 - mlflow がインストールされている場合は [
~integrations.MLflowCallback
]。 - [
~integrations.NeptuneCallback
] neptune がインストールされている場合。 - [
~integrations.AzureMLCallback
] azureml-sdk の場合 インストールされています。 - [
~integrations.CodeCarbonCallback
] codecarbon の場合 インストールされています。 - [
~integrations.ClearMLCallback
] clearml がインストールされている場合。 - [
~integrations.DagsHubCallback
] dagshub がインストールされている場合。 - [
~integrations.FlyteCallback
] flyte がインストールされている場合。 - [
~integrations.DVCLiveCallback
] dvclive がインストールされている場合。
パッケージがインストールされているが、付随する統合を使用したくない場合は、TrainingArguments.report_to
を、使用したい統合のみのリストに変更できます (例: ["azure_ml", "wandb"]
) 。
コールバックを実装するメインクラスは [TrainerCallback
] です。それは、
[TrainingArguments
] は [Trainer
] をインスタンス化するために使用され、それにアクセスできます。
[TrainerState
] を介してトレーナーの内部状態を取得し、トレーニング ループ上でいくつかのアクションを実行できます。
[TrainerControl
]。
利用可能なコールバック
ライブラリで利用可能な [TrainerCallback
] のリストは次のとおりです。
autodoc integrations.CometCallback - setup
autodoc DefaultFlowCallback
autodoc PrinterCallback
autodoc ProgressCallback
autodoc EarlyStoppingCallback
autodoc integrations.TensorBoardCallback
autodoc integrations.WandbCallback - setup
autodoc integrations.MLflowCallback - setup
autodoc integrations.AzureMLCallback
autodoc integrations.CodeCarbonCallback
autodoc integrations.NeptuneCallback
autodoc integrations.ClearMLCallback
autodoc integrations.DagsHubCallback
autodoc integrations.FlyteCallback
autodoc integrations.DVCLiveCallback - setup
TrainerCallback
autodoc TrainerCallback
以下は、カスタム コールバックを PyTorch [Trainer
] に登録する方法の例です。
class MyCallback(TrainerCallback):
"A callback that prints a message at the beginning of training"
def on_train_begin(self, args, state, control, **kwargs):
print("Starting training")
trainer = Trainer(
model,
args,
train_dataset=train_dataset,
eval_dataset=eval_dataset,
callbacks=[MyCallback], # We can either pass the callback class this way or an instance of it (MyCallback())
)
コールバックを登録する別の方法は、次のように trainer.add_callback()
を呼び出すことです。
trainer = Trainer(...)
trainer.add_callback(MyCallback)
# Alternatively, we can pass an instance of the callback class
trainer.add_callback(MyCallback())
TrainerState
autodoc TrainerState
TrainerControl
autodoc TrainerControl