TROISINH
BreakthroughsTraining Efficiency

PEFT — Fine-tune LLM khổng lồ chỉ với 0.01% parameters: LoRA, Adapters, Prefix Tuning

Không cần 1TB VRAM để fine-tune LLM 100B parameters. PEFT cho phép bạn điều chỉnh mô hình khổng lồ chỉ bằng cách cập nhật 0.01% trọng số qua LoRA, Adapters hay Prefix Tuning — giảm memory từ terabyte xuống gigabyte mà vẫn giữ 99.9% hiệu suất.

Fine-tuning LLM từng là đặc quyền của các lab có hàng nghìn GPU. Với một mô hình 175B parameters, bạn cần hơn 1TB VRAM chỉ để lưu trọng số và optimizer states — hoàn toàn không thể thực hiện trên phần cứng thông thường. Parameter-Efficient Fine-Tuning (PEFT) phá vỡ rào cản này bằng cách đóng băng toàn bộ mô hình pretrained và chỉ huấn luyện các "module nhỏ" bên ngoài, giảm memory xuống 99% trong khi vẫn đạt chất lượng tương đương full fine-tuning.

Vấn đề

Full fine-tuning của large language models gặp ba rào cản không thể vượt qua đối với đa số developer:

Bức tường bộ nhớ GPU: Một mô hình 100B parameters ở định dạng FP16 cần 200GB VRAM chỉ để lưu weights. Thêm vào đó, optimizer Adam yêu cầu gấp đôi lượng bộ nhớ cho momentum và variance (400GB nữa), cộng với gradients và activations. Tổng cộng bạn cần hơn 1TB VRAM cho một model — con số chỉ có trong data center hyperscale, không phải workstation hay even A100 80GB.

Catastrophic forgetting và checkpoint khổng lồ: Khi fine-tune toàn bộ weights, mô hình dễ quên kiến thức pretrained gốc (catastrophic forgetting). Hơn nữa, mỗi task cần một bản sao đầy đủ 350GB+ weights, khiến việc triển khai multi-task trở thành cơn ác mộng lưu trữ. Muốn chạy 10 task khác nhau? Chuẩn bị 3.5TB disk space.

Khả năng tiếp cận: Các phương pháp như ZeRO hay Tensor Parallelism giúp train model lớn hơn, nhưng vẫn đòi hỏi hàng chục GPU và kiến thức distributed systems phức tạp. PEFT sinh ra để giải quyết chính điểm yếu này: làm sao để một developer với single GPU 24GB có thể điều chỉnh LLaMA 70B cho domain riêng?

Ý tưởng cốt lõi

Bạn không cần thay đổi toàn bộ bộ não — chỉ cần lắp thêm "kính lọc" để nó nhìn thấy task theo cách mới.

Đây là "aha moment" của PEFT: Các mô hình over-parameterized (175B params) thực chất không sử dụng toàn bộ không gian chiều của chúng. Nghiên cứu từ Aghajanyan et al. (2020) chỉ ra rằng các giải pháp tối ưu cho một task cụ thể nằm trên một "manifold" (đa tạp) có số chiều thấp hơn rất nhiều so với không gian weights gốc — giống như một tờ giấy crumpled nằm trong nhà kho rộng lớn. Thay vì xây dựng lại toàn bộ nhà kho, ta chỉ cần vẽ lại đường nét trên tờ giấy đó.

PEFT cung cấp ba cách để "vẽ đường nét" này, từ đơn giản đến linh hoạt:

LoRA (Low-Rank Adaptation): Thay vì cập nhật ma trận trọng số WW (kích thước d×kd \times k), LoRA chèn thêm hai ma trận nhỏ BB (d×rd \times r) và AA (r×kr \times k) với rank rmin(d,k)r \ll \min(d,k) (thường r=8r=8 đến 6464). Công thức đơn giản: W=W+BAW' = W + BA. Trong quá trình training, WW đông cứng (frozen), chỉ AABB được cập nhật. Khi inference, bạn có thể merge BABA vào WW để không tốn overhead — hoặc giữ riêng để chuyển đổi giữa các task chỉ bằng cách swap adapter 10MB thay vì load lại 140GB model.

Adapters: Thêm các "bottleneck" networks nhỏ (thường down-project xuống 64 dimensions rồi up-project lại) giữa các transformer layers. Giống như lắp thêm bộ lọc màu trên camera — ảnh gốc không đổi, nhưng cách diễn giải thay đổi. Adapters chỉ chiếm 2-4% parameters nhưng đủ để tái diễn giải (reinterpret) các representation đã frozen cho task mới.

Prefix Tuning: Thay vì đụng chạm weights, hãy thêm 10-100 "virtual tokens" learnable vào đầu sequence — nhưng chỉ inject vào Key và Value của attention layers. Đây là "soft prompts": thay vì viết prompt dài dòng để khai thác kiến thức sẵn có, bạn dạy mô hình cách "tìm kiếm" kiến thức đó thông qua các vector trung gian. Giống như gắn thêm đường ống dẫn nước vào kho dữ liệu khổng lồ mà không cần xây lại kho.

That's it. PEFT không phải là "training lại model nhỏ hơn" — đó là việc học cách điều khiển một cái máy khổng lồ bằng một bộ điều khiển tý hon. Mô hình gốc chứa "tri thức thế giới" (world knowledge); các module PEFT là "cơ cấu lái" (steering mechanism) chỉ hướng tri thức đó vào output mong muốn.

Tại sao nó hoạt động

Giả thuyết Intrinsic Dimensionality: Mạng neural over-parameterized có động thái học tập tập trung trong không gian con (subspace) có chiều thấp. Khi fine-tune, gradient updates thực sự chỉ nằm trong một không gian con với số chiều r2001000r \approx 200-1000 — rất nhỏ so với 175B parameters. LoRA khai thác điều này bằng cách giả định ΔW\Delta W (thay đổi cần thiết) có thể phân tích thành tích của hai ma trận thấp hạng: ΔWBA\Delta W \approx BA.

Về mặt toán học, BBAA học cách tái tạo thành phần quan trọng của gradient mà không cần lưu toàn bộ ma trận ΔW\Delta W. Khi rank rr đủ lớn (thường 16-64 cho các task thông thường), BABA có thể capture >99% thông tin cần thiết từ full-rank update.

Adapter như Feature Re-interpretation: Trong transformer, early layers học syntax, late layers học semantics. Adapters không cần học lại những điều này — chúng chỉ cần "dịch" representation từ không gian pretrained sang không gian task-specific. Kiến trúc bottleneck (nhỏ ở giữa) ép adapter học các biểu diễn compact, transferable thay vì overfit vào noise của dataset nhỏ.

Prefix như Learnable Retrieval: Attention mechanism là soft lookup table. Bằng cách prepend các key-value learnable vào đầu, bạn tạo ra "search queries" cố định luôn trỏ đến vùng kiến thức cần thiết trong frozen model. Điều này tận dụng hiệu quả kiến trúc attention đã có mà không cần thay đổi weights — giống như thêm bookmark vào sách thư viện thay vì viết lại sách.

Ý nghĩa thực tế

Hiệu quả memory vượt trội: Với LoRA rank 16 trên LLaMA-65B, bạn chỉ cần huấn luyện ~800MB parameters thay vì 130GB — giảm 99.4% memory footprint cho optimizer states. Kết hợp với QLoRA (4-bit quantization), bạn có thể fine-tune 65B model trên single RTX 4090 24GB — điều impossible chỉ một năm trước.

Tốc độ và storage: Checkpoints PEFT thường chỉ 10-50MB (ví dụ: LoRA adapter cho T0-3B chỉ 3MB so với 40GB full model). Bạn có thể lưu 1000 task variants trên laptop thay vì một model duy nhất. Training throughput tăng 3-4× nhờ gradient checkpointing của frozen weights.

Thực tiễn triển khai:

  • Hugging Face PEFT: Thư viện chuẩn hỗ trợ LoRA, Prefix Tuning, Adapters cho mọi architecture.
  • OpenAI: Được báo cáo dùng PEFT cho GPT-3.5 customization (fine-tuning API).
  • Stable Diffusion: Cộng đồng sử dụng LoRA rộng rãi để train character/style với 100MB data.
  • Enterprise: DPO kết hợp PEFT cho alignment mà không cần RL infrastructure phức tạp.

Giới hạn cần biết:

  • Không tạo capability mới: PEFT chỉ "steer" kiến thức có sẵn. Nếu base model chưa bao giờ thấy ngôn ngữ X, LoRA không thể dạy nó từ đầu — cần full fine-tuning hoặc pretraining.
  • Latency inference: Adapters thêm 1-2% overhead computation (5-10% nếu không merge LoRA weights).
  • Hyperparameter sensitivity: Rank rr và scaling factor α\alpha cần tune. Rank quá thấp (r=1) mất capacity; rank quá cao (r=256+) gần như full fine-tuning, mất lợi ích PEFT.
  • Domain shift lớn: Trên các domain cực kỳ khác biệt (ví dụ: fine-tune LLM tiếng Anh sang ngôn ngữ low-resource chưa từng thấy), PEFT thường underperform so với full fine-tuning.

Đào sâu hơn

Paper gốc:

  • "LoRA: Low-Rank Adaptation of Large Language Models" (Hu et al., 2021) — arXiv:2106.09685 — nền tảng toán học của low-rank updates.
  • "Prefix-Tuning: Optimizing Continuous Prompts for Generation" (Li & Liang, 2021) — arXiv:2101.00190 — soft prompts và attention conditioning.
  • "Parameter-Efficient Transfer Learning for NLP" (Houlsby et al., 2019) — arXiv:1902.00751 — Adapter architecture ban đầu.

Cùng cụm (Training Efficiency):

  • QLoRA — Kết hợp 4-bit quantization với LoRA để fine-tune 65B trên GPU 24GB.
  • DPO — Alignment không cần reward model, thường dùng chung với PEFT cho domain adaptation.
  • ZeRO — Shard optimizer state khi bạn thực sự cần full fine-tuning distributed.
  • Gradient Accumulation — Giả lập batch lớn khi VRAM nhỏ, complement với PEFT.
  • Tensor Parallelism & Pipeline Parallelism — Khi PEFT không đủ và bạn cần scale lên multi-GPU cho full fine-tuning.

Đọc tiếp:

  • RLHF Basics — Hiểu alignment context để thấy vì sao PEFT quan trọng cho RLHF ở quy mô lớn.
  • Training at Scale — Nguyên lý distributed training giúp hiểu rõ hơn bối cảnh PEFT ra đời.

On this page