# RAG là gì? Cách giúp LLM trả lời dựa trên dữ liệu riêng của bạn

> RAG (Retrieval-Augmented Generation) là kỹ thuật tối ưu hóa LLM bằng cách kết nối dữ liệu bên ngoài, giảm ảo giác và cập nhật kiến thức thời gian thực.

Nguồn: https://camnangai.com/kien-thuc-ai/rag-la-gi  
Xuất bản: 2026-06-08

**RAG** (Retrieval-Augmented Generation) là kỹ thuật tối ưu hoá đầu ra của các [mô hình ngôn ngữ
  lớn (LLM)](https://camnangai.com/kien-thuc-ai/llm-la-gi) bằng cách tham chiếu đến các nguồn tri thức tin cậy nằm ngoài
  dữ liệu huấn luyện gốc.

Thay vì chỉ dựa vào trí nhớ tĩnh của mô hình, hệ thống RAG truy xuất (retrieval) các đoạn thông tin
liên quan từ một kho dữ liệu bên ngoài, làm giàu (augmentation) ngữ cảnh cho câu lệnh, rồi mới để
LLM tạo (generation) câu trả lời cuối cùng.

Với một kỹ sư AI, RAG là nền tảng của rất nhiều ứng dụng AI thực tế hiện nay, chứ không phải một
khái niệm lý thuyết đọc cho biết. Nó xử lý trực diện hai bài toán kinh điển của các mô hình như
GPT-4 hay Gemini:
"điểm dừng kiến thức" (knowledge cutoff) và ảo giác (hallucination). Với RAG, bạn xây được hệ
thống tra cứu hàng triệu tài liệu nội bộ — từ PDF đến cơ sở dữ liệu SQL — để trả lời chính xác, có
căn cứ và luôn cập nhật, mà không phải tốn kém huấn luyện lại toàn bộ mô hình.

![Sơ đồ khái niệm RAG: tri thức từ kho dữ liệu bên ngoài được đưa vào mô hình ngôn ngữ lớn (LLM) để tạo ra câu trả lời có căn cứ](https://camnangai.com/articles/rag-la-gi/01-infographic-vn.webp)

## Vì sao LLM cần đến RAG?

**LLM** cần đến RAG vì bốn lý do cốt lõi: kiến thức của chúng đóng băng tại thời điểm huấn luyện,
chúng dễ bịa thông tin, chúng không tự truy cập được dữ liệu riêng của bạn, và chi phí huấn luyện
lại quá đắt. Dù khả năng suy luận
của các mô hình hiện đại rất đáng nể, bốn rào cản kỹ thuật sau vẫn khiến đưa chúng thẳng vào ứng
dụng thật là một canh bạc:

- **Kiến thức tĩnh và điểm dừng (knowledge cutoff).** LLM chỉ biết những gì có trong tập dữ liệu
  huấn luyện tại thời điểm nó được đào tạo. Một mô hình huấn luyện năm 2023 sẽ hoàn toàn mù mịt về
  sự kiện năm 2024, trong khi dữ liệu doanh nghiệp thay đổi từng giờ.
- **Ảo giác (hallucination).** Khi không tìm thấy câu trả lời trong dữ liệu huấn luyện, LLM có xu
  hướng tự tin đưa ra thông tin sai. Chúng vận hành dựa trên xác suất dự đoán từ tiếp theo, không
  phải một bộ máy tìm kiếm sự thật.
- **Thiếu dữ liệu nội bộ.** Các mô hình công cộng không có quyền truy cập vào quy trình vận hành
  riêng tư, mã nguồn nội bộ hay tài liệu khách hàng nhạy cảm của bạn.
- **Chi phí huấn luyện.** Fine-tuning hay huấn luyện lại một mô hình lớn rất tốn tài nguyên tính
  toán (GPU) và nhân lực gán nhãn. Tệ hơn, ngay sau khi huấn luyện xong, mô hình lại tiếp tục lỗi
  thời khi dữ liệu mới xuất hiện.

Cách dễ hình dung nhất là ví dụ "bài kiểm tra mở sách". LLM truyền thống giống một sinh viên đi thi
chỉ dựa vào trí nhớ (closed-book). RAG biến nó thành sinh viên được vào thư viện (open-book), tìm
đúng trang sách chứa thông tin cần thiết rồi dựa vào đó để viết câu trả lời. Cách này vừa tăng
độ chính xác, vừa cho phép hệ thống trích dẫn nguồn để người dùng tự kiểm chứng.

## RAG hoạt động như thế nào?

Một pipeline **RAG** chuẩn gồm ba giai đoạn: tiền xử lý (Ingestion), truy xuất (Retrieval) và
tổng hợp (Synthesis). Cụ thể, một truy vấn đi qua năm bước logic sau:

![Quy trình RAG bốn bước: Câu hỏi → Truy xuất ngữ cảnh liên quan → Làm giàu ngữ cảnh bằng dữ liệu → Sinh câu trả lời cuối cùng](https://camnangai.com/articles/rag-la-gi/02-vn.webp)

1. **Người dùng gửi truy vấn (prompt).** Người dùng nhập câu hỏi vào hệ thống.
2. **Truy xuất thông tin (retrieval).** Hệ thống chuyển câu hỏi thành một vector và tìm trong kho
   dữ liệu bên ngoài, thường là cơ sở dữ liệu vector (Vector Database), những đoạn văn bản tương
   đồng nhất về ngữ nghĩa.
3. **Tích hợp ngữ cảnh.** Kết quả truy xuất được gửi về lớp tích hợp (Integration Layer), nơi hệ
   thống chắt lọc các đoạn có độ liên quan cao nhất.
4. **Làm giàu câu lệnh (augmentation).** Hệ thống ghép câu hỏi gốc với dữ liệu vừa tìm được thành
   một prompt mới có cấu trúc: "Dựa vào ngữ cảnh sau để trả lời: [dữ liệu truy xuất]. Câu hỏi:
   [câu hỏi gốc]".
5. **Tạo phản hồi (generation).** LLM nhận prompt đã làm giàu và đóng vai một bộ máy đọc hiểu để
   tổng hợp câu trả lời cuối cùng.

Khi đưa vào vận hành, ta thường đặt `temperature=0` cho bước sinh để buộc mô hình bám sát dữ liệu
được cung cấp, giảm thiểu sự "sáng tạo" không cần thiết dẫn đến sai lệch. Nghe thì nhỏ, nhưng bỏ
quên đúng tham số này là cách nhanh nhất để một pipeline chạy ngon trong demo bắt đầu bịa chuyện khi
ra thật.

## RAG gồm những thành phần kỹ thuật nào?

Một hệ thống **RAG** đạt chuẩn vận hành thực tế (production) dựa trên bốn thành phần. Hiểu rõ từng
phần là điều kiện để pipeline chạy ổn định:

![Kiến trúc hệ thống RAG: tầng truy vấn thời gian thực gồm câu hỏi người dùng, bộ truy xuất, lớp tích hợp và mô hình sinh, bên dưới là quy trình tiền xử lý tài liệu — chia nhỏ và nhúng vector vào kho tri thức](https://camnangai.com/articles/rag-la-gi/03-vn.webp)

### Chunking (chia nhỏ dữ liệu)

Đây là bước quyết định chất lượng của cả pipeline, vì LLM có giới hạn [cửa sổ ngữ cảnh (context
window)](https://camnangai.com/kien-thuc-ai/context-window) và bạn không thể nhét toàn bộ tài liệu nghìn trang vào một
prompt. Chia sai ở bước này, mọi thứ phía sau đều sai theo.

- **Fixed-size chunking.** Chia theo số ký tự cố định, đơn giản nhưng dễ cắt ngang một câu đang dở
  nghĩa.
- **Recursive Character Text Splitting.** Dùng các dấu phân cách (xuống dòng, dấu chấm) để chia khéo
  hơn, giữ được tính toàn vẹn ngữ nghĩa. Tham số `chunk_overlap` (thường 10–15%) giúp duy trì liên
  kết thông tin giữa các đoạn kề nhau.

### Embeddings (nhúng ngữ nghĩa)

Bước này chuyển văn bản thành các vector số học trong không gian đa chiều. Để chọn mô hình nhúng
phù hợp, hãy tham khảo bảng xếp hạng MTEB (Massive Text Embedding Benchmark) trên
[HuggingFace](https://huggingface.co). Số chiều (dimensions) càng cao thì biểu diễn ngữ nghĩa càng
chi tiết nhưng càng tốn tài nguyên: `amazon.titan-embed-text-v1` có 1536 chiều, trong khi
`cohere.embed-english-v3` dùng 1024 chiều.

### Vector Database (cơ sở dữ liệu vector)

Nơi lưu trữ tọa độ không gian của dữ liệu. Các lựa chọn phổ biến gồm
[ChromaDB](https://www.trychroma.com), [Pinecone](https://www.pinecone.io),
[FAISS](https://github.com/facebookresearch/faiss) của Meta hay [Milvus](https://milvus.io). Vai
trò của chúng là thực hiện các phép tính khoảng cách (như độ tương đồng cosine) để tìm vector gần
nhất với truy vấn trong thời gian mili-giây.

### Retriever (bộ truy xuất)

Thay vì khớp từ khóa truyền thống như TF-IDF hay BM25 (sparse embeddings), retriever hiện đại ưu
tiên tìm kiếm ngữ nghĩa (dense embeddings). Tuy nhiên, kết hợp cả hai (Hybrid Search) thường cho
kết quả tốt hơn, nhất là khi cần tìm chính xác tên riêng hoặc mã định danh.

## RAG so với fine-tuning: chọn cái nào?

Nhiều người lầm tưởng fine-tuning có thể thay RAG để cung cấp kiến thức mới. Thực chất, fine-tuning
điều chỉnh "phong cách viết" và giọng văn của mô hình, còn **RAG** cung cấp dữ liệu thực tế. Đây là
hai bài toán khác nhau:

![Bảng so sánh RAG và fine-tuning theo ba tiêu chí: cập nhật tri thức, độ chính xác và chi phí](https://camnangai.com/articles/rag-la-gi/04-vn.webp)

| Tiêu chí            | RAG                                         | Fine-tuning                       |
| ------------------- | ------------------------------------------- | --------------------------------- |
| Cập nhật tri thức   | Thời gian thực (chỉ cần cập nhật Vector DB) | Chậm (phải huấn luyện lại)        |
| Độ chính xác        | Cao, có nguồn trích dẫn                     | Trung bình (dễ ảo giác)           |
| Chi phí             | Thấp, trả theo token                        | Cao (tính toán, GPU, nhân lực)    |
| Khả năng kiểm chứng | Trực tiếp qua nguồn truy xuất               | Khó (tri thức nằm trong trọng số) |

Nếu hỏi tôi, cứ dựng RAG trước đã. Chỉ cân nhắc fine-tuning khi mô hình cần học một ngôn ngữ
chuyên ngành cực đặc thù, hoặc tuân theo một định dạng đầu ra rất khắt khe mà prompt
engineering không xử lý được. Hai kỹ thuật còn dùng song song được: fine-tuning để mô hình hiểu
thuật ngữ chuyên môn tốt hơn, RAG để cung cấp thông tin mới nhất.

## Những thách thức khi triển khai RAG

RAG không phải "viên đạn bạc". Trên hệ thống thật, bạn sẽ va phải bốn vấn đề kỹ thuật sau:

1. **Chất lượng truy xuất.** Nếu retriever lấy về các đoạn "nhiễu" hoặc không liên quan, LLM sẽ
   tổng hợp ra câu trả lời sai, đúng tinh thần "rác vào, rác ra".
2. **Hiện tượng "Lost in the Middle".** Nghiên cứu từ Stanford chỉ ra rằng các mô hình (kể cả
   GPT-4 Turbo với cửa sổ ngữ cảnh 128k token) xử lý tốt thông tin ở đầu và cuối prompt, nhưng hiệu suất giảm
   mạnh khi thông tin quan trọng nằm ở giữa. Điều này buộc ta phải xếp hạng (reranking) dữ liệu
   thật cẩn thận trước khi đưa vào mô hình.
3. **Độ trễ (latency).** Thêm bước nhúng câu hỏi và truy xuất cơ sở dữ liệu làm tăng thời gian
   phản hồi so với gọi API trực tiếp. Đây là cái giá bạn trả để đổi lấy câu trả lời có căn cứ, và
   chưa có cách nào né sạch.
4. **Dữ liệu lỗi thời.** Nếu pipeline ingestion không được tự động hóa, Vector DB sẽ chứa thông
   tin cũ, khiến LLM trả lời sai dù đã có RAG.

## Kỹ thuật RAG nâng cao

Để đẩy pipeline lên cấp production, các kỹ sư AI thường thêm những lớp sau:

- **Reranking.** Dùng các mô hình chuyên dụng như monoBERT, duoBERT hay ListT5 để chấm điểm lại
  `top-k` kết quả từ Vector DB, đảm bảo các đoạn liên quan nhất được đẩy lên đầu prompt, cách trực
  tiếp để né lỗi "Lost in the Middle".
- **Sentence-window retrieval.** Thay vì chỉ lấy đúng câu chứa từ khóa, hệ thống lấy thêm 2–3 câu
  xung quanh để LLM có đủ ngữ cảnh.
- **Small-to-Large Chunking.** Nhúng bằng các đoạn nhỏ (truy xuất chính xác hơn) nhưng khi đưa vào
  LLM thì gửi các đoạn lớn bao quanh (tổng hợp tốt hơn).
- **Retriever Ensembling.** Kết hợp kết quả từ nhiều retriever với các kích thước chunk khác nhau
  (ví dụ 128 và 512 token) để tối ưu tính toàn vẹn thông tin.
- **Agentic RAG.** Dùng một tác nhân (agent) như [LangGraph](https://www.langchain.com/langgraph)
  để tự quyết định khi nào cần tra cứu và khi nào tự trả lời được, giúp xử lý các câu hỏi phức tạp
  qua nhiều bước.

## Bạn nên bắt đầu từ đâu?

RAG là một mắt xích trong chuỗi khái niệm nền tảng về mô hình ngôn ngữ. Vài bài viết liên quan giúp
bạn bóc tách từng lớp:

- [Mô hình ngôn ngữ lớn (LLM) là gì?](https://camnangai.com/kien-thuc-ai/llm-la-gi) — cỗ máy mà RAG kết nối vào.
- [Cửa sổ ngữ cảnh là gì?](https://camnangai.com/kien-thuc-ai/context-window) — giới hạn quyết định cách bạn chia nhỏ dữ liệu.
- [Token AI là gì?](https://camnangai.com/kien-thuc-ai/token-ai-la-gi) — đơn vị mọi mô hình đọc và viết.
- [Trí tuệ nhân tạo là gì?](https://camnangai.com/kien-thuc-ai/ai-la-gi) — lớp bao quát chứa mọi thứ bên dưới.
- [AI tạo sinh là gì?](https://camnangai.com/kien-thuc-ai/generative-ai-la-gi) — lớp chuyên tạo ra nội dung mới.

## Tài liệu tham khảo

- [RAG Explained Simply with a Real Project — freeCodeCamp](https://www.freecodecamp.org/news/rag-explained-simply-with-a-real-project/)
- [What is RAG (Retrieval Augmented Generation)? — IBM](https://www.ibm.com/think/topics/retrieval-augmented-generation)
- [What is Retrieval-Augmented Generation (RAG)? — Google Cloud](https://cloud.google.com/use-cases/retrieval-augmented-generation)
- [What is RAG? Retrieval-Augmented Generation AI Explained — AWS](https://aws.amazon.com/what-is/retrieval-augmented-generation/)
- [What is Retrieval-Augmented Generation (RAG)? — IBM Technology (video)](https://www.youtube.com/watch?v=T-D1OfcDW1M)
- [What is Retrieval Augmented Generation (RAG)? — Databricks](https://www.databricks.com/blog/what-is-retrieval-augmented-generation)
- [Retrieval-Augmented Generation (RAG): From Basics to Advanced — Tejpal Kumawat](https://medium.com/@tejpal.abhyuday/retrieval-augmented-generation-rag-from-basics-to-advanced-a2b068fd576c)
- [Retrieval Augmented Generation (RAG) Explained with LangChain — David Min](https://medium.com/@dminhk/retrieval-augmented-generation-rag-explained-b1dd89979681)
