RAG (Retrieval-Augmented Generation) là kỹ thuật cho mô hình AI đi tìm tài liệu liên quan trước, rồi mới trả lời dựa trên đúng phần tài liệu vừa tìm được. Nói gọn: thay vì bắt AI trả lời từ trí nhớ, bạn đưa cho nó tra cứu mở sách — sách ở đây là kho dữ liệu của riêng bạn.
RAG giải quyết vấn đề gì
Một mô hình ngôn ngữ chỉ biết những gì có trong dữ liệu huấn luyện của nó. Điều đó kéo theo hai vấn đề bạn gặp ngay ngày đầu dùng AI cho việc thật.
Nó không biết dữ liệu riêng của bạn. Quy chế nội bộ, bảng giá hiện hành, hồ sơ khách hàng, biên bản họp tuần trước — không thứ nào nằm trong mô hình. Hỏi thẳng thì nó chịu, hoặc tệ hơn là đoán bừa.
Nó bịa rất trơn tru. Thiếu thông tin, mô hình vẫn sinh ra câu trả lời nghe hợp lý, đúng văn phong, có cả con số và điều khoản. Chỗ nguy hiểm nhất là ở đây: câu sai không hề trông giống câu sai.
RAG xử lý cả hai bằng một mẹo đơn giản. Trước khi mô hình viết câu trả lời, hệ thống lục kho tài liệu của bạn, lấy vài đoạn liên quan nhất, dán vào cùng câu hỏi rồi mới đưa cho mô hình kèm chỉ dẫn "chỉ trả lời dựa trên phần dưới đây". Mô hình không cần nhớ nữa, nó chỉ cần đọc.
Hệ quả rất thực tế: câu trả lời bám theo tài liệu, dẫn được nguồn để bạn kiểm lại, và sửa tài liệu là hệ thống biết ngay, không phải huấn luyện lại gì cả.
Luồng hoạt động từng bước
RAG chia làm hai giai đoạn: chuẩn bị kho một lần, rồi phục vụ mỗi lượt hỏi.
Giai đoạn chuẩn bị kho
Bước 1 — Chia nhỏ tài liệu. Bạn không nhét cả cuốn quy chế 200 trang vào câu hỏi được. Tài liệu bị cắt thành từng mẩu vài trăm chữ, gọi là chunk. Cách cắt ảnh hưởng rất lớn: cắt giữa câu hoặc xé một bảng làm đôi là hỏng ngay từ gốc. Thường người ta cắt theo mục và cho các mẩu chồng lấn nhau một ít để không mất ngữ cảnh ở mép.
Bước 2 — Tạo embedding. Mỗi mẩu được chuyển thành một dãy số dài, gọi là vector. Điểm hay: hai đoạn nói cùng một ý sẽ có vector nằm gần nhau, kể cả khi dùng từ khác hẳn. Nhờ vậy hỏi "nghỉ phép năm được bao nhiêu ngày" vẫn tìm ra đoạn viết "chế độ nghỉ hằng năm", dù không trùng chữ nào.
Bước 3 — Lưu vào cơ sở dữ liệu vector. Toàn bộ vector cùng nội dung gốc được lưu vào kho chuyên tìm theo độ gần. Làm một lần, chỉ chạy lại khi tài liệu đổi.
Giai đoạn trả lời
Bước 4 — Tìm kiếm. Câu hỏi cũng được chuyển thành vector, rồi hệ thống lấy ra vài mẩu có vector gần nhất. Nhiều hệ thống kết hợp thêm tìm theo từ khoá truyền thống, vì tìm theo nghĩa hay trượt ở mã sản phẩm, số hiệu văn bản và tên riêng.
Bước 5 — Ghép ngữ cảnh và sinh câu trả lời. Các mẩu tìm được ghép vào cùng câu hỏi thành một prompt hoàn chỉnh, kèm yêu cầu chỉ dùng thông tin đã cho và nói "không có trong tài liệu" nếu thiếu. Mô hình đọc rồi viết câu trả lời, thường kèm trích dẫn mẩu nào.
Cả năm bước chạy trong một hai giây, bạn không thấy gì ngoài câu trả lời. Phần lớn chất lượng nằm ở cách viết chỉ dẫn ở bước cuối, nên prompt là gì là bài nên đọc kèm.
RAG hay fine-tuning, chọn cái nào
Đây là câu hỏi hay bị hỏi nhất, và câu trả lời ngắn: hai thứ giải quyết hai vấn đề khác nhau. RAG dạy AI biết thêm điều gì. Fine-tuning dạy AI cư xử theo kiểu nào — giọng văn, định dạng đầu ra, cách phân loại. Chi tiết về hướng còn lại có ở fine-tuning là gì.
| RAG | Fine-tuning | |
|---|---|---|
| Dùng để | Bổ sung kiến thức, dữ liệu riêng | Định hình phong cách, định dạng, hành vi |
| Cập nhật dữ liệu | Sửa tài liệu là xong, có hiệu lực ngay | Phải huấn luyện lại |
| Chi phí ban đầu | Thấp | Cao hơn, cần dữ liệu mẫu và tính toán |
| Chi phí mỗi lượt hỏi | Cao hơn vì prompt dài | Thấp hơn |
| Dẫn nguồn được không | Được, đây là ưu thế lớn | Không |
| Dữ liệu nhạy cảm | Nằm trong kho bạn kiểm soát | Bị nhúng vào trọng số model |
| Hợp với | Hỏi đáp tài liệu, tra cứu nội bộ, chăm sóc khách hàng | Trả lời theo khuôn cố định, giọng thương hiệu |
Nguyên tắc chọn: cần đúng nội dung thì dùng RAG, cần đúng kiểu thì fine-tune. Gần như mọi dự án nên bắt đầu bằng RAG vì rẻ, nhanh, sửa được ngay. Chỉ khi RAG chạy tốt mà đầu ra vẫn lệch phong cách thì mới tính đến fine-tuning, và lúc đó thường dùng cả hai cùng lúc.
Vì sao RAG vẫn trả lời sai
RAG giảm bịa chứ không xoá được bịa. Biết trước các kiểu hỏng giúp bạn không đổ lỗi nhầm chỗ.
Tìm không ra đoạn đúng. Nguyên nhân số một, và nó nằm ở bước tìm kiếm chứ không phải ở mô hình. Câu hỏi diễn đạt khác tài liệu quá xa, hoặc câu trả lời nằm rải rác năm chỗ mà hệ thống chỉ lấy ba mẩu. Không lấy được đoạn đúng thì mô hình giỏi mấy cũng chỉ đoán.
Cắt tài liệu hỏng. Một quy định bị cắt làm đôi, phần điều kiện đi một nơi phần ngoại lệ đi một nẻo. Hệ thống lấy đúng nửa đầu và trả lời thiếu vế "trừ trường hợp".
Vẫn bịa dù đã có tài liệu. Khi tài liệu chỉ liên quan mờ mờ, mô hình có xu hướng lấp chỗ trống bằng kiến thức chung. Chỉ dẫn phải nói rõ được phép trả lời "không tìm thấy" — nhiều hệ thống quên đúng câu này.
Tài liệu nguồn sai hoặc cũ. RAG trung thành với kho. Kho còn bản quy chế năm ngoái thì câu trả lời sai một cách rất thuyết phục, có dẫn nguồn đàng hoàng. Dọn dữ liệu quan trọng ngang việc dựng hệ thống.
Tài liệu mâu thuẫn nhau. Hai văn bản nói ngược nhau, hệ thống lấy cả hai, mô hình chọn bừa hoặc trộn lẫn. Cần đánh dấu bản còn hiệu lực và ưu tiên theo ngày.
Mẹo chẩn đoán nhanh: khi câu trả lời sai, nhìn phần trích dẫn trước. Trích dẫn sai chỗ thì lỗi ở khâu tìm kiếm; trích dẫn đúng mà kết luận lệch thì lỗi ở chỉ dẫn hoặc ở mô hình.
Dùng ở Việt Nam thế nào
Ai nên quan tâm. Bất cứ tổ chức nào có nhiều tài liệu mà nhân viên phải tra thủ công: nhân sự với quy chế và chính sách phúc lợi, chăm sóc khách hàng với kho câu hỏi và hướng dẫn sản phẩm, pháp chế với hợp đồng mẫu, trường học với giáo trình.
Việc thực tế nhất. Trợ lý hỏi đáp nội bộ trả lời theo đúng quy định công ty; chatbot bán hàng bám theo bảng giá và chính sách bảo hành thật; công cụ tra cứu hợp đồng; hệ thống giúp nhân viên mới tự tìm câu trả lời.
Cần điều kiện gì. Trước hết là tài liệu ở dạng máy đọc được — rào cản lớn nhất trong thực tế, vì rất nhiều tài liệu ở Việt Nam là bản scan phải nhận dạng chữ trước, và chất lượng nhận dạng tiếng Việt có dấu quyết định luôn chất lượng cả hệ thống. Kế đến là tài khoản trả phí ở một dịch vụ AI, thường cần thẻ quốc tế, cùng một người biết lập trình cơ bản.
Tiếng Việt có ảnh hưởng gì không. Có. Tìm theo nghĩa hoạt động tốt với tiếng Việt, nhưng thiếu dấu, viết tắt và cách gõ khác nhau làm giảm độ chính xác đáng kể. Cách khắc phục: kết hợp tìm theo từ khoá, chuẩn hoá tài liệu trước khi nạp, và bổ sung danh sách từ đồng nghĩa nội bộ.
Muốn thử trước khi đầu tư. Không cần dựng gì cả. Một số công cụ đã đóng gói sẵn RAG dưới dạng ứng dụng: bạn tải tài liệu lên rồi hỏi trực tiếp, chẳng hạn NotebookLM. Đó là cách nhanh nhất để xem RAG hợp với việc của bạn tới đâu.
Câu hỏi thường gặp
RAG có cần biết lập trình không?
Tự dựng thì cần, ít nhất ở mức viết được đoạn mã nối các phần lại. Còn nếu chỉ muốn dùng, các công cụ hỏi đáp tài liệu sẵn có đã lo hết phần kỹ thuật: tải file lên và đặt câu hỏi.
Dữ liệu của tôi có bị dùng để huấn luyện không?
Với RAG, tài liệu nằm trong kho của bạn chứ không đi vào mô hình. Nhưng mỗi lượt hỏi, đoạn tài liệu liên quan vẫn được gửi lên máy chủ của nhà cung cấp mô hình. Muốn dữ liệu không rời khỏi hệ thống thì phải chạy mô hình nội bộ trên máy chủ của bạn.
RAG khác gì với việc dán tài liệu vào khung chat?
Về bản chất là giống — đều đưa tài liệu vào ngữ cảnh. Khác ở quy mô: dán tay chỉ hợp với vài trang, còn RAG tự chọn đúng vài mẩu cần thiết trong hàng nghìn trang, mỗi lượt hỏi lại chọn lại từ đầu.
Cửa sổ ngữ cảnh ngày càng lớn thì RAG còn cần không?
Vẫn cần. Nhồi hết tài liệu vào mỗi lượt hỏi thì tốn tiền theo lượng chữ, chậm hơn, và độ chính xác thường giảm khi ngữ cảnh quá dài. RAG lọc trước nên rẻ hơn, nhanh hơn và dễ dẫn nguồn hơn.
RAG dựng mất bao lâu?
Một bản chạy thử với vài chục tài liệu có thể xong trong một hai ngày. Phần lâu nằm ở dọn dữ liệu, xử lý bản scan, và tinh chỉnh cách cắt tài liệu cho tới khi tỉ lệ tìm đúng đủ cao. Đừng đánh giá hệ thống qua bản chạy thử đầu tiên.