blog.dopana

Back

Parameter-Efficient Fine-Tuning (PEFT), đặc biệt là LoRA (Low-Rank Adaptation), đã làm thay đổi hoàn toàn cách chúng ta tinh chỉnh các mô hình lớn mà không cần cụm máy chủ đắt đỏ.

Cơ chế hoạt động của LoRA#

Thay vì cập nhật trực tiếp ma trận trọng số WRd×kW \in \mathbb{R}^{d \times k}, LoRA cố định ma trận gốc W0W_0 và bổ sung hai ma trận hạng thấp AABB:

W=W0+ΔW=W0+BAW = W_0 + \Delta W = W_0 + B \cdot A

Với ARr×kA \in \mathbb{R}^{r \times k}BRd×rB \in \mathbb{R}^{d \times r} (rmin(d,k)r \ll \min(d, k)), số lượng tham số cần huấn luyện giảm đi hàng trăm lần.

Triển khai LoRA với Hugging Face PEFT#

lora_config.py
from peft import LoraConfig, get_peft_model

peft_config = LoraConfig(
    r=8,
    lora_alpha=16,
    target_modules=["q_proj", "v_proj"], # [!code focus]
    lora_dropout=0.05,
    bias="none",
    task_type="CAUSAL_LM"
)

# model = get_peft_model(model, peft_config)
python

Ưu điểm của LoRA#

  • Tiết kiệm vRAM: Giảm vRAM bộ nhớ huấn luyện tới 60-70%.
  • Dễ dàng chia sẻ: Chỉ cần lưu trữ các checkpoint adapter cực nhẹ (vài MB đến vài chục MB).
  • Không tăng latency khi inference: Có thể merge ma trận BAB \cdot A trực tiếp vào W0W_0 khi deploy.

Tài liệu tham khảo#