메인 콘텐츠로 건너뛰기
Hugging Face Accelerate는 동일한 PyTorch 코드를 어떤 분산 설정에서든 실행할 수 있게 해 주는 라이브러리로, 대규모 모델 트레이닝과 Inference를 간소화합니다. Accelerate에는 W&B Tracker가 포함되어 있으며, 이 페이지에서는 분산 training runs의 메트릭, 설정 및 아티팩트를 W&B에 로깅하는 데 이를 사용하는 방법을 설명합니다. 자세한 내용은 Hugging Face의 Accelerate Trackers를 참조하세요.

Accelerate로 로깅 시작하기

이 섹션에서는 트레이닝 중 실험 데이터를 W&B에 로깅하도록 Accelerate를 설정하는 방법을 설명합니다. Accelerate와 W&B를 시작하려면 다음 의사 코드를 따르세요:
좀 더 자세히 설명하면:
  1. Accelerator 클래스를 초기화할 때 log_with="wandb"를 전달합니다.
  2. init_trackers를 호출하고 다음을 전달합니다:
    • project_name을 통해 프로젝트 이름.
    • wandb.init()에 전달하려는 모든 매개변수를 init_kwargs의 중첩 dict를 통해 전달합니다.
    • wandb run에 로깅하려는 기타 모든 실험 설정 정보를 config를 통해 전달합니다.
  3. W&B에 로깅하려면 wandb.Run.log() 방법을 사용합니다. step 인수는 선택 사항입니다.
  4. 트레이닝이 끝나면 .end_training()을 호출합니다.

W&B tracker에 액세스하기

Accelerate가 W&B에 로깅한 후에는 tracker가 노출하지 않는 아티팩트, 맞춤형 차트 또는 기타 데이터를 로깅하기 위해 기반이 되는 W&B run 객체에 직접 액세스해야 할 수 있습니다. W&B tracker에 액세스하려면 Accelerator.get_tracker() 방법을 사용하세요. tracker의 .name 속성에 해당하는 문자열을 전달하면 main 프로세스에서 해당 tracker를 반환합니다.
이후에는 wandb run 객체를 평소와 같이 사용할 수 있습니다:
Accelerate에 내장된 tracker는 올바른 프로세스에서 자동으로 실행되므로, tracker가 메인 프로세스에서만 실행되도록 되어 있다면 별도 처리 없이도 자동으로 그렇게 동작합니다.Accelerate의 래핑을 완전히 제거하려면 다음과 같이 같은 결과를 얻을 수 있습니다.

Accelerate 아티클

W&B와 함께 Accelerate를 사용하는 더 심층적인 워크스루는 다음 아티클을 참조하세요.