Skip to content

RAG: Tạo sinh tăng cường truy xuất

Lời nói đầu

Tại sao ChatGPT đôi khi "nói dối một cách rất thuyết phục"? Kiến thức của mô hình ngôn ngữ lớn đến từ dữ liệu huấn luyện, nhưng dữ liệu huấn luyện có thời hạn cắt, và cũng không bao gồm tài liệu nội bộ của công ty bạn. RAG (Retrieval-Augmented Generation, Tạo sinh tăng cường truy xuất) chính là công nghệ cốt lõi để giải quyết vấn đề này — cho phép AI "tra cứu tài liệu" trước khi trả lời.

Bài viết này sẽ dạy bạn điều gì?

Sau khi học xong chương này, bạn sẽ có được:

  • Hiểu biết về khái niệm cốt lõi: Hiểu RAG là gì, tại sao cần nó, và cách nó giải quyết vấn đề "ảo giác" của mô hình lớn
  • Nắm được quy trình hoàn chỉnh: Nắm vững quy trình end-to-end từ tải tài liệu, phân đoạn, vector hóa đến truy xuất và tạo sinh
  • Khả năng lựa chọn công nghệ: Hiểu ưu nhược điểm của các chiến lược phân đoạn và phương pháp truy xuất khác nhau, có thể lựa chọn theo tình huống
  • Góc nhìn tiến hóa kiến trúc: Hiểu lộ trình tiến hóa của RAG từ Naive đến Advanced rồi đến Modular
  • Khả năng ra quyết định thực tế: Biết khi nào nên dùng RAG, khi nào nên dùng fine-tune
ChươngNội dungKhái niệm cốt lõi
Chương 1Quy trình cơ bản của RAGBa giai đoạn: lập chỉ mục, truy xuất, tạo sinh
Chương 2Chiến lược phân đoạn văn bảnPhân đoạn cố định, phân đoạn ngữ nghĩa, phân đoạn đệ quy
Chương 3Kỹ thuật truy xuấtTruy xuất vector, truy xuất từ khóa, truy xuất kết hợp
Chương 4Tiến hóa kiến trúcNaive RAG → Advanced RAG → Modular RAG
Chương 5RAG vs Fine-tuneSo sánh tình huống áp dụng của hai phương án

0. Toàn cảnh: Tại sao mô hình lớn cần "tra cứu tài liệu"?

Hãy tưởng tượng bạn là một giáo sư uyên bác, đã đọc vô số cuốn sách. Nhưng nếu có người hỏi bạn "dữ liệu bán hàng hôm qua của công ty là bao nhiêu", bạn chắc chắn không thể trả lời — bởi vì những thông tin này không có trong những cuốn sách bạn đã đọc.

Mô hình ngôn ngữ lớn cũng đối mặt với tình huống khó xử tương tự:

  • Kiến thức có thời hạn cắt: Dữ liệu huấn luyện của GPT-4 bị cắt đến một thời điểm nhất định, những sự kiện sau đó nó không biết
  • Thiếu kiến thức riêng tư: Tài liệu nội bộ, hướng dẫn sản phẩm, dữ liệu khách hàng của công ty bạn, mô hình chưa từng thấy
  • Dễ sinh ra ảo giác: Khi mô hình không chắc chắn về câu trả lời, nó có xu hướng "bịa ra" một câu trả lời nghe có vẻ hợp lý

Ý tưởng cốt lõi của RAG

Giải pháp của RAG rất trực quan: trước khi để mô hình trả lời, hãy giúp nó tìm tài liệu tham khảo liên quan. Giống như thi mở sách — bạn không cần nhớ tất cả kiến thức, chỉ cần biết đi đâu tìm và tìm như thế nào.

RAG = Truy xuất (Retrieval) + Tăng cường (Augmented) + Tạo sinh (Generation)


1. Quy trình cơ bản của RAG: Lập chỉ mục, Truy xuất, Tạo sinh

Quy trình làm việc của RAG có thể chia thành hai giai đoạn: lập chỉ mục ngoại tuyếntruy vấn trực tuyến.

Giai đoạn ngoại tuyến giống như công việc biên mục của thư viện — phân loại, đánh số, xếp lên kệ tất cả sách để sau này dễ tìm kiếm. Giai đoạn trực tuyến là quá trình người đọc đến thư viện tra cứu tài liệu — dựa vào câu hỏi tìm sách liên quan, sau đó tổng hợp thông tin để đưa ra câu trả lời.

选择问题:
💬
用户提问
我们公司的年假政策是什么?
🔍
语义检索
📋
上下文组装
🤖
LLM 生成
返回结果
用户提问 — 详细说明
用户向系统提出一个自然语言问题。这个问题会被转化为向量表示,用于后续的语义检索。
1 / 5

Ba giai đoạn cốt lõi

  1. Giai đoạn lập chỉ mục (Indexing): Tải tài liệu gốc, làm sạch, phân đoạn, sau đó chuyển đổi thành vector thông qua mô hình nhúng, lưu vào cơ sở dữ liệu vector. Đây là công việc chuẩn bị một lần.
  2. Giai đoạn truy xuất (Retrieval): Khi người dùng đặt câu hỏi, cũng chuyển câu hỏi thành vector, tìm kiếm các đoạn tài liệu tương tự nhất trong cơ sở dữ liệu vector.
  3. Giai đoạn tạo sinh (Generation): Ghép các đoạn tài liệu đã truy xuất cùng với câu hỏi của người dùng thành Prompt, giao cho mô hình lớn tạo ra câu trả lời cuối cùng.
Giai đoạnĐầu vàoĐầu raKỹ thuật then chốt
Lập chỉ mụcTài liệu gốcCơ sở dữ liệu vectorPhân đoạn văn bản, Mô hình nhúng
Truy xuấtCâu hỏi người dùngTop-K đoạn tài liệuĐộ tương đồng vector, Xếp hạng lại
Tạo sinhCâu hỏi + Ngữ cảnhCâu trả lời cuối cùngPrompt Engineering, LLM

2. Phân đoạn văn bản: Nhét con voi vào tủ lạnh

Phân đoạn văn bản là khâu dễ bị bỏ qua nhất trong RAG, nhưng lại có ảnh hưởng lớn nhất đến hiệu quả. Tại sao cần phân đoạn? Bởi vì cửa sổ ngữ cảnh của mô hình lớn có giới hạn, chúng ta không thể nhét cả cuốn sách vào. Quan trọng hơn, chất lượng phân đoạn quyết định trực tiếp đến chất lượng truy xuất.

Hãy tưởng tượng bạn đang tìm một điểm kiến thức trong cuốn sách ở thư viện. Nếu cả cuốn sách là một "đoạn", truy xuất được cũng vô ích — bạn vẫn phải lật hết cả cuốn. Nhưng nếu phân đoạn theo chương hoặc thậm chí theo đoạn văn, bạn có thể định vị chính xác nội dung cần tìm.

输入文本
固定大小
按照固定的字符数切分文本,是最简单直接的分块方式。通常会设置一定的重叠区域(overlap),避免在切分边界丢失上下文。
块大小: 80 字符重叠: 20 字符
分块结果 共 0 个块
请输入文本后查看分块结果
策略优点缺点适用场景
📏 固定大小实现简单,块大小均匀可能在句子中间截断结构化程度低的长文本
📝 按句子保持句子完整性块大小不均匀文章、报告等自然文本
🧠 语义分块主题连贯,语义完整计算成本高,需要嵌入模型多主题混合的复杂文档
🔄 递归分块兼顾结构与大小实现较复杂通用场景,推荐默认选择

Lựa chọn chiến lược phân đoạn

  • Phân đoạn kích thước cố định: Cắt theo số ký tự hoặc số token, đơn giản thô bạo nhưng có thể cắt đứt ngữ nghĩa
  • Phân đoạn đệ quy: Trước tiên phân theo đoạn văn, đoạn văn quá dài thì phân theo câu, giữ được tính toàn vẹn ngữ nghĩa
  • Phân đoạn ngữ nghĩa: Dùng mô hình nhúng để phán đoán ranh giới ngữ nghĩa, cắt tại nơi có độ tương đồng đột biến
  • Phân đoạn theo cấu trúc tài liệu: Tận dụng thông tin cấu trúc như tiêu đề Markdown, thẻ HTML để phân đoạn

Không có chiến lược phân đoạn "tốt nhất", chỉ có chiến lược phù hợp nhất với dữ liệu của bạn. Khuyến nghị chung là bắt đầu từ phân đoạn đệ quy, kích thước chunk 200-500 token, overlap 10-20%.


3. Kỹ thuật truy xuất: Làm sao tìm được nội dung liên quan nhất?

Sau khi phân đoạn xong, câu hỏi then chốt tiếp theo là: người dùng đặt một câu hỏi, làm sao tìm được vài đoạn liên quan nhất từ hàng nghìn đoạn tài liệu?

Điều này giống như tìm sách trong một thư viện khổng lồ. Bạn có thể tìm theo từ khóa tên sách (truy xuất từ khóa), hoặc mô tả nội dung bạn muốn để thủ thư giúp bạn tìm (truy xuất ngữ nghĩa), cách tốt nhất là kết hợp cả hai (truy xuất kết hợp).

选择查询:
1
查询编码
2
向量搜索
3
重排序
4
Top-K 选择
查询编码
将用户的自然语言查询通过嵌入模型(如 text-embedding-ada-002)转化为高维向量表示。这个向量捕捉了查询的语义信息。
查询文本
如何申请年假?
↓ 嵌入模型编码
查询向量
0.12-0.450.780.33-0.210.560.89-0.14
Cách truy xuấtNguyên lýƯu điểmNhược điểm
Truy xuất từ khóa (BM25)Dựa trên tần suất từ và tần suất tài liệu nghịch đảoKhớp chính xác, tốc độ nhanhKhông hiểu ngữ nghĩa, từ đồng nghĩa vô hiệu
Truy xuất vectorDựa trên độ tương đồng cosine của vector nhúngHiểu ngữ nghĩa, hỗ trợ khớp mờKhông nhạy với danh từ riêng
Truy xuất kết hợpKết hợp kết quả từ khóa và vectorCân bằng chính xác và ngữ nghĩaCần điều chỉnh trọng số, độ phức tạp cao

Xếp hạng lại (Reranking)

Sau khi truy xuất được các tài liệu ứng viên, thường cần thêm một bước "xếp hạng lại". Truy xuất ban đầu theo đuổi độ bao phủ (cố gắng không bỏ sót), xếp hạng lại theo đuổi độ chính xác (đưa những thứ liên quan nhất lên đầu). Các mô hình xếp hạng lại phổ biến có Cohere Rerank, BGE Reranker, v.v., chúng sử dụng bộ mã hóa chéo để chấm điểm tinh chỉnh cho từng cặp query-document.


4. Tiến hóa kiến trúc: Từ đơn giản đến thông minh

Công nghệ RAG trong vòng hai năm ngắn ngủi đã trải qua ba thế hệ tiến hóa, mỗi thế hệ đều giải quyết những điểm đau của thế hệ trước.

最基础的 RAG 架构,流程简单直接:索引 → 检索 → 生成。适合快速原型验证,但在复杂场景下效果有限。
📄
文档加载
✂️
文本分块
🔢
向量化
🔍
检索
🤖
生成
点击流程节点查看详细说明
架构特点
实现简单,上手快
适合结构化知识库
⚠️检索质量依赖分块策略
无法处理复杂查询
架构演进路线
Naive RAG
2023
Advanced RAG
2024
Modular RAG
2025

So sánh ba thế hệ kiến trúc RAG

  • Naive RAG (2023): Quy trình "lập chỉ mục → truy xuất → tạo sinh" cơ bản nhất, triển khai đơn giản nhưng hiệu quả hạn chế. Các vấn đề bao gồm: chất lượng truy xuất không ổn định, không thể xử lý truy vấn phức tạp, dễ đưa vào ngữ cảnh nhiễu.
  • Advanced RAG (2024): Trên nền tảng Naive RAG bổ sung thêm các khâu tối ưu như viết lại truy vấn, truy xuất kết hợp, xếp hạng lại, nén ngữ cảnh, nâng cao đáng kể độ chính xác truy xuất và chất lượng tạo sinh.
  • Modular RAG (2025): Phân rã RAG thành các mô-đun có thể cắm rút, hỗ trợ các khả năng cao cấp như phán đoán định tuyến, truy xuất thích ứng, tự phản tư. Có thể lựa chọn động quy trình xử lý tối ưu dựa trên loại truy vấn.

5. RAG vs Fine-tune: Nên chọn cái nào?

Khi bạn muốn mô hình lớn nắm vững kiến thức trong một lĩnh vực cụ thể, thường có hai con đường: RAG và Fine-tune (tinh chỉnh). Chúng không loại trừ lẫn nhau, mà bổ trợ cho nhau.

Lấy một ví dụ: Fine-tune giống như cho học sinh đi học thêm, nội hóa kiến thức vào não bộ; RAG giống như phát cho học sinh sách tham khảo, khi thi có thể lật xem. Hai cách đều có ưu nhược điểm, mấu chốt nằm ở nhu cầu cụ thể của bạn.

RAG 检索增强生成
VS
Fine-tuning 微调
知识更新速度
实时更新,修改文档即生效
需要重新训练,周期长
实施成本
搭建检索系统,成本适中
💰
需要 GPU 资源和标注数据
回答风格控制
依赖 Prompt 工程
🎨
可深度定制输出风格
幻觉控制
有据可查,可追溯来源
🎯
仍可能产生幻觉
推理延迟
需要额外的检索步骤
⏱️
直接生成,无额外开销
私有数据安全
数据留在本地,不进入模型
🔒
数据融入模型权重
一句话总结
RAG 像是给模型配了一个实时更新的参考书库,适合知识频繁变化的场景; 微调像是让模型上了一门专业课,适合需要特定风格或领域深度的场景。 实际项目中,两者常常结合使用。
Khía cạnhRAGFine-tune
Cập nhật kiến thứcCập nhật thời gian thực, sửa tài liệu là đượcCần huấn luyện lại
Chi phíThấp (không cần GPU huấn luyện)Cao (cần tài nguyên huấn luyện)
Khả năng giải thíchCao (có thể truy xuất nguồn)Thấp (kiến thức nội hóa trong trọng số)
Tình huống áp dụngHỏi đáp kho kiến thức, truy xuất tài liệuChuyển đổi phong cách, tối ưu tác vụ cụ thể
Kiểm soát ảo giácTốt hơn (có cơ sở tham khảo)Trung bình (vẫn có thể ảo giác)

Gợi ý thực tế

Trong hầu hết tình huống, hãy thử RAG trước. Ưu điểm của RAG là: không cần huấn luyện, kiến thức có thể cập nhật thời gian thực, câu trả lời có thể truy xuất nguồn gốc. Chỉ khi bạn cần thay đổi "mô thức hành vi" của mô hình (ví dụ định dạng đầu ra, phong cách ngôn ngữ, cách suy luận), mới cân nhắc fine-tune. Phương án mạnh nhất thường là sự kết hợp RAG + Fine-tune.


Tổng kết

RAG là một trong những công nghệ thiết thực nhất để đưa mô hình lớn vào ứng dụng thực tế hiện nay. Giá trị cốt lõi của nó nằm ở chỗ: làm cho câu trả lời của mô hình có cơ sở để kiểm chứng, kiến thức có thể cập nhật thời gian thực, ảo giác có thể được kiểm soát hiệu quả.

Ôn lại những điểm then chốt của chương này:

  1. Vấn đề cốt lõi RAG giải quyết: Mô hình lớn có kiến thức lỗi thời, thiếu dữ liệu riêng tư, dễ sinh ảo giác
  2. Quy trình ba giai đoạn: Lập chỉ mục (chuẩn bị ngoại tuyến) → Truy xuất (tìm kiếm trực tuyến) → Tạo sinh (tổng hợp câu trả lời)
  3. Phân đoạn là nền tảng: Chất lượng phân đoạn quyết định trực tiếp chất lượng truy xuất, chọn chiến lược phân đoạn phù hợp là rất quan trọng
  4. Truy xuất là then chốt: Truy xuất kết hợp + Xếp hạng lại hiện là tổ hợp hiệu quả tốt nhất
  5. Kiến trúc đang tiến hóa: Từ Naive RAG đến Modular RAG, hệ thống ngày càng thông minh và linh hoạt
  6. RAG và Fine-tune bổ trợ cho nhau: Hầu hết tình huống thử RAG trước, khi cần thay đổi hành vi mô hình mới cân nhắc fine-tune

Đọc thêm