LoRA là gì?
Low-Rank Adaptation — kỹ thuật fine-tune model lớn tiết kiệm 100-1000× resource so với fine-tune toàn bộ.
LoRA (Low-Rank Adaptation — Thích nghi hạng thấp) là kỹ thuật fine-tune model lớn (LLM, diffusion model) bằng cách CHỈ học một số ít parameter mới, đóng băng phần lớn model gốc. Tiết kiệm RAM 3-10×, disk space 100-1000×.
Vấn đề LoRA giải quyết
Fine-tune đầy đủ Llama 70B cần:
- ~280GB GPU RAM (chỉ riêng weights)
- File output: 280GB cho mỗi version
- Khó share, khó deploy nhiều version
→ Quá đắt cho cá nhân và startup.
Ý tưởng LoRA
Thay vì sửa toàn bộ ma trận trọng số W, LoRA học 2 ma trận nhỏ A và B sao cho:
W_new = W + A × B (A và B nhỏ hơn W rất nhiều)
A × B là “delta” cộng vào weight gốc. Vì A, B rank thấp nên tổng số parameter cần học giảm 100-1000 lần.
Khi inference: cộng delta vào weight gốc → có model fine-tuned. Khi muốn version khác → load delta khác.
Lợi ích
| Yếu tố | Full fine-tune | LoRA |
|---|---|---|
| GPU RAM khi train | 280GB+ | 30-80GB |
| Output file size | 280GB | 50-500MB |
| Train time | Tuần | Giờ |
| Số version giữ | Khó | Dễ (mỗi version vài trăm MB) |
Use case thực tế
Cá nhân hóa LLM
Fine-tune nhẹ Llama theo phong cách viết của bạn → file LoRA 100MB, dùng làm “personal assistant”.
Domain specialization
Fine-tune cho ngành y/luật/tài chính từ Llama base → LoRA cho mỗi domain.
Style cho Stable Diffusion
Train LoRA cho phong cách art riêng (anime, oil painting, photo style cụ thể) → file 50-200MB. Cộng đồng share hàng nghìn LoRA trên Civitai.
Character LoRA
Train LoRA học mặt 1 nhân vật/người cụ thể → mọi ảnh sinh ra đều có character đó.
QLoRA — biến thể phổ biến
QLoRA = Quantized LoRA:
- Quantize model gốc xuống 4-bit
- Áp dụng LoRA trên top
- → Train được Llama 70B trên 1 GPU 24-48GB!
Là kỹ thuật phổ biến nhất để hobbyist fine-tune model lớn.
Hạn chế
- Không thay đổi mạnh được hành vi cốt lõi — chỉ điều chỉnh nhẹ
- Có thể catastrophic forget kiến thức cũ nếu data fine-tune lệch nhiều
- Quality < full fine-tune ~5-10% trên benchmark
→ Cho 90% use case là đủ tốt. Full fine-tune chỉ cần khi đẩy SOTA.
Tools
- HuggingFace PEFT — package chính cho LoRA
- Axolotl — wrapper dễ dùng
- Unsloth — tối ưu speed 2-5×
- Kohya_ss — Stable Diffusion LoRA training UI