# Accelerate

Accelerate는 단 4줄의 코드만 추가하면 동일한 PyTorch 코드를 어떤 분산 구성에서도 실행할 수 있게 해주는 라이브러리입니다. 간결하게 말하면, 대규모 학습과 추론을 단순하고 효율적이며 유연하게 만들어 줍니다.

```diff
+ from accelerate import Accelerator
+ accelerator = Accelerator()

+ model, optimizer, training_dataloader, scheduler = accelerator.prepare(
+     model, optimizer, training_dataloader, scheduler
+ )

  for batch in training_dataloader:
      optimizer.zero_grad()
      inputs, targets = batch
      inputs = inputs.to(device)
      targets = targets.to(device)
      outputs = model(inputs)
      loss = loss_function(outputs, targets)
+     accelerator.backward(loss)
      optimizer.step()
      scheduler.step()
```

`torch_xla`와 `torch.distributed`를 기반으로 구축된 Accelerate는 복잡한 작업을 처리하므로, 이러한 플랫폼에 맞게 적응하기 위한 커스텀 코드를 작성할 필요가 없습니다. 기존 코드베이스를 변환하여 [DeepSpeed](usage_guides/deepspeed)를 활용하고, [fully sharded data parallelism](usage_guides/fsdp)을 수행하며, 혼합 정밀도 학습에 대한 자동 지원을 받을 수 있습니다!

 

  이 과정을 더 잘 이해하려면 [튜토리얼](basic_tutorials/overview)을 꼭 확인해 보세요!

이 코드는 Accelerate의 CLI 인터페이스를 통해 어떤 시스템에서든 실행할 수 있습니다:
```bash
accelerate launch {my_script.py}
```

  
    <a class="!no-underline border dark:border-gray-700 p-5 rounded-lg shadow hover:shadow-lg" href="./basic_tutorials/overview"
      >튜토리얼
      Accelerate의 기본을 학습하고 사용법을 익히세요. Accelerate를 처음 사용하신다면 여기서 시작하세요!
    
    <a class="!no-underline border dark:border-gray-700 p-5 rounded-lg shadow hover:shadow-lg" href="./usage_guides/explore"
      >How-to 가이드
      특정 목표를 달성하는 데 도움이 되는 실용적인 가이드입니다. Accelerate를 사용하여 실제 문제를 해결하는 방법을 배우려면 다음 가이드를 확인해 보세요.
    
    <a class="!no-underline border dark:border-gray-700 p-5 rounded-lg shadow hover:shadow-lg" href="./concept_guides/gradient_synchronization"
      >개념 가이드
      분산 학습 및 DeepSpeed에서 미묘한 차이와 함정을 피하는 등 중요한 주제를 더 잘 이해할 수 있도록 돕는 고수준 설명
   
    <a class="!no-underline border dark:border-gray-700 p-5 rounded-lg shadow hover:shadow-lg" href="./package_reference/accelerator"
      >참고
      Accelerate의 클래스와 메서드가 작동하는 방식에 대한 기술적 설명입니다.
    
  

