Fine-tuning là quá trình tiếp tục train một model pre-trained trên dataset chuyên biệt của bạn để model "nhớ" phong cách, format, hoặc kiến thức domain. Khác pre-training (train từ đầu trên raw text) và prompt engineering (không đụng vào weights).
Các loại: Full fine-tuning update toàn bộ weights; PEFT (LoRA, QLoRA, adapter) chỉ update một phần nhỏ — nhẹ và rẻ hơn nhiều; Instruction tuning / SFT dạy model theo chỉ dẫn; RLHF/DPO căn chỉnh với preference người dùng.
Quyết định trong thực tế (thứ tự thử):
1. Prompt engineering — luôn thử trước. Rẻ, nhanh iterate. Đủ cho ~80% use case.
2. RAG — khi cần knowledge cập nhật, domain-specific, tránh hallucination. Dữ liệu thay đổi thường xuyên.
3. Fine-tuning — khi cần: (a) format/style nhất quán (output JSON rất cụ thể, giọng văn thương hiệu); (b) task chuyên biệt model base làm kém (medical NER, legal classification); (c) giảm chi phí/latency — fine-tune model nhỏ đạt chất lượng model lớn với prompt dài, ít token hơn; (d) tool/function calling cho tool set lớn.
Kết hợp: fine-tune cho behavior (format, style, tool use) + RAG cho knowledge → pipeline chuẩn trong enterprise.
Không fine-tune khi: dữ liệu <1000 ví dụ chất lượng, base model GPT-4/Claude 3.5 đã đủ tốt, knowledge thay đổi nhanh (retrain liên tục rất đắt).