> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-docs-weave-byob-note.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 トラッカーが含まれており、以下でその使い方を紹介します。また、[Hugging Face の Accelerate Trackers](https://huggingface.co/docs/accelerate/main/en/usage_guides/tracking) で詳しく確認することもできます。

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

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. Weights & Biases にログするには `wandb.Run.log()` method を使用します。`step` 引数は省略可能です
4. トレーニングが完了したら `.end_training()` を呼び出します

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

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>

以下の Accelerate の記事もぜひご覧ください

<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 />
