AI2026-09-196 min read

Naive RAG: Nền tảng Truy xuất - Đọc cơ bản và Phân tích Hạn chế Kiến trúc

Tìm hiểu kiến trúc Naive RAG (Truy xuất - Đọc cơ bản): Nguyên lý hoạt động từ bài báo của Lewis et al., các bước triển khai với Vector Database và những điểm nghẽn chí tử trong môi trường sản xuất.

Nguyen Pham
Xin chào. Mình thích lập trình và công nghệ. Đây là blog mình chia sẻ lại các kiến thức về lập trình, công nghệ.

Trong hệ sinh thái ứng dụng mô hình ngôn ngữ lớn, Naive RAG (RAG nguyên bản / cơ bản) là mẫu thiết kế "Truy xuất - rồi - Đọc" (Retrieve-then-Read) đầu tiên và kinh điển nhất. Được định hình từ công trình nghiên cứu tiên phong của Lewis et al. (Facebook AI Research, 2020), Naive RAG là bước đệm nền tảng mà bất kỳ kỹ sư AI nào cũng cần thấu hiểu trước khi bước chân vào thế giới RAG nâng cao.


1. Kiến trúc 3 giai đoạn của Naive RAG#

Toàn bộ hệ thống Naive RAG vận hành xoay quanh 3 pha xử lý:

text
[1. Lập chỉ mục (Indexing)]
   Tài liệu thô ──► Cắt đoạn (Chunking) ──► Tính Vector (Embedding) ──► Lưu Vector DB

[2. Truy xuất (Retrieval)]
   Câu hỏi User ──► Tính Vector ──► Tìm kiếm Cosine Similarity ──► Top-K đoạn trích

[3. Tạo sinh (Generation)]
   Prompt = [Top-K đoạn trích] + [Câu hỏi] ──► LLM ──► Phản hồi cuối cùng
  1. Indexing (Lập chỉ mục): Tài liệu văn bản (PDF, Word, Markdown) được cắt nhỏ thành các đoạn có kích thước cố định (ví dụ 500 ký tự với độ đè 50 ký tự - overlap). Mỗi đoạn được chuyển thành một vector số thực qua mô hình embedding (như OpenAI text-embedding-3, BGE) và lưu vào cơ sở dữ liệu vector (Chroma, Pinecone, FAISS, Weaviate).
  2. Retrieval (Truy xuất): Khi người dùng đặt câu hỏi, câu hỏi cũng được chuyển thành vector. Hệ thống thực hiện phép tính khoảng cách (Cosine Similarity hoặc Euclidean Distance) để tìm ra Top-K (thường là 3–5) đoạn văn bản có độ tương đồng cao nhất.
  3. Generation (Tạo sinh): Toàn bộ nội dung của Top-K đoạn trích này được nối trực tiếp (concatenate) vào prompt của LLM kèm chỉ dẫn: "Dựa vào các đoạn thông tin trên, hãy trả lời câu hỏi sau".

2. Khi nào Naive RAG phù hợp và Khi nào thất bại?#

Rất phù hợp cho:#

  • Thử nghiệm ý tưởng nhanh (Proof of Concept - PoC): Dễ dàng cài đặt chỉ trong vài chục dòng code với LangChain hoặc LlamaIndex.
  • Tập dữ liệu tri thức vừa và nhỏ: Các tài liệu hướng dẫn nội bộ ngắn gọn, sách hướng dẫn sử dụng sản phẩm.
  • Câu hỏi tra cứu sự kiện đơn giản: Tra cứu số điện thoại, quy trình nghỉ phép, định nghĩa thuật ngữ.

Điểm nghẽn chí tử (Tại sao Naive RAG thất bại trong Production?):#

  1. Mất ngữ cảnh do cắt đoạn cứng nhắc (Chunking Issues): Cắt đoạn theo số ký tự cố định có thể xé đôi một bảng biểu hoặc ngắt một câu quan trọng làm đôi, khiến nghĩa của câu bị biến dạng hoàn toàn.
  2. Ảo tưởng về độ tương đồng ngữ nghĩa (Semantic Mismatch): Hai câu có thể rất tương đồng về vector nhưng câu hỏi không thể tìm được câu trả lời. Ví dụ câu hỏi "Làm sao để sửa lỗi X?" không có độ tương đồng cao bằng câu mô tả "Lỗi X là một lỗi hệ thống...", dẫn đến truy xuất sai đoạn chứa giải pháp.
  3. Ảo giác giữa rừng dữ liệu nhiễu (Lost in the Middle): Khi Top-5 đoạn trích được nhét vào prompt, nếu đoạn chứa thông tin chính xác nằm ở giữa, LLM thường có xu hướng bỏ qua và chỉ chú ý đến đoạn đầu hoặc đoạn cuối (primacy & recency bias).
  4. Bất lực trước suy luận đa bước (Multi-hop Reasoning): Với câu hỏi đòi hỏi so sánh: "Doanh thu của công ty A năm 2025 so với công ty B thế nào?", Naive RAG chỉ tìm kiếm được một trong hai công ty, không thể tự động tách câu hỏi thành 2 lượt truy vấn.

3. Các công cụ và Khung đánh giá chất lượng RAG#

Để đo lường xem hệ thống RAG cơ bản của bạn hoạt động ra sao trước khi nâng cấp lên các kiến trúc cao cấp hơn, cộng đồng công nghệ sử dụng các bộ chỉ số tiêu chuẩn (RAG Triad):

  • Faithfulness (Tính trung thực): Câu trả lời của LLM có hoàn toàn dựa trên tài liệu được cung cấp không (chống ảo giác)?
  • Answer Relevance (Độ liên quan của câu trả lời): Câu trả lời có giải quyết đúng trọng tâm câu hỏi của người dùng không?
  • Context Precision & Recall (Độ chuẩn xác và Đầy đủ của truy xuất): Các đoạn văn bản lấy về có chứa đúng thông tin cần thiết hay bị lẫn nhiều rác?
  • Frameworks đánh giá: RAGAS, TruLens, DeepEval, và LangSmith.
Tags:#AI#RAG#Naive RAG#Vector Database#Embedding
Naive RAG: Nền tảng Truy xuất - Đọc cơ bản và Phân tích Hạn chế Kiến trúc — Blog — VDaily