> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-docs-2751.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> 大規模なトレーニングと推論をシンプルかつ効率的で柔軟に実現

# Hugging Face Accelerate

Hugging Face Accelerate は、同じ PyTorch コードをあらゆる分散構成で実行できるようにし、大規模なモデルのトレーニングと推論を簡素化するライブラリです。

Accelerate には W\&B トラッカーが含まれており、このページでは、それを使用して分散トレーニングの run から W\&B にメトリクス、設定、アーティファクトをログする方法を紹介します。詳細は、[Hugging Face の Accelerate Trackers](https://huggingface.co/docs/accelerate/main/en/usage_guides/tracking) を参照してください。

<div id="start-logging-with-accelerate">
  ## Accelerate でログする
</div>

このセクションでは、トレーニング中に実験データを W\&B にログするように Accelerate を設定する方法を説明します。Accelerate と W\&B の使用を開始するには、以下の疑似コードを参照してください。

```python theme={null}
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()
```

さらに詳しく説明すると、次のとおりです。

1. `Accelerator` クラスを初期化する際に `log_with="wandb"` を渡します。
2. [`init_trackers`](https://huggingface.co/docs/accelerate/main/en/package_reference/accelerator#accelerate.Accelerator.init_trackers) method を呼び出し、次を渡します。
   * `project_name` でプロジェクト名を渡す。
   * [`wandb.init()`](/ja/models/ref/python/functions/init) に渡したい任意のパラメーターを、ネストした dict として `init_kwargs` に渡す。
   * wandb run にログしたいその他の実験設定情報を `config` で渡す。
3. W\&B にログするには `wandb.Run.log()` method を使用します。`step` 引数は省略可能です。
4. トレーニングが完了したら `.end_training()` を呼び出します。

<div id="access-the-wb-tracker">
  ## W\&Bトラッカーにアクセスする
</div>

Accelerate が W\&B にログを記録した後で、アーティファクト、カスタム チャート、またはトラッカーでは公開されていないその他のデータをログするために、基盤となる W\&B の Run オブジェクトへ直接アクセスしたい場合があります。W\&Bトラッカーにアクセスするには、`Accelerator.get_tracker()` method を使用します。トラッカーの `.name` 属性に対応する文字列を渡すと、`main` プロセス上のトラッカーが返されます。

```python theme={null}
wandb_tracker = accelerator.get_tracker("wandb")

```

あとは、通常どおり`wandb`のrunオブジェクトを操作できます。

```python theme={null}
wandb_tracker.log_artifact(some_artifact_to_log)
```

<Warning>
  Accelerate に組み込まれたトラッカーは、自動的に適切なプロセスで実行されます。そのため、トラッカーをメインプロセスでのみ実行する必要がある場合も、自動的にそのように動作します。

  Accelerate のラップを完全に外すには、次のようにすれば同じ結果を得られます。

  ```python theme={null}
  wandb_tracker = accelerator.get_tracker("wandb", unwrap=True)
  with accelerator.on_main_process:
      wandb_tracker.log_artifact(some_artifact_to_log)
  ```
</Warning>

<div id="accelerate-articles">
  ## Accelerate 関連記事
</div>

W\&B と併用した Accelerate のより詳しい walkthrough については、以下の記事をご覧ください。

<details>
  <summary>W\&B でさらに強力になった HuggingFace Accelerate</summary>

  この記事では、HuggingFace Accelerate の特徴と、結果を W\&B にログしながら分散トレーニングと評価を行う方法を紹介します。

  詳しくは、[Hugging Face Accelerate Super Charged with W\&B レポート](https://wandb.ai/gladiator/HF%20Accelerate%20+%20W\&B/reports/Hugging-Face-Accelerate-Super-Charged-with-Weights-Biases--VmlldzoyNzk3MDUx?utm_source=docs\&utm_medium=docs\&utm_campaign=accelerate-docs)をお読みください。
</details>

<br />

<br />
