왜 LoRA 가 존재하는가
7B-parameter LLM 의 full fine-tuning 이 task 당 update 된 7B parameter 저장 — weight 만 14GB. LoRA (Low-Rank Adaptation, Hu et al. 2021) 가 original weight freeze 하고 각 linear layer 옆에 작은 trainable low-rank matrix 추가. 그 layer 의 fine-tuned 'update' 가 W' = W + (BA) 인데 A: [d, r] 와 B: [r, d] 가 r << d.
결과: 0.1% 정도 추가 parameter train, full fine-tuning 과 comparable accuracy, base model 다시 load 없이 LoRA adapter swap in/out 가능. 개인 LLM fine-tuning 을 feasible 하게 만든 기술.
QLoRA — quantized base 위 LoRA
QLoRA (Dettmers et al., 2023) 가 frozen base model 을 4-bit quantized 형태로 유지하고 LoRA adapter 를 BF16 으로 train. 결과: 70B model 이 8 개가 아니라 single 80GB H100 에서 fine-tune. 개인과 small team 에 진지한 LLM fine-tuning 을 feasible 하게 만든 거.
PEFT 라이브러리
Hugging Face peft 라이브러리가 LoRA, QLoRA, prefix tuning, prompt tuning, IA3 등을 uniform API 로 구현. 어떤 pretrained model 이든 get_peft_model(model, lora_config) 로 wrap, 보통 train, adapter (small file) 저장, 어디서든 load.