| <!--Copyright 2020 The HuggingFace Team. All rights reserved. | |
| Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with | |
| the License. You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on | |
| an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the | |
| specific language governing permissions and limitations under the License. | |
| ⚠️ Note that this file is in Markdown but contain specific syntax for our doc-builder (similar to MDX) that may not be | |
| rendered properly in your Markdown viewer. | |
| --> | |
| # コールバック数 | |
| コールバックは、PyTorch のトレーニング ループの動作をカスタマイズできるオブジェクトです。 | |
| トレーニング ループを検査できる [`Trainer`] (この機能は TensorFlow にはまだ実装されていません) | |
| 状態を確認し (進捗レポート、TensorBoard または他の ML プラットフォームへのログ記録など)、決定を下します (初期段階など)。 | |
| 停止中)。 | |
| コールバックは、返される [`TrainerControl`] オブジェクトを除けば、「読み取り専用」のコード部分です。 | |
| トレーニング ループ内では何も変更できません。トレーニング ループの変更が必要なカスタマイズの場合は、次のことを行う必要があります。 | |
| [`Trainer`] をサブクラス化し、必要なメソッドをオーバーライドします (例については、[trainer](trainer) を参照してください)。 | |
| デフォルトでは、`TrainingArguments.report_to` は `"all"` に設定されているため、[`Trainer`] は次のコールバックを使用します。 | |
| - [`DefaultFlowCallback`] は、ログ記録、保存、評価のデフォルトの動作を処理します。 | |
| - [`PrinterCallback`] または [`ProgressCallback`] で進行状況を表示し、 | |
| ログ (最初のログは、[`TrainingArguments`] を通じて tqdm を非アクティブ化する場合に使用され、そうでない場合に使用されます) | |
| 2番目です)。 | |
| - [`~integrations.TensorBoardCallback`] (PyTorch >= 1.4 を介して) tensorboard にアクセスできる場合 | |
| またはテンソルボードX)。 | |
| - [`~integrations.WandbCallback`] [wandb](https://www.wandb.com/) がインストールされている場合。 | |
| - [`~integrations.CometCallback`] [comet_ml](https://www.comet.ml/site/) がインストールされている場合。 | |
| - [mlflow](https://www.mlflow.org/) がインストールされている場合は [`~integrations.MLflowCallback`]。 | |
| - [`~integrations.NeptuneCallback`] [neptune](https://neptune.ai/) がインストールされている場合。 | |
| - [`~integrations.AzureMLCallback`] [azureml-sdk](https://pypi.org/project/azureml-sdk/) の場合 | |
| インストールされています。 | |
| - [`~integrations.CodeCarbonCallback`] [codecarbon](https://pypi.org/project/codecarbon/) の場合 | |
| インストールされています。 | |
| - [`~integrations.ClearMLCallback`] [clearml](https://github.com/allegroai/clearml) がインストールされている場合。 | |
| - [`~integrations.DagsHubCallback`] [dagshub](https://dagshub.com/) がインストールされている場合。 | |
| - [`~integrations.FlyteCallback`] [flyte](https://flyte.org/) がインストールされている場合。 | |
| - [`~integrations.DVCLiveCallback`] [dvclive](https://www.dvc.org/doc/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`] に登録する方法の例です。 | |
| ```python | |
| 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()` を呼び出すことです。 | |
| ```python | |
| 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 | |