> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

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

# Hugging Face Accelerate

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

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

<h2 id="start-logging-with-accelerate">
  Accelerate でログを開始する
</h2>

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

```python theme={"system"}
from accelerate import Accelerator

# wandb でログするよう Accelerator オブジェクトに指定します
accelerator = Accelerator(log_with="wandb")

# wandb のパラメーターと必要な設定情報を渡して、wandb run を初期化します
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) メソッドを呼び出し、以下を渡します。
   * `project_name` でプロジェクト名を指定します。
   * [`wandb.init()`](/ja/products/wandb/ref/python/functions/init) に渡すパラメーターを、ネストした dict として `init_kwargs` に指定します。
   * wandb run にログするその他の実験設定情報を、`config` で指定します。
3. `wandb.Run.log()` メソッドを使用して W\&B にログします。`step` 引数は省略可能です。
4. トレーニングが終了したら `.end_training()` を呼び出します。

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

Accelerate で W\&B にログするよう設定した後、トラッカーからは利用できないアーティファクト、カスタム チャート、その他のデータをログするために、内部の W\&B run オブジェクトに直接アクセスしたい場合があります。W\&B トラッカーにアクセスするには、`Accelerator.get_tracker()` メソッドを使用します。トラッカーの `.name` 属性に対応する string を渡すと、`main` プロセス上のトラッカーが返されます。

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

```

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

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

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

  Accelerate によるラップを完全に解除したい場合は、次のコードで同じ結果を得られます。

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

<h2 id="accelerate-articles">
  Accelerate の記事
</h2>

W\&B で Accelerate を使用する方法の詳しいウォークスルーについては、次の記事を参照してください。

<details>
  <summary>HuggingFace Accelerate Super Charged With W\&B</summary>

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

  詳しくは、[Hugging Face Accelerate Super Charged with W\&B report](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 />
