Hugging Face가 PEFT 라이브러리를 통해 대규모 언어 모델의 파인튜닝을 학습 가능 파라미터 0.19%로 제한하면서 40GB 체크포인트를 19MB로 감소
Parameter-Efficient Fine-Tuning using 🤗 PEFT
AI 요약
Context
전체 파인튜닝 방식은 모델 크기만큼의 체크포인트를 각 다운스트림 태스크마다 저장해야 하므로 저장소 비용이 증가한다. 예를 들어 bigscience/mt0-xxl 모델은 40GB의 저장 공간을 차지하며, 각 다운스트림 데이터셋마다 별도의 40GB 체크포인트가 필요하다. 또한 일반 소비자 하드웨어에서는 메모리 제약으로 인해 전체 파인튜닝이 불가능하다.
Technical Solution
- LoRA(Low-Rank Adaptation)를 적용하여 기존 모델의 대부분 파라미터는 동결하고 저랭크 행렬만 학습: r=8, lora_alpha=32, lora_dropout=0.1 설정으로 구성
- 🤗 Transformers와 🤗 Accelerate를 통합하여 LoRA, Prefix Tuning, Prompt Tuning, P-Tuning v2 등 여러 PEFT 방식을 일관된 API로 제공
- get_peft_model() 함수로 기존 Transformers 모델을 감싸 PEFT 방식 적용: 기존 학습 루프는 변경 없음
- 파인튜닝 완료 후 save_pretrained()로 증분 가중치만 저장하여 용량 최소화
- DeepSpeed integration과 INT8 양자화를 지원하여 Google Colab(11GB GPU) 같은 제한된 환경에서 대규모 모델 학습 가능
Impact
bigscience/mt0-large 모델 파인튜닝 시 전체 1,231,940,608개 파라미터 중 2,359,296개(0.19%)만 학습 가능. bigscience/T0_3B 모델을 twitter_complaints 데이터셋으로 LoRA 파인튜닝한 체크포인트는 adapter_config.json과 adapter_model.bin 2개 파일로 총 19MB 크기로 저장되며, 전체 파인튜닝의 40GB에 비해 용량을 대폭 감소.
Key Takeaway
PEFT 방식은 전체 파인튜닝과 비교 가능한 성능을 달성하면서 학습 가능 파라미터를 0.19% 수준으로 제한함으로써 저장소, 계산 비용, 메모리를 획기적으로 절감한다. 같은 기본 모델 위에 작은 어댑터만 추가하여 여러 다운스트림 태스크를 동시에 지원할 수 있다는 것이 핵심 설계 가치다.
실천 포인트
3B~13B 규모의 언어 모델을 소비자 GPU(11GB VRAM)로 파인튜닝해야 하는 환경에서 🤗 PEFT의 LoRA를 적용하면 DeepSpeed zero-stage-3 오프로드와 결합하여 학습 가능 파라미터를 0.19% 수준으로 제한할 수 있다. 이를 통해 전체 파인튜닝 대비 40배 이상의 스토리지 절감(40GB → 19MB)을 달성하면서 기존 학습 루프를 거의 변경하지 않고 구현 가능하다.