https://huggingface.co/docs/accelerate/index
Accelerate
Concepts and fundamentals
huggingface.co
최근 LLM 모델을 파인튜닝할 기회가 생겨 여러 가지 시도해보고 있습니다. 그중 HuggingFace의 Accelerate라는 라이브러리가 간단한 사용방법으로 Pytorch Distributed Training을 할 수 있어, 사용해 보았습니다.
먼저 Accelerate를 설치합니다.
pip install accelerate
Accelerate는 Config 파일을 사용해서 동작하는데, Config 파일을 설정하려면 다음과 같이 커맨드라인을 입력합니다.
accelerate config
Huggingface Language Modeling 코드를 사용하여 GPT-2를 Fully Sharded Data Parallel로 훈련해보겠습니다.
Config 파일은 아래와 같이 설정해야 하는데, 홈 폴더 아래의 .cache/huggingface/accelerate/default_config.yaml를 직접 수정해 주셔도 됩니다. distributed_type에 FSDP, fsdp_config가 잘 작성되어 있는 걸 볼 수 있습니다.
compute_environment: LOCAL_MACHINE deepspeed_config: {} distributed_type: FSDP fsdp_config: min_num_params: 2000 offload_params: false sharding_strategy: 1 machine_rank: 0 main_process_ip: null main_process_port: null main_training_function: main mixed_precision: 'no' num_machines: 1 num_processes: 2 use_cpu: false
아래와 같이 accelerate 라이브러리를 사용한 커맨드라인을 실행해서 GPT-2 Large 모델을 훈련해 봅니다.
export BS=#`try with different batch sizes till you don't get OOM error, #i.e., start with larger batch size and go on decreasing till it fits on GPU` time accelerate launch run_clm_no_trainer.py \ --model_name_or_path gpt2-large \ --dataset_name wikitext \ --dataset_config_name wikitext-2-raw-v1 \ --per_device_train_batch_size $BS --per_device_eval_batch_size $BS --num_train_epochs 1 --block_size 12

다음에는 직접 쓴 코드로 Accelerate를 사용해서 파인튜닝을 해보도록 하겠습니다.
참고:
https://huggingface.co/docs/accelerate/basic_tutorials/launch
https://huggingface.co/blog/pytorch-fsdp
'NLP' 카테고리의 다른 글
LLM 파인튜닝을 위한 GPU 분산 학습 정복하기 PART 2 (0) | 2023.08.07 |
---|---|
Evaluating and Debugging Generative AI: W&B에서 LLM 모니터링 쉽게 하기! (51) | 2023.08.03 |
대규모 언어 모델(LLM)과 Prompt Engineering 이해하기 (8) | 2023.07.31 |
LLM 파인튜닝을 위한 GPU 분산 학습 정복하기 PART 1 (2) | 2023.07.27 |
PEFT를 활용한 PLM 파인튜닝 가이드 (0) | 2023.07.21 |