RAG là gì và khi nào cần
Trước khi dựng bất cứ thứ gì, cần hiểu rõ RAG giải quyết vấn đề nào của mô hình ngôn ngữ — và vấn đề nào nó không giải quyết được.
Ba giới hạn của LLM
Một LLM học từ dữ liệu có đến một thời điểm nhất định, rồi “đóng băng”. Khi đưa vào sản phẩm, ba giới hạn lộ ra gần như ngay lập tức:
- Không biết dữ liệu riêng. Quy chế công ty, hợp đồng, tài liệu sản phẩm, ticket hỗ trợ… chưa bao giờ nằm trong dữ liệu huấn luyện.
- Kiến thức lỗi thời. Bảng giá đổi tuần trước, chính sách mới ban hành hôm qua — mô hình không thể biết.
- Bịa (hallucination) và không có nguồn. Khi không chắc, mô hình vẫn có thể trả lời trôi chảy và sai, và người dùng không có cách nào kiểm chứng.
Ý tưởng của RAG
Retrieval-Augmented Generation (Lewis và cộng sự, 2020) tách việc “biết” ra khỏi mô hình. Thay vì mong mô hình nhớ mọi thứ, hệ thống tìm những đoạn tài liệu liên quan tới câu hỏi, đưa chúng vào prompt, rồi yêu cầu mô hình trả lời chỉ dựa trên các đoạn đó.
Kết quả mong đợi:
- Trả lời được về dữ liệu riêng và mới nhất — chỉ cần cập nhật kho tài liệu, không cần huấn luyện lại.
- Câu trả lời kèm trích dẫn, người dùng tự kiểm tra được.
- Kiểm soát được quyền truy cập: mỗi người chỉ được truy xuất những tài liệu mình được xem.
Hai pha: lập chỉ mục và truy vấn
Pha lập chỉ mục (indexing) — offline
Pha truy vấn (query) — mỗi câu hỏi
Chất lượng cuối cùng phụ thuộc vào cả hai pha. Một thực tế hay gặp: phần lớn câu trả lời sai không đến từ mô hình sinh, mà vì đoạn tài liệu đúng không được truy xuất — vì vậy chunking, embedding và truy xuất được nói kỹ nhất trong khoá học.
Một ví dụ đầu–cuối
Câu hỏi: Nhân viên thử việc có được làm việc từ xa không?
[Truy xuất] top-3 đoạn từ "Quy định làm việc từ xa v2.1":
[1] "Nhân viên đã hết thời gian thử việc được đăng ký tối đa 2 ngày/tuần..."
[2] "Trong thời gian thử việc, làm việc từ xa cần quản lý trực tiếp phê duyệt từng lần..."
[3] "Đơn đăng ký gửi qua cổng nhân sự trước 17h thứ Sáu..."
[Sinh] Nhân viên thử việc không đăng ký cố định được, nhưng có thể làm việc từ xa
nếu quản lý trực tiếp phê duyệt từng lần [2]. Sau thử việc, tối đa 2 ngày/tuần [1].
RAG, fine-tuning hay context dài?
| RAG | Fine-tuning | Nhét cả tài liệu vào context | |
|---|---|---|---|
| Thêm kiến thức mới | Tốt — cập nhật kho là xong | Kém, tốn công, dễ quên kiến thức cũ | Tốt nếu tài liệu nhỏ |
| Dạy phong cách / định dạng | Hạn chế | Tốt | Hạn chế |
| Trích dẫn nguồn | Tự nhiên | Không | Được, nhưng khó chỉ chính xác |
| Kho tài liệu lớn (GB) | Được | — | Không vừa, đắt |
| Phân quyền theo người dùng | Lọc lúc truy xuất | Không | Phải tự lọc trước |
| Chi phí mỗi câu hỏi | Thấp–vừa | Thấp | Cao khi context dài |