https://huggingface.co/docs/accelerate/index
최근 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 |