Accelerate documentation
런처
시작하기
튜토리얼
가이드
Accelerate
학습
그라디언트 축적Local SGD낮은 정밀도(FP8) 학습DeepSpeedDeepSpeed를 사용하여 여러 모델 사용DDP 통신 훅Fully Sharded Data ParallelMegatron-LMAmazon SageMakerApple M1 GPUIntel CPUIntel Gaudi컴파일
추론
개념 및 기본 사항
Accelerate의 내부 메커니즘메모리에 대형 모델 로드분산 환경 간 성능 비교작업 실행 및 지연Gradient 동기화FSDP과 DeepSpeedFSDP1과 FSDP2컨텍스트 병렬성시퀀스 병렬성저정밀도 학습 방법TPU에서 학습
참고
You are viewing main version, which requires installation from source. If you'd like
regular pip install, checkout the latest stable version (v1.15.0).
런처
분산 프로세스에서 학습을 시작하기 위한 함수들.
notebook_launcher
accelerate.notebook_launcher
< source >( functionargs = ()num_processes = Nonemixed_precision = 'no'use_port = '29500'master_addr = '127.0.0.1'node_rank = 0num_nodes = 1rdzv_backend = 'static'rdzv_endpoint = ''rdzv_conf = Nonerdzv_id = 'none'max_restarts = 0monitor_interval = 0.1log_line_prefix_template = None )
매개변수
- function (
Callable) — 실행할 학습 함수입니다. 인수를 받는 경우, 첫 번째 인수는 프로세스 실행 인덱스여야 합니다. - args (
Tuple) — 함수에 전달할 인수의 튜플입니다 (함수는*args를 수신합니다). - num_processes (
int, 선택 사항) — 학습에 사용할 프로세스 수입니다. TPU가 사용 가능한 Colab/Kaggle에서는 기본적으로 8로 설정되며, 그렇지 않은 경우 사용 가능한 디바이스 수로 설정됩니다. - mixed_precision (
str, 선택 사항, 기본값"no") —fp16또는bf16인 경우, 멀티 디바이스에서 혼합 정밀도 훈련을 사용합니다. - use_port (
str, 선택 사항, 기본값"29500") — 멀티 디바이스 학습을 시작할 때 프로세스 간 통신에 사용할 포트입니다. - master_addr (
str, 선택 사항, 기본값"127.0.0.1") — 프로세스 간 통신에 사용할 주소입니다. - node_rank (
int, 선택 사항, 기본값 0) — 현재 노드의 랭크입니다. - num_nodes (
int, 선택 사항, 기본값 1) — 학습에 사용할 노드 수입니다. - rdzv_backend (
str, 선택 사항, 기본값"static") — 사용할 rendezvous 방법입니다. 예를 들어 ‘static’(기본값) 또는 ‘c10d’ - rdzv_endpoint (
str, 선택 사항, 기본값"") — rdzv 동기화 저장소의 엔드포인트입니다. - rdzv_conf (
Dict, 선택 사항, 기본값None) — 추가 rendezvous 구성입니다. - rdzv_id (
str, 선택 사항, 기본값"none") — 작업의 고유 실행 ID입니다. - max_restarts (
int, 선택 사항, 기본값 0) — 실패하기 전에 elastic agent가 워커에서 수행할 최대 재시작 횟수입니다. - monitor_interval (
float, 선택 사항, 기본값 0.1) — elastic_agent가 워커를 모니터링하는 데 사용하는 간격(초). - log_line_prefix_template (
str, 선택 사항, 기본값None) — Elastic launch 로깅에 사용되는 접두사 템플릿입니다. PyTorch 2.2.0부터 사용할 수 있습니다.
현재 환경에서 가능한 경우(예: 다중 코어가 있는 TPU) 여러 프로세스 또는 여러 노드를 사용하여 학습 함수를 실행합니다.
이 함수를 사용하려면, 호출하기 전에 노트북 세션에서 장치에 대한 호출이 절대 이루어져서는 안 됩니다. 이미 호출이 이루어진 경우, 노트북을 재시작하고 어떤 셀도 장치 기능을 사용하지 않도록 확인해야 합니다.
환경에서
ACCELERATE_DEBUG_MODE="1"을 설정하면 실제 실행 전에 테스트를 수행하여 해당 호출이 이루어지지 않았는지 확인합니다.
debug_launcher
accelerate.debug_launcher
< source >( functionargs = ()num_processes = 2 )
디버깅 목적으로 CPU에서 여러 프로세스를 사용하여 학습 함수를 실행합니다.
이 함수는 내부 테스트 및 디버깅을 위해 제공되며, 실제 학습에는 사용되지 않습니다. CPU만 사용합니다.