Transformers documentation

コールバック

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

コールバック

Callbacks は、PyTorch の Trainer におけるトレーニングループの動作をカスタマイズできるオブジェクトです。トレーニングループの状態を監視して(進捗の報告、TensorBoard やその他の ML プラットフォームへのログ出力など…)、判断を下す(早期停止など)ことができます。

Callback は、返す TrainerControl オブジェクトを除き、「読み取り専用」のコードであり、トレーニングループ内の何を変更することもできません。トレーニングループの変更を伴うカスタマイズが必要な場合は、Trainer をサブクラス化し、必要なメソッドをオーバーライドしてください(例については trainer を参照)。

デフォルトでは、TrainingArguments.report_to は "none" に設定されています。

コールバックを実装する主なクラスはTrainerCallbackです。これはTrainerをインスタンス化するために使用されたTrainingArgumentsを取得し、TrainerStateを介してそのTrainerの内部状態にアクセスでき、TrainerControlを介してトレーニングループに対していくつかのアクションを実行できます。

利用可能なコールバック

ライブラリで利用可能なTrainerCallbackの一覧は以下の通りです:

class transformers.integrations.CometCallback

< >

( )

TrainerCallback であり、Comet ML へログを送信します。

セットアップ

< >

( argsstatemodel )

オプションの Comet 統合を設定します。

環境:

  • COMET_MODE (str, 省略可, デフォルトは get_or_create): 新しい Comet の実験を作成してログを記録するか、既存の実験に追記するかどうかを制御します。 以下の値を受け取ります:
    • get_or_create: COMET_EXPERIMENT_KEYが設定されているかどうか、およびそのキーを持つExperimentが既に存在するかどうかを自動的に判断します。
    • create: 常に新しい Comet Experiment を作成します。
    • get: 既存の Comet Experiment に追加するよう常に試みます。 COMET_EXPERIMENT_KEY が設定されている必要があります。
  • COMET_START_ONLINE (bool、任意): オンラインまたはオフラインの Experiment を作成するかどうかを指定します。
  • COMET_PROJECT_NAME (str, 任意): 実験用の Comet プロジェクト名。
  • COMET_LOG_ASSETS (str、任意、デフォルトはTRUE): Comet にトレーニング資産(チェックポイントなど)をログ出力するかどうか。TRUEまたはFALSEを指定できます。

環境で設定可能な項目については、こちらを参照してください。

class transformers.DefaultFlowCallback

< >

( )

ログ、評価、チェックポイントのデフォルトフローを処理する TrainerCallback です。

class transformers.PrinterCallback

< >

( )

ログを出力するだけの素の TrainerCallback です。

class transformers.ProgressCallback

< >

( max_str_len: int = 100 )

学習または評価の進捗を表示する TrainerCallback です。 ログ出力時の文字列の切り詰め長を制御するために、max_str_len を変更できます。

クラス transformers.EarlyStoppingCallback

< >

( early_stopping_patience: int = 1early_stopping_threshold: float | None = 0.0 )

パラメータ

  • early_stopping_patience (int) — metric_for_best_model と併用して、指定したメトリクスが early_stopping_patience 回の評価にわたって悪化した場合に学習を停止します。
  • early_stopping_threshold(float, 任意) — TrainingArguments の metric_for_best_model と early_stopping_patience と併用し、early stopping の条件を満たすために指定されたメトリクスがどれだけ改善する必要があるかを指定します。

早期停止を処理するTrainerCallbackです。

このコールバックは、TrainerState の best_metric を設定するために、TrainingArguments の load_best_model_at_end 機能に依存しています。なお、TrainingArguments の save_steps が eval_steps と異なる場合、次の保存ステップまで早期停止は発生しません。

class transformers.integrations.TensorBoardCallback

< >

( tb_writer = None )

パラメータ

  • tb_writer (SummaryWriter、省略可) — 使用するライターです。未設定の場合はインスタンスを生成します。

TrainerCallback の一種で、ログを TensorBoard に送信します。

環境:

  • TENSORBOARD_LOGGING_DIR (str、任意、デフォルトは None): 結果をログに記録するディレクトリです。デフォルト値は os.path.join(args.output_dir, default_logdir()) です。

class transformers.integrations.TrackioCallback

< >

( )

Trackio にメトリクスを記録する TrainerCallback です。

セットアップ

< >

( argsstatemodel**kwargs )

任意の Trackio 統合を設定します。

セットアップをカスタマイズするには、TrainingArguments に project、trackio_space_id、trackio_bucket_id、trackio_static_space_id、hub_private_repo を設定することもできます。

class transformers.integrations.WandbCallback

< >

( )

TrainerCallback の一種で、メトリクス、メディア、モデルのチェックポイントを Weight and Biases に記録します。

セットアップ

< >

( argsstatemodel**kwargs )

オプションの Weights & Biases (wandb) 統合を設定します。

必要に応じて、このメソッドをサブクラス化してオーバーライドし、セットアップをカスタマイズできます。詳細はこちらを参照してください。また、以下の環境変数をオーバーライドすることもできます:

環境:

  • WANDB_LOG_MODEL (str、任意、デフォルトは"false"): トレーニング中にモデルとチェックポイントをログに記録するかどうかを指定します。"end"、"checkpoint"、または"false"を指定できます。"end"を指定すると、トレーニング終了時にモデルがアップロードされます。"checkpoint"を指定すると、args.save_steps ごとにチェックポイントがアップロードされます。"false"を指定すると、モデルはアップロードされません。load_best_model_at_end() と併用して、最良のモデルをアップロードできます。
  • WANDB_WATCH (str、任意、デフォルトは"false"): "gradients"、"all"、"parameters"、または"false"を指定できます。"all"に設定すると、勾配とパラメータがログに記録されます。
  • WANDB_PROJECT (str、任意、デフォルトは "huggingface"): 別のプロジェクトに結果を保存するには、この値をカスタム文字列に設定します。

class transformers.integrations.MLflowCallback

< >

( )

TrainerCallback で、MLflow にログを送信します。環境変数 DISABLE_MLFLOW_INTEGRATION = TRUE を設定することで無効化できます。

セットアップ

< >

( argsstatemodel )

オプションのMLflow統合を設定します。

環境:

  • HF_MLFLOW_LOG_ARTIFACTS (str, 任意): MLflow の .log_artifact() 機能を使用して成果物をログに記録するかどうかを指定します。これは、s3 や GCS などのリモートサーバーにログを記録する場合にのみ意味があります。True または 1 に設定すると、TrainingArguments の output_dir に保存される各チェックポイントが、保存のたびにローカルまたはリモートの成果物ストレージにコピーされます。リモートストレージなしで使用した場合、ファイルは成果物保存先へコピーされるだけです。
  • MLFLOW_TRACKING_URI (str、任意): 実行を特定のパスまたはリモートサーバーに保存するかどうか。デフォルトでは未設定であり、tracking URI の設定を完全にスキップします。
  • MLFLOW_EXPERIMENT_NAME (str、任意、デフォルトはNone): 実行を起動するために MLflow の experiment_name を使用するかどうかを指定します。デフォルトはNoneで、MLflow のDefault実験を指します。それ以外の場合、有効化される実験の大文字小文字を区別した名前を指定します。この名前の実験が存在しない場合、この名前の新しい実験が作成されます。
  • MLFLOW_TAGS (str、任意): MLflow の実行にタグとして追加するキー/値ペアの辞列を文字列としてダンプしたもの。例: os.environ['MLFLOW_TAGS']='{"release.candidate": "RC1", "release.version": "2.2.0"}'。
  • MLFLOW_NESTED_RUN (str, 任意): MLflow のネストされたランを使用するかどうかを指定します。True または 1 に設定すると、現在のラン内にネストされたランが作成されます。
  • MLFLOW_RUN_ID (str, 任意): チェックポイントから学習を再開する場合などに有用な、既存のランへの再接続を許可します。MLFLOW_RUN_ID 環境変数が設定されている場合、start_run は指定されたラン ID を持つランの再開を試み、その他のパラメータは無視されます。
  • MLFLOW_FLATTEN_PARAMS (str、任意、デフォルトはFalse): ログ出力の前にパラメータの辞書をフラットにするかどうかを指定します。
  • MLFLOW_MAX_LOG_PARAMS (int、任意): 実行でログに記録するパラメータの最大数を設定します。

クラス transformers.integrations.AzureMLCallback

< >

( azureml_run = None )

TrainerCallback の一種で、ログを AzureML に送信します。

class transformers.integrations.CodeCarbonCallback

< >

( )

トレーニングのCO2排出量をトラッキングするTrainerCallbackです。

class transformers.integrations.ClearMLCallback

< >

( )

TrainerCallback の一種で、ログを ClearML に送信します。

環境:

  • CLEARML_PROJECT (str、任意、デフォルトは HuggingFace Transformers): ClearML のプロジェクト名です。
  • CLEARML_TASK (str、任意、デフォルトは Trainer): ClearML のタスク名です。
  • CLEARML_LOG_MODEL (bool、任意、デフォルトはFalse): 学習中にモデルを成果物としてログに記録するかどうかを指定します。

class transformers.integrations.DagsHubCallback

< >

( )

DagsHubにログを記録するTrainerCallback。MLflowCallbackを継承します。

セットアップ

< >

( *args**kwargs )

DagsHub のロギング統合を設定します。

環境:

  • HF_DAGSHUB_LOG_ARTIFACTS (str、任意): 実験のデータおよびモデルの成果物を保存するかどうかを指定します。デフォルトはFalseです。

クラス transformers.integrations.FlyteCallback

< >

( save_log_history: bool = Truesync_checkpoints: bool = True )

パラメータ

  • save_log_history (bool、任意、デフォルトはTrue) — True に設定すると、トレーニングログが Flyte Deck として保存されます。
  • sync_checkpoints (bool、任意、デフォルトは True) — True に設定すると、チェックポイントは Flyte と同期され、中断が発生した場合にトレーニングを再開するために使用できます。

TrainerCallback の一種で、ログを Flyte に送信します。 注: このコールバックは Flyte タスク内でのみ動作します。

例:

# Note: This example skips over some setup steps for brevity.
from flytekit import current_context, task


@task
def train_hf_transformer():
    cp = current_context().checkpoint
    trainer = Trainer(..., callbacks=[FlyteCallback()])
    output = trainer.train(resume_from_checkpoint=cp.restore())

class transformers.integrations.KubeflowCallback

< >

( )

Kubeflow Trainer への学習進捗を報告する TrainerCallback です。

このコールバックは、TrainJobRuntimeStatus 機能ゲートを有効にして Kubeflow TrainJob 内でトレーニングを実行する場合に、自動的に登録されます。Kubeflow コントローラーは、トレーニング Pod に必要な環境変数を注入します。

環境変数(コントローラーによって注入されます):

  • KUBEFLOW_TRAINER_SERVER_URL: ステータス更新用の HTTPS エンドポイント
  • KUBEFLOW_TRAINER_SERVER_CA_CERT: TLS検証用のCA証明書へのパス
  • KUBEFLOW_TRAINER_SERVER_TOKEN: 認証用のサービスアカウントトークンのパス

報告された情報:

  • 進捗率(0〜100%)
  • 残り推定時間(秒)
  • トレーニング指標(loss、learning_rate など)

機能:

  • コントローラーへの負荷を軽減するために、自動スロットリング(5秒ごとに最大1回の更新)を実行します
  • ファイル I/O を最小限に抑えるためのトークンキャッシュ(5 分)
  • 分散学習では、ランク0のみが進捗を報告します
  • サイレントな失敗 - ネットワークの問題がトレーニングを中断しません

環境変数DISABLE_KUBEFLOW_INTEGRATION=TRUEを設定することで無効化できます。

クラス transformers.integrations.DVCLiveCallback

< >

( live: typing.Any | None = Nonelog_model: typing.Union[typing.Literal['all'], bool, NoneType] = None**kwargs )

パラメータ

  • live (dvclive.Live、任意、デフォルトはNone) — 任意の Live インスタンスです。None の場合、**kwargs を使用して新しいインスタンスが作成されます。
  • log_model (Union[Literal[“all”], bool], 省略可、デフォルトは None) — dvclive.Live.log_artifact() を使用して、Trainer によって作成されたチェックポイントをログに記録するかどうかを指定します。True に設定すると、トレーニング終了時に最終チェックポイントがログに記録されます。"all" に設定すると、TrainingArguments の output_dir 全体が各チェックポイントのたびにログに記録されます。

TrainerCallback の一種で、ログを DVCLive に送信します。

setup で以下の環境変数を使用して、統合を設定します。これらの環境変数以外の方法でこのコールバックをカスタマイズする場合は、こちらを参照してください。

セットアップ

< >

( argsstatemodel )

任意のDVCLive統合を設定します。以下の環境変数以外の方法でこのコールバックをカスタマイズする場合は、こちらを参照してください。

環境:

  • HF_DVCLIVE_LOG_MODEL (str、任意): Trainer が作成するチェックポイントを dvclive.Live.log_artifact() でログに記録するかどうかを指定します。True または 1 に設定すると、トレーニング終了時に最終チェックポイントがログに記録されます。all に設定すると、各チェックポイントのたびに TrainingArguments の output_dir 全体がログに記録されます。

class transformers.integrations.SwanLabCallback

< >

( )

SwanLab にメトリクス、メディア、モデルのチェックポイントを記録する TrainerCallback です。

セットアップ

< >

( argsstatemodel**kwargs )

オプションの SwanLab (swanlab) 統合を設定します。

必要に応じて、このメソッドをサブクラス化してオーバーライドし、セットアップをカスタマイズできます。詳細はこちらを参照してください。

以下の環境変数をオーバーライドすることもできます。環境変数に関する詳細はこちらを参照してください。

環境:

  • SWANLAB_API_KEY (str、任意、デフォルトはNone): Cloud API Keyです。ログイン時に、まずこの環境変数がチェックされます。存在しない場合、システムはユーザーがすでにログイン済みかどうかを確認します。ログインしていない場合、ログイン処理が開始されます。

    • login インターフェースに文字列が渡された場合、この環境変数は無視されます。
    • ユーザーがすでにログイン済みの場合、この環境変数はローカルに保存されたログイン情報よりも優先されます。
  • SWANLAB_PROJECT (str、任意、デフォルトはNone): 別のプロジェクトに結果を保存するには、この値をカスタム文字列に設定します。指定しない場合、現在実行中のディレクトリ名が使用されます。

  • SWANLAB_LOG_DIR (str、任意、デフォルトはswanlog): この環境変数は、ローカルモードで実行する際のログファイルの保存パスを指定します。 デフォルトでは、作業ディレクトリ配下のswanlogという名前のフォルダにログが保存されます。

  • SWANLAB_MODE (Literal["local", "cloud", "disabled"]、任意、デフォルトは cloud): SwanLab の解析モードです。オペレーターによって登録されたコールバックに関わります。現在、local、cloud、disabled の3つのモードがあります。注意:大文字と小文字を区別します。詳細はこちらを参照してください。

  • SWANLAB_LOG_MODEL (str、任意、デフォルトはNone): SwanLab は現在、save mode 機能をサポートしていません。この機能は将来のリリースで利用可能になります。

  • SWANLAB_WEB_HOST (str、任意、デフォルトはNone): プライベート版用の SwanLab クラウド環境の Web アドレス(無料)

  • SWANLAB_API_HOST (str、任意、デフォルトは None): プライベート版の SwanLab クラウド環境向けの API アドレス(無料)

  • SWANLAB_RUN_ID (str、任意、デフォルトはNone): 再開する前回のランの実験 ID。SWANLAB_RESUME と併用して、既存の実験を継続します。

  • SWANLAB_RESUME (str、任意、デフォルトはNone): 再開モード("must"、"allow"、"never")。resume_from_checkpointを使用する場合、デフォルトは"allow"です。

TrainerCallback

class transformers.TrainerCallback

< >

( )

パラメータ

  • args (TrainingArguments) — Trainerをインスタンス化するために使用されるトレーニング引数。
  • state (TrainerState) — Trainerの現在の状態です。
  • control (TrainerControl) — Trainer に返され、いくつかの判断を行うために使用できるオブジェクト。
  • model (PreTrainedModel または torch.nn.Module) — 学習対象のモデル。
  • processing_class(PreTrainedTokenizer または BaseImageProcessor または ProcessorMixin または FeatureExtractionMixin)— データをエンコードするために使用される処理クラスです。トークナイザー、プロセッサー、画像プロセッサー、または特徴抽出器のいずれかです。
  • optimizer (torch.optim.Optimizer) — 学習ステップで使用されるオプティマイザー。
  • lr_scheduler (torch.optim.lr_scheduler.LambdaLR) — 学習率を設定するために使用されるスケジューラ。
  • train_dataloader (torch.utils.data.DataLoader, 任意) — 学習に現在使用されているデータローダーです。
  • eval_dataloader (torch.utils.data.DataLoader, 省略可) — 評価に現在使用されているデータローダー。
  • metrics (dict[str, float]) — 最後の評価フェーズで計算されたメトリクス。

    それらは、on_evaluateイベントでのみアクセスできます。

  • logs (dict[str, float]) — 記録する値。

    それらは、on_logイベントでのみアクセスできます。

…

control オブジェクトは、コールバックによって変更できる唯一のオブジェクトであり、変更された場合は、その変更を行うイベントが変更後のバージョンを返す必要があります。

引数 args、state、control はすべてのイベントで位置引数として渡され、それ以外の引数は kwargs にまとめられます。必要な引数は、イベントのシグネチャ内でアンパックして使用できます。例として、シンプルな PrinterCallback のコードを参照してください。

例:

class PrinterCallback(TrainerCallback):
    def on_log(self, args, state, control, logs=None, **kwargs):
        _ = logs.pop("total_flos", None)
        if state.is_local_process_zero:
            print(logs)

on_epoch_begin

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

エポックの開始時に呼び出されるイベント。

on_epoch_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

エポックの終了時に呼び出されるイベント。

on_evaluate

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

評価フェーズの後に呼び出されるイベント。

on_init_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Trainerの初期化が完了した時点で呼び出されるイベントです。

on_log

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

最後のログを記録した後に呼び出されるイベント。

on_optimizer_step

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

オプティマイザのステップの後に、勾配がゼロにリセットされる前に呼び出されるイベント。勾配の監視に便利です。

on_pre_optimizer_step

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

勾配クリッピングの後に、オプティマイザーステップの前に呼び出されるイベントです。勾配の監視に便利です。

on_predict

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControlmetrics**kwargs )

予測が正常に完了した後に呼び出されるイベント。

on_prediction_step

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

予測ステップの後に呼び出されるイベント。

on_push_begin

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Event called before pushing the model to the hub, at the beginning of Trainer.push_to_hub and Trainer._push_from_checkpoint.

on_save

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

チェックポイントの保存後に呼び出されるイベント。

on_step_begin

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

トレーニングステップの開始時に呼び出されるイベント。勾配蓄積を使用している場合、1つのトレーニングステップで複数の入力を使用する可能性があります。

on_step_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

トレーニングステップの終了時に呼び出されるイベント。勾配蓄積を使用している場合、1つのトレーニングステップには複数の入力が必要になることがあります。

on_substep_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

勾配蓄積中のサブステップの終了時に呼び出されるイベント。

on_train_begin

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

学習の開始時に呼び出されるイベント。

on_train_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

トレーニングの終了時に呼び出されるイベント。

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

class transformers.TrainerState

< >

( epoch: float = 0global_step: int = 0max_steps: int = 0logging_steps: int = 500eval_steps: int = 500save_steps: int = 500train_batch_size: int | None = Nonenum_train_epochs: int = 0num_input_tokens_seen: int = 0total_flos: float = 0log_history: list[dict[str, float]] = Nonebest_metric: float | None = Nonebest_global_step: int | None = Nonebest_model_checkpoint: str | None = Noneis_local_process_zero: bool = Trueis_world_process_zero: bool = Trueis_hyper_param_search: bool = Falsetrial_name: str | None = Nonetrial_params: dict[str, str | float | int | bool] | None = Nonestateful_callbacks: list['TrainerCallback'] | None = None )

パラメータ

  • epoch (float, 省略可) — トレーニング中のみに設定され、現在のトレーニングがどのエポックにあるかを示します(小数部分は、現在のエポックの完了率を表します)。
  • global_step (int、任意、デフォルトは 0)— 学習中、完了した更新ステップの数を表します。
  • max_steps (int、任意、デフォルトは 0) — 現在のトレーニング中に実行する更新ステップの回数。
  • logging_steps (int、任意、デフォルト値は 500)— X ステップごとにログを記録します
  • eval_steps (int, 任意) — X ステップごとに評価を実行します。
  • save_steps (int、任意、デフォルトは 500) — X ステップごとにチェックポイントを保存します。
  • train_batch_size (int, 任意) — トレーニング用データローダーのバッチサイズ。auto_find_batch_size を使用した場合にのみ必要です。
  • num_input_tokens_seen (int、任意、デフォルトは 0) — 入力トークンをトラッキングする場合、学習中に確認されたトークンの数(予測トークンの数ではなく、入力トークンの数)です。
  • total_flos (float、任意、デフォルトは 0) — トレーニング開始以降にモデルが実行した浮動小数点演算の総数(オーバーフローを避けるため float として保存されます)。
  • log_history (list[dict[str, float]]、省略可) — トレーニング開始以降に記録されたログのリストです。
  • best_metric (float, 任意) — 最良モデルを追跡する場合、これまでに観測された最良メトリックの値。
  • best_global_step (int, 任意) — 最良のモデルを追跡する場合、最良のメトリクスが観測されたステップ。 best_model_checkpointを設定するために使用されます。
  • best_model_checkpoint (str, 任意) — 最良のモデルを追跡している場合、これまでに見つかった最良のモデルのチェックポイントの名前の値。
  • is_local_process_zero (bool、省略可能、デフォルトは True) — このプロセスがローカル(複数マシンで分散学習を行う場合、1台のマシン上での)メインプロセスかどうかを示します。
  • is_world_process_zero (bool、省略可能、デフォルトは True) — このプロセスがグローバルなメインプロセスかどうかを示します(複数マシンで分散学習を行う場合、True になるのは1つのプロセスのみです)。
  • is_hyper_param_search (bool、省略可能、デフォルトはFalse) — Trainer.hyperparameter_search を使用してハイパーパラメータ検索を実行中かどうかを示します。この値は、TensorBoard にデータがどのように記録されるかに影響します。
  • stateful_callbacks (list[StatefulTrainerCallback]、省略可) — Trainer にアタッチされ、その状態の保存または復元が必要な Callback のリストです。 該当する Callback は、state と from_state 関数を実装する必要があります。

チェックポイント時にモデルとオプティマイザーとともに保存され、TrainerCallbackに渡される、Trainerの内部状態を含むクラス

このクラス全体において、1ステップとは1回の更新ステップを指します。勾配蓄積を使用する場合、1回の更新ステップには複数のフォワードパスとバックワードパスが必要になることがあります。gradient_accumulation_steps=nを使用する場合、1回の更新ステップにはn個のバッチを処理する必要があります。

compute_steps

< >

( argsmax_steps )

比例値かどうかに基づいて、ログ、eval、および保存ステップの絶対値を計算して保存します。

init_training_references

< >

( trainermax_stepsnum_train_epochstrial )

self に必要な初期学習の参照を保存します

load_from_json

< >

( json_path: str )

json_pathの内容からインスタンスを作成します。

save_to_json

< >

( json_path: str )

このインスタンスの内容をjson_path内にJSON形式で保存します。

TrainerControl

class transformers.TrainerControl

< >

( should_training_stop: bool = Falseshould_epoch_stop: bool = Falseshould_save: bool = Falseshould_evaluate: bool = Falseshould_log: bool = False )

パラメータ

  • should_training_stop (bool, 省略可, デフォルトは False) — トレーニングを中断するかどうか。

    Trueの場合、この変数はFalseにリセットされません。トレーニングは単に停止します。

  • should_epoch_stop (bool, 省略可, デフォルトは False) — 現在のエポックを中断するかどうか。

    Trueの場合、次のエポックの開始時にこの変数はFalseにリセットされます。

  • should_save (bool, 省略可, デフォルトは False) — このステップでモデルを保存するかどうか。

    Trueの場合、次のステップの開始時にこの変数はFalseにリセットされます。

  • should_evaluate (bool, 省略可, デフォルトは False) — このステップでモデルを評価するかどうか。

    Trueの場合、次のステップの開始時にこの変数はFalseにリセットされます。

  • should_log (bool, 省略可, デフォルトは False) — このステップでログを報告するかどうか。

    Trueの場合、次のステップの開始時にこの変数はFalseにリセットされます。

Trainer の制御フローを処理するクラスです。このクラスは、TrainerCallback によって使用され、トレーニングループ内のいくつかのスイッチを有効にします。

Update on GitHub