メインコンテンツへスキップ
torchtune は、LLM の作成、ファインチューニング、実験を効率化する PyTorch ベースのライブラリです。torchtune は W&B へのログ記録 も標準でサポートしており、トレーニング過程のトラッキングと可視化を強化します。 このガイドでは、torchtune のレシピで W&B logging を有効にする方法、WandBLogger メトリクスロガーの設定方法、torchtune がデフォルトでトラッキングするメトリクス、およびモデル チェックポイントを W&B Artifacts に保存する方法を説明します。
torchtune のトレーニングダッシュボード
torchtune を使った Mistral 7B のファインチューニング に関する W&B のブログ記事をご覧ください。

W&B logging を有効にする

W&B logging は、起動時にコマンドラインから引数を上書きするか、レシピの設定ファイルを編集するかの 2 つの方法で有効にできます。ご自身の workflow に合う方法を選んでください。
起動時にコマンドライン引数を上書きします。

W&Bメトリクスロガーを使用する

レシピの設定ファイル内の metric_logger セクションを変更して、W&B logging を有効にします。_component_torchtune.utils.metric_logging.WandBLogger クラスに変更してください。project 名や log_every_n_steps を渡して、logging の動作をカスタマイズすることもできます。 また、wandb.init() method に渡すのと同様に、そのほかの kwargs も渡せます。たとえば、チームで作業する場合は、entity 引数を WandBLogger クラスに渡してチーム名を指定できます。

ログされるデータ

W&B logging を有効にすると、ログされたメトリクスは W&B ダッシュボードで確認できます。デフォルトでは、W&B は設定ファイル内のすべてのハイパーパラメーターと Launch のオーバーライドをログするため、各 run の設定をメトリクスとあわせて記録できます。 W&B は、解決済みの設定を Overview タブに記録します。また、その設定は YAML 形式で Files tab にも保存されます。
TorchTune の設定

ログされたメトリクス

各レシピには独自のトレーニングループがあります。ログされるメトリクスを確認するには、各レシピの内容を個別に参照してください。デフォルトでは、次のメトリクスが含まれます。
global_step はトレーニングステップ数と同じではありません。これはトレーニングループ内の現在のステップに対応し、勾配累積が考慮されます。オプティマイザーのステップが実行されるたびに、global_step は 1 ずつ増加します。たとえば、dataloader に 10 個のバッチがあり、勾配累積ステップ数が 2 で、3 エポック実行する場合、オプティマイザーは 15 回ステップするため、global_step は 1 から 15 までの値を取ります。
torchtune では、カスタムメトリクスを追加したり、既存のメトリクスを変更したりできます。対応する recipe file を変更してください。たとえば、current_epoch を全エポック数に対する割合として、次のようにログできます。
ログされるメトリクスの内容は、torchtune のリリースによって変わる場合があります。カスタム メトリクスを追加するには、レシピを変更し、対応する self._metric_logger.* 関数を呼び出してください。

チェックポイントの保存と読み込み

チェックポイントを W&B Artifacts に保存すると、各 run のメトリクスや設定とあわせてモデルの重みをバージョン管理できるため、後から結果を再現したり、モデルのバージョンを比較したりできます。 torchtune ライブラリは、複数のチェックポイント形式をサポートしています。使用するモデルの取得元に応じて、適切なcheckpointer クラスに切り替える必要があります。 モデル チェックポイントを W&B Artifacts に保存するには、対応するレシピ内の save_checkpoint 関数をオーバーライドする方法が推奨されます。 次の例では、save_checkpoint 関数をオーバーライドして、モデル チェックポイントを W&B Artifacts に保存する方法を示します。