Documentation Index
Fetch the complete documentation index at: https://wb-21fd5541-john-wbdocs-2044-rename-serverless-products.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Hugging Face Accelerate は、同じ PyTorch コードをあらゆる分散構成で実行できるようにし、大規模なモデルのトレーニングと推論を簡素化するライブラリです。
Accelerate には W&B トラッカーが含まれており、以下でその使い方を紹介します。また、Hugging Face の Accelerate Trackers で詳しく確認することもできます。
Accelerate と W&B の使用を開始するには、以下の疑似コードを参照してください。
from accelerate import Accelerator
# Accelerator オブジェクトに wandb でログするよう指示する
accelerator = Accelerator(log_with="wandb")
# wandb run を初期化し、wandb パラメーターと設定情報を渡す
accelerator.init_trackers(
project_name="my_project",
config={"dropout": 0.1, "learning_rate": 1e-2}
init_kwargs={"wandb": {"entity": "my-wandb-team"}}
)
...
# accelerator.log() を呼び出して wandb にログする。step は省略可能
accelerator.log({"train_loss": 1.12, "valid_loss": 0.8}, step=global_step)
# wandb トラッカーが正しく終了するようにする
accelerator.end_training()
さらに説明すると、必要なのは次のとおりです。
- Accelerator クラスを初期化する際に
log_with="wandb" を渡します
init_trackers method を呼び出し、次を渡します。
project_name でプロジェクト名を渡す
wandb.init() に渡したい任意のパラメーターを、ネストした dict として init_kwargs に渡す
- wandb run にログしたいその他の実験設定情報を
config で渡す
- Weights & Biases にログするには
wandb.Run.log() method を使用します。step 引数は省略可能です
- トレーニングが完了したら
.end_training() を呼び出します
W&Bトラッカーにアクセスするには、Accelerator.get_tracker() method を使用します。トラッカーの .name 属性に対応する文字列を渡すと、main プロセス上のトラッカーが返されます。
wandb_tracker = accelerator.get_tracker("wandb")
あとは、通常どおりwandbのrunオブジェクトを操作できます。
wandb_tracker.log_artifact(some_artifact_to_log)
Accelerate に組み込まれたトラッカーは、自動的に適切なプロセスで実行されます。そのため、トラッカーをメインプロセスでのみ実行したい場合も、自動的にそのように動作します。Accelerate のラップを完全に外したい場合も、次のようにすれば同じ結果を得られます。wandb_tracker = accelerator.get_tracker("wandb", unwrap=True)
with accelerator.on_main_process:
wandb_tracker.log_artifact(some_artifact_to_log)
以下の Accelerate の記事もぜひご覧ください