Toàn cảnh phương pháp: Full Fine-tuning vs PEFT
So sánh Full Fine-tuning, và các kỹ thuật PEFT (LoRA, Adapter, Prefix Tuning, Prompt Tuning) — đánh đổi chi phí/hiệu năng.
Trước khi đi sâu vào LoRA/QLoRA (Module 4) — kỹ thuật chiếm phần lớn thực tế ứng dụng — cần thấy bức tranh toàn cảnh các phương pháp fine-tuning và vì sao ngành đã gần như hội tụ về PEFT (Parameter-Efficient Fine-Tuning) cho tuyệt đại đa số trường hợp thay vì Full Fine-tuning.
🎯 Mục tiêu học tập
- Giải thích được Full Fine-tuning là gì và tại sao nó tốn kém với model hiện đại
- Hiểu ý tưởng cốt lõi của PEFT: chỉ huấn luyện một phần nhỏ tham số, đóng băng phần còn lại
- Phân biệt các họ kỹ thuật PEFT chính: Adapter-based, LoRA-family, Prompt/Prefix-based
- Chọn đúng phương pháp theo ràng buộc thực tế (GPU, dữ liệu, mục tiêu)
Full Fine-tuning — cập nhật toàn bộ tham số
Full fine-tuning điều chỉnh toàn bộ hàng tỷ tham số của model. Vấn đề không chỉ là compute lúc train — mà là bộ nhớ GPU: cần lưu weight, gradient, và trạng thái optimizer (Adam optimizer lưu thêm 2 giá trị cho mỗi tham số) cùng lúc, tổng cộng có thể gấp 12-16 lần dung lượng của riêng weight. Một model 7B ở độ chính xác FP16 chiếm ~14GB chỉ riêng weight — full fine-tuning cần >100GB VRAM, vượt xa GPU tiêu dùng, đòi hỏi cụm nhiều GPU trung tâm dữ liệu.
Full fine-tuning vẫn có chỗ đứng: khi cần thay đổi hành vi model ở mức rất sâu và rộng (ví dụ các phòng thí nghiệm lớn huấn luyện model instruction-tuned từ base model), hoặc khi có đủ hạ tầng và dữ liệu ở quy mô lớn. Với tuyệt đại đa số nhu cầu ứng dụng thực tế, đây là lựa chọn thừa mức cần thiết.
PEFT — ý tưởng cốt lõi
Parameter-Efficient Fine-Tuning đóng băng (freeze) toàn bộ weight gốc của model, chỉ thêm vào và huấn luyện một số lượng tham số rất nhỏ (thường 0.1%-1% tổng tham số model). Kết quả: bộ nhớ GPU cần thiết giảm mạnh (không cần lưu gradient/optimizer state cho hàng tỷ tham số đã đóng băng), thời gian huấn luyện nhanh hơn nhiều, và — quan trọng không kém — nguy cơ catastrophic forgetting (model quên năng lực tổng quát đã học) thấp hơn hẳn vì phần lớn "kiến thức gốc" trong weight đóng băng không bị động đến.
3 họ kỹ thuật PEFT chính
| Họ kỹ thuật | Cách hoạt động | Đại diện tiêu biểu |
|---|---|---|
| LoRA-family | Thêm 2 ma trận nhỏ (low-rank) song song với weight gốc, chỉ huấn luyện 2 ma trận này (chi tiết ở Module 4) | LoRA, QLoRA, DoRA |
| Adapter-based | Chèn thêm các khối mạng nhỏ (bottleneck layer) xen giữa các layer gốc | Houlsby Adapter, Parallel Adapter |
| Prompt/Prefix-based | Không đổi weight nào — học thêm một chuỗi "soft prompt" (vector liên tục, không phải từ thật) được thêm vào đầu input/mỗi layer | Prefix Tuning, P-Tuning, Prompt Tuning |
LoRA-family hiện là lựa chọn phổ biến nhất trong thực tế (2024-2026) nhờ cân bằng tốt nhất giữa chất lượng, chi phí, và tính linh hoạt khi triển khai (có thể "gộp" (merge) LoRA vào weight gốc sau khi train, hoặc giữ tách rời để chạy nhiều LoRA adapter khác nhau trên cùng 1 base model — xem Module 13).
Bảng quyết định nhanh
| Tình huống | Nên chọn |
|---|---|
| GPU cá nhân/thuê theo giờ, dữ liệu vài trăm-vài nghìn mẫu | QLoRA (Module 4) |
| Có cụm GPU lớn, cần thay đổi hành vi model rất sâu, dữ liệu hàng triệu mẫu | Full Fine-tuning |
| Cần chạy hàng chục "phiên bản chuyên biệt" khác nhau trên cùng 1 base model để tiết kiệm chi phí serving | LoRA (giữ tách rời nhiều adapter) |
| Chỉ cần điều chỉnh nhẹ hành vi, ưu tiên tốc độ thử nghiệm nhanh | Prompt/Prefix Tuning |
🏋️ Bài tập thực hành
Với 1 model 7B, tự tính (hoặc dùng công cụ ước lượng) bộ nhớ GPU cần thiết cho: (1) inference thuần (chỉ load weight FP16), (2) Full fine-tuning (weight + gradient + optimizer state ở FP16/FP32), (3) LoRA fine-tuning (weight gốc đóng băng ở FP16 + phần LoRA nhỏ có gradient). Trình bày kết quả dưới dạng bảng so sánh, giải thích vì sao chênh lệch lớn đến vậy.
📚 Tài nguyên học tập
-
Hugging Face — PEFT documentationTài liệu chính thức thư viện PEFT, hỗ trợ nhiều kỹ thuậtDocs
-
Lialin et al. — Scaling Down to Scale Up (survey PEFT)Bài khảo sát tổng quan các phương pháp PEFTPaper
✅ Tự đánh giá hoàn thành
- Giải thích được vì sao Full Fine-tuning tốn bộ nhớ GPU nhiều hơn nhiều lần so với inference thuần
- Phân biệt được 3 họ kỹ thuật PEFT chính và ví dụ tiêu biểu mỗi họ
- Chọn đúng phương pháp cho ít nhất 2 tình huống thực tế khác nhau