Fine-tuning & Model Customization
Trang chủ / Module 1
🧭 Module 1 / 14 · 3-4 ngày

Fine-tuning hay không? — Khung quyết định

Khi nào fine-tuning thực sự đáng làm, khi nào Prompting/RAG vẫn tốt hơn, và chi phí thật sự của việc tự huấn luyện model.

Chiến lượcRa quyết định
📌 Vì sao module này quan trọng

Đây là câu hỏi quan trọng nhất của cả khoá học, và cũng là câu hỏi bị trả lời sai nhiều nhất. Ở khoá AI Engineer Master Course (Module 16), fine-tuning được xếp vào nhóm "đừng đầu tư quá nhiều thời gian" cho người mới — điều đó vẫn đúng. Khoá này tồn tại cho tình huống khác: khi bạn đã thử prompt engineering, RAG, và vẫn có một nhu cầu cụ thể mà chúng không giải quyết được triệt để. Bắt đầu sai chỗ (fine-tune khi lẽ ra chỉ cần RAG tốt hơn) là cách nhanh nhất để đốt hàng chục giờ và hàng trăm USD compute mà không thu được gì.

🎯 Mục tiêu học tập

  • Áp dụng đúng thứ tự ưu tiên: Prompting → RAG → Fine-tuning, thay vì nhảy thẳng vào fine-tuning
  • Phân biệt 2 loại nhu cầu fine-tuning giải quyết được: thay đổi HÀNH VI/PHONG CÁCH và thay đổi KIẾN THỨC KHÔNG PHÙ HỢP
  • Ước lượng được chi phí thật (thời gian, compute, dữ liệu, vận hành lâu dài) trước khi bắt đầu
  • Nhận diện các dấu hiệu cho thấy fine-tuning là lựa chọn đúng

Thứ tự ưu tiên bắt buộc: Prompting → RAG → Fine-tuning

Ba kỹ thuật này không cạnh tranh nhau — chúng giải quyết ba loại vấn đề khác nhau, và có chi phí tăng dần rất nhanh:

Kỹ thuậtGiải quyết vấn đề gìChi phí & thời gian
Prompt designModel biết cách làm nhưng cần hướng dẫn rõ hơn về định dạng/ngữ cảnh của lượt hỏi nàyPhút → giờ
RAGModel thiếu thông tin/kiến thức cụ thể mà nó không được huấn luyện sẵnNgày → tuần
Fine-tuningModel cần thay đổi hành vi/phong cách/định dạng đầu ra một cách nhất quán ở quy mô lớn, hoặc cần một model nhỏ/rẻ/nhanh chuyên biệt cho một tác vụ hẹpTuần → tháng, cần dữ liệu huấn luyện chất lượng
⚠️ Ngộ nhận phổ biến nhất

"Tôi muốn AI biết về dữ liệu công ty tôi → tôi cần fine-tune." Sai trong hầu hết trường hợp. Đó là bài toán RAG. Fine-tuning không phải cách hiệu quả để "nhét kiến thức" vào model — model có xu hướng quên/nhiễu kiến thức cũ khi fine-tune thêm kiến thức mới (catastrophic forgetting), và không có cơ chế trích dẫn nguồn như RAG.

2 loại nhu cầu fine-tuning thực sự giải quyết tốt

  • Thay đổi hành vi/phong cách nhất quán: chuẩn hoá giọng văn thương hiệu cho hàng triệu request, luôn trả lời theo một định dạng JSON cực kỳ đặc thù mà prompt không ép được 100%, học theo phong cách reasoning/coding riêng của một codebase cụ thể.
  • Cần model nhỏ/rẻ/nhanh cho một tác vụ hẹp đã có nhiều dữ liệu: phân loại văn bản, trích xuất thông tin có cấu trúc, một tác vụ dịch thuật chuyên ngành — nơi một model 7B fine-tune tốt có thể đạt chất lượng gần bằng model flagship nhưng rẻ hơn 20-50 lần và nhanh hơn nhiều lần khi chạy ở quy mô lớn.

Nếu nhu cầu của bạn không rơi vào 1 trong 2 nhóm trên, gần như chắc chắn RAG hoặc prompt design tốt hơn là lựa chọn đúng.

Chi phí thật của Fine-tuning (thứ hay bị đánh giá thấp)

Chi phí compute lúc huấn luyện thường không phải phần tốn kém nhất — với LoRA/QLoRA (Module 4), một lần huấn luyện có thể chỉ tốn vài USD đến vài chục USD trên GPU thuê theo giờ. Chi phí thật nằm ở:

  • Chuẩn bị dữ liệu huấn luyện chất lượng cao (Module 5) — thường chiếm 60-70% tổng thời gian dự án, đòi hỏi quy trình đánh giá/lọc nghiêm ngặt.
  • Vận hành lâu dài: mỗi khi base model có phiên bản mới tốt hơn, bạn phải quyết định fine-tune lại hay tiếp tục dùng bản cũ — model đã fine-tune không tự động "nâng cấp" như khi gọi API model cloud luôn có phiên bản mới nhất.
  • Đánh giá & bảo trì chất lượng (Module 12): cần bộ eval riêng để đảm bảo fine-tune không làm suy giảm năng lực tổng quát của model (regression trên các tác vụ ngoài phạm vi huấn luyện).
  • Hạ tầng serving (Module 13): nếu tự host, bạn chịu trách nhiệm vận hành GPU serving 24/7 thay vì chỉ gọi API — chi phí vận hành, giám sát, scaling đổ lên vai bạn.

Checklist tự đánh giá trước khi bắt đầu

  1. Đã thử prompt engineering có cấu trúc và vẫn không đạt yêu cầu? (nếu chưa thử kỹ → dừng lại, quay lại Module 4 khoá AI Engineer)
  2. Nếu vấn đề liên quan đến "model không biết X" — đã thử RAG chưa? (nếu chưa → đó gần như chắc chắn là hướng đúng, không phải fine-tuning)
  3. Có sẵn (hoặc có khả năng tạo ra) tối thiểu vài trăm đến vài nghìn mẫu dữ liệu huấn luyện chất lượng cao, đại diện đúng cho phân phối dữ liệu thực tế?
  4. Có kế hoạch đánh giá rõ ràng để biết model fine-tune thực sự tốt hơn baseline, không chỉ "cảm giác tốt hơn"?
  5. Đã tính đến chi phí vận hành dài hạn (serving, cập nhật, re-training định kỳ)?

Nếu trả lời "có" cho cả 5 câu — bạn đã sẵn sàng cho phần còn lại của khoá học này.

🏋️ Bài tập thực hành

Viết bản phân tích quyết định (decision memo)

Chọn 1 bài toán thật (từ công việc hoặc dự án portfolio ở khoá AI Engineer). Viết một memo ngắn (1 trang) trả lời: vấn đề là gì, tại sao prompt/RAG chưa đủ (kèm bằng chứng thử nghiệm thực tế, không chỉ suy đoán), nhu cầu rơi vào nhóm "hành vi/phong cách" hay "model nhỏ chuyên biệt", và ước tính sơ bộ chi phí dữ liệu + compute + vận hành. Đây là kỹ năng bạn sẽ cần dùng thật khi thuyết phục team/sếp đầu tư vào fine-tuning.

📚 Tài nguyên học tập

✅ Tự đánh giá hoàn thành

  • Giải thích được thứ tự ưu tiên Prompting → RAG → Fine-tuning và lý do
  • Phân biệt được 2 loại nhu cầu fine-tuning giải quyết tốt
  • Liệt kê được đầy đủ các thành phần chi phí thật (không chỉ compute lúc train)
  • Đã viết decision memo cho 1 bài toán thật của riêng mình