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

> 간편하고 효율적이며 유연한 대규모 트레이닝 및 Inference

# Hugging Face Accelerate

Hugging Face Accelerate는 동일한 PyTorch 코드를 어떤 분산 설정에서든 실행할 수 있게 해 주는 라이브러리로, 대규모 모델 트레이닝과 Inference를 간소화합니다.

Accelerate에는 W\&B Tracker가 포함되어 있으며, 아래에서 사용 방법을 설명합니다. [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

# wandb로 로그를 기록하도록 Accelerator 객체에 지시합니다
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 tracker가 올바르게 종료되도록 합니다
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()`](/ko/models/ref/python/functions/init)에 전달하려는 모든 매개변수를 `init_kwargs`의 중첩 dict를 통해 전달
* wandb run에 기록하려는 기타 모든 실험 설정 정보를 `config`를 통해 전달

3. Weights & Biases에 기록하려면 `wandb.Run.log()` 방법을 사용합니다. `step` 인수는 선택 사항입니다
4. 트레이닝이 끝나면 `.end_training()`을 호출합니다

<div id="access-the-wb-tracker">
  ## W\&B tracker에 액세스하기
</div>

W\&B tracker에 액세스하려면 `Accelerator.get_tracker()` 방법을 사용하세요. tracker의 `.name` 속성에 해당하는 문자열을 전달하면 `main` 프로세스에서 해당 tracker를 반환합니다.

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

```

이후에는 wandb의 run 객체를 평소와 같이 사용할 수 있습니다:

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

<Warning>
  Accelerate에 내장된 tracker는 올바른 프로세스에서 자동으로 실행되므로, tracker가 메인 프로세스에서만 실행되도록 되어 있다면 별도 처리 없이도 자동으로 그렇게 동작합니다.

  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에 결과를 로깅하면서 분산 트레이닝과 Evaluation을 얼마나 단순하게 수행할 수 있는지 살펴봅니다.

  [W\&B로 더욱 강력해진 Hugging Face Accelerate 리포트](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 />
