TungDaDev's Blog

rag vs fine-tuning: bản đồ quyết định

Rag vs finetuning decision.jpg
Published on
/6 mins read/

RAG giống như việc cho AI mở sách tra cứu trong phòng thi (Open-book exam). Fine-tuning giống như việc bắt AI học thuộc lòng kiến thức vào trong não (Studying for exam). Dùng sai công cụ cho sai mục đích là công thức ngắn nhất dẫn đến thảm họa kỹ thuật.

Một trong những câu hỏi phổ biến nhất mà các Tech Lead và kỹ sư AI nhận được từ ban điều hành là: "Chúng ta có dữ liệu nội bộ của công ty. Bây giờ nên Fine-tune một model riêng hay làm RAG?"

Và một sai lầm chết người mà rất nhiều đội ngũ mắc phải: Họ tin rằng Fine-tuning là cách để "nạp kiến thức mới" vào trong mô hình. Họ thu thập hàng chục ngàn trang tài liệu PDF, chính sách công ty, bỏ ra hàng tuần lễ và hàng chục ngàn USD tiền thuê cụm GPU để train lại một mô hình Llama. Để rồi khi hỏi: "Số điện thoại hotline của chi nhánh Đà Nẵng là gì?", mô hình hoặc là trả lời sai một con số ngẫu nhiên, hoặc là hoàn toàn không biết!

Tại sao lại có nghịch lý đó? Bản chất của Fine-tuning không dùng để ghi nhớ các con số hay dữ liệu sự thật rời rạc (Facts).

Bài viết này sẽ làm sáng tỏ ranh giới giữa RAG, Fine-tuning và Prompt Engineering, cung cấp ma trận quyết định trực quan để bạn chọn đúng kiến trúc ngay từ ngày đầu tiên.


# ẩn dụ kinh điển: open-book vs studying

Để mọi thành viên trong team (từ Dev đến Product Manager) có cùng tiếng nói, hãy sử dụng phép ẩn dụ sau:

  • RAG là "Mở sách tra cứu": Kiến thức nằm bên ngoài mô hình. Mô hình chỉ làm nhiệm vụ đọc đoạn văn bản được cung cấp và tổng hợp lại. Khi chính sách công ty thay đổi lúc 9h sáng, bạn chỉ cần cập nhật file trong cơ sở dữ liệu, 9h01 AI đã trả lời theo chính sách mới mà không cần train lại một giây nào!
  • Fine-tuning là "Rèn luyện phản xạ và phong cách": Thay đổi trực tiếp các trọng số nơ-ron (weights) của mô hình. Nó giúp mô hình học cách nói chuyện như một luật sư, học cách xuất ra JSON chuẩn không thừa một dấu phẩy, hoặc học cách viết code theo chuẩn riêng của công ty.

# ma trận quyết định 2x2 (the decision matrix)

Khi đứng trước một bài toán AI, hãy tự hỏi hai câu hỏi then chốt:

  1. Dữ liệu của bạn có thay đổi liên tục theo thời gian không?
  2. Bạn cần mô hình thay đổi KIẾN THỨC (Knowledge) hay thay đổi PHONG CÁCH / ĐỊNH DẠNG (Behavior / Style)?

Ô số 4: Dùng RAG khi

  • Dữ liệu cập nhật theo ngày, theo giờ (giá cả, tồn kho, tin tức, hợp đồng mới).
  • Bạn bắt buộc phải hiển thị nguồn trích dẫn (Citations & Verification) để con người kiểm tra lại.
  • Bạn muốn loại bỏ tối đa ảo giác (Hallucination) về mặt thông tin số liệu.

Ô số 2: Dùng Fine-Tuning khi

  • Bạn cần mô hình luôn luôn xuất ra một định dạng JSON/XML cực kỳ phức tạp mà prompt thông thường hay bị rớt format.
  • Bạn cần dạy mô hình một ngôn ngữ hiếm, một cú pháp lập trình nội bộ hoặc một hệ thống thuật ngữ y khoa đặc thù.
  • Bạn muốn biến một mô hình nhỏ 7B có phong cách hành xử thông minh ngang một mô hình 70B trong một tác vụ lặp đi lặp lại để giảm chi phí.

# kiến trúc kết hợp tối thượng: rag + specialized slm

Trong các hệ thống Enterprise đỉnh cao, câu trả lời không phải là "RAG hay Fine-tuning", mà là Sự kết hợp hoàn hảo của cả hai:

  1. RAG đóng vai trò cung cấp dữ liệu sự thật khách quan và mới nhất (Ground Truth).
  2. Fine-Tuned SLM (7B) đóng vai trò là bộ não đã được rèn giũa kỹ năng phân tích chuyên sâu, tiếp nhận dữ liệu từ RAG để tạo ra kết quả với tốc độ thần tốc và chi phí tối thiểu.

# tổng kết

Đừng bao giờ bắt đầu một dự án AI bằng việc nghĩ đến Fine-tuning. Thứ tự ưu tiên chuẩn mực của một kỹ sư trưởng luôn luôn là:

\text{Prompt Engineering} \xrightarrow{\text{chưa đủ}} \text{RAG} \xrightarrow{\text{chưa đủ}} \text{RAG + Fine-Tuning}

Bằng cách hiểu rõ điểm mạnh và giới hạn vật lý của từng phương pháp, bạn sẽ tiết kiệm cho doanh nghiệp hàng ngàn giờ làm việc vô ích và đưa sản phẩm AI về đích với độ chính xác cao nhất.


Chỉ là những ghi chép cá nhân với hy vọng mang lại chút giá trị. Nếu thấy hữu ích, đừng ngại chia sẻ cho bạn bè & đồng nghiệp nhé!

Happy coding 😎 👍🏻 🚀 🔥.