Hạn chế của RAG và sự ra đời của GraphRAG
RAG truyền thống vẫn còn nhiều hạn chế:
- Khó kết nối thông tin rời rạc: Với các câu hỏi đòi hỏi phải tổng hợp dữ liệu từ nhiều đoạn tài liệu khác nhau, thông qua các mối quan hệ gián tiếp, RAG thường thất bại vì chỉ dựa vào sự tương đồng cục bộ của từng đoạn văn bản.
- Thiếu khả năng hiểu khái niệm tổng quát: Khi người dùng yêu cầu một câu trả lời mang tính khái quát, tổng hợp từ nhiều tài liệu lớn hoặc từ các chủ đề rộng, RAG không đủ khả năng nhận diện và tổng hợp các khái niệm ngữ nghĩa ở cấp độ cao.
Ví dụ: Khi gặp câu hỏi như: "Những chủ đề chính trong tập dữ liệu này là gì?"
RAG truyền thống (dựa trên vector search) sẽ hoạt động bằng cách:
-
Tìm các đoạn văn bản có độ tương đồng ngữ nghĩa cao với câu hỏi.
-
Đưa những đoạn đó vào LLM để sinh câu trả lời.
Câu hỏi toàn cục đòi hỏi phải xem xét toàn bộ tập dữ liệu, nhưng RAG truyền thống chỉ truy xuất top-k đoạn văn gần giống câu hỏi, thường là những đoạn chứa từ khóa "chủ đề" hoặc có ngữ cảnh tương tự bề mặt. Điều này dễ khiến câu trả lời bị thiên lệch hoặc sai lệch, vì mô hình chỉ dựa trên những đoạn văn bản cục bộ, không đại diện cho tổng thể dữ liệu.
GraphRAG cải thiện rõ rệt trong việc trả lời hai dạng câu hỏi mà RAG truyền thống thường gặp khó:
- Câu hỏi cần kết nối nhiều mảnh thông tin rời rạc.
- Câu hỏi đòi hỏi hiểu và tổng hợp các khái niệm ngữ nghĩa trên tập dữ liệu lớn.
GraphRAG là gì?
GraphRAG là một phương pháp mới được Microsoft Research giới thiệu, nhằm cải thiện RAG bằng cách tích hợp đồ thị tri thức (knowledge graphs). Thay vì chỉ dựa vào tìm kiếm văn bản dựa trên vector, GraphRAG xây dựng một đồ thị tri thức từ dữ liệu đầu vào, trong đó các thực thể (entities) và mối quan hệ (relationships) được biểu diễn dưới dạng các nút và cạnh trong đồ thị. Điểm nổi bật nhất của GraphRAG chính là khả năng hiểu cấu trúc ngữ nghĩa tổng thể của tập dữ liệu ngay cả trước khi có truy vấn từ người dùng. Điều này đạt được thông qua quá trình sau:
-
Phát hiện các cộng đồng thông tin (communities): GraphRAG sử dụng LLM để phân tích đồ thị và tự động xác định các nhóm nút có liên kết chặt chẽ với nhau. Các cộng đồng này được tổ chức theo cấu trúc phân cấp (hierarchical), từ chủ đề lớn (high-level themes) đến chủ đề nhỏ hơn (low-level topics).
-
Tóm tắt theo cấp độ cộng đồng (Community Summaries): Với mỗi cộng đồng, LLM sẽ tự động tạo ra một bản tóm tắt, mô tả nội dung chính, các thực thể quan trọng và mối quan hệ giữa chúng. Nhờ đó, người dùng có thể nắm được bức tranh tổng quát của toàn bộ tập dữ liệu, ngay cả khi chưa đặt ra câu hỏi nào.
-
Chỉ mục dữ liệu theo đồ thị: Thay vì chỉ lập chỉ mục theo dạng vector, GraphRAG lưu trữ dữ liệu dưới dạng chỉ mục đồ thị, cho phép hệ thống hiểu và truy xuất theo ngữ nghĩa.
Nhờ cách tiếp cận này, GraphRAG không chỉ hỗ trợ việc tìm kiếm và sinh phản hồi hiệu quả hơn, mà còn mở ra khả năng khám phá dữ liệu theo chiều sâu, giúp người dùng dễ dàng điều hướng qua các chủ đề và tìm ra thông tin tiềm ẩn trong dữ liệu của mình.
Hình 1. From Local to Global: A Graph RAG Approach to Query-Focused Summarization (Nguồn: https://www.microsoft.com/en-us/research/publication/from-local-to-global-a-graph-rag-approach-to-query-focused-summarization/)
Lợi ích của Community Summaries trong trả lời câu hỏi "toàn cục"
Một trong những điểm mạnh nổi bật của GraphRAG là khả năng trả lời các câu hỏi mang tính toàn cục, tức là các câu hỏi liên quan đến toàn bộ tập dữ liệu, chứ không chỉ những đoạn văn bản nhỏ lẻ.
Community Summaries được xây dựng dựa trên toàn bộ dữ liệu đầu vào, nhờ quá trình phân tích đồ thị tri thức. Trong quá trình tạo đồ thị, GraphRAG đã:
-
Xem xét mọi thực thể và mối quan hệ trong toàn bộ tập dữ liệu.
-
Tự động phân chia thành các cộng đồng (communities) theo các chủ đề liên kết logic.
-
Tạo bản tóm tắt ngữ nghĩa cho từng cộng đồng.
Kết quả: Hệ thống đã có sẵn một bức tranh tổng quan về toàn bộ dữ liệu.
Quy trình Map-Reduce để trả lời câu hỏi toàn cục:
Khi nhận được một câu hỏi kiểu "global question", GraphRAG áp dụng cách tiếp cận giống Map-Reduce, gồm 3 bước:
-
Group (Gom nhóm):
Chia tất cả các bản community summaries thành các nhóm vừa với cửa sổ ngữ cảnh (context window) của LLM. -
Map (Trả lời theo nhóm):
Gửi câu hỏi đến từng nhóm, yêu cầu LLM trả lời cho từng phần (ví dụ: "Chủ đề chính của nhóm dữ liệu này là gì?"). -
Reduce (Tổng hợp kết quả):
Tập hợp các câu trả lời từ từng nhóm, sau đó cho LLM tóm tắt lại thành một câu trả lời toàn cục duy nhất, đại diện cho toàn bộ tập dữ liệu.
Nhờ Community Summaries và quy trình Map-Reduce, GraphRAG khắc phục hoàn toàn điểm yếu của RAG cũ khi xử lý câu hỏi dạng "Toàn bộ tập dữ liệu nói về cái gì?". Thay vì chỉ "lấy mẫu ngẫu nhiên" các đoạn văn bản gần giống, GraphRAG đảm bảo rằng mọi nội dung trong toàn bộ dataset đều được đưa vào quá trình trả lời, giúp kết quả vừa đầy đủ, vừa chính xác.
Hình 2. Knowledge graph of entity nodes and relationship edges derived from a news dataset, with different colors representing various communities. (Nguồn: https://www.microsoft.com/en-us/research/blog/graphrag-new-tool-for-complex-data-discovery-now-on-github/)
Các bài viết thuộc chuỗi RAG Pattern Series
- Baseline RAG: Tìm Hiểu Về Basic Retriever
- Parent-Child Retriever: Mô Hình Truy Xuất Thông Tin với Ngữ Cảnh Rộng hơn
- Hypothetical Question Retriever (HQR) trong RAG
- Cải tiến Retriever bằng Hypothetical Document Embeddings HyDE
- Cache-Augmented Generation là gì và nó có tốt hơn RAG?
- Semantic Chunking – Cắt văn bản “có hiểu biết” cho AI
- Agentic Chunking – Nâng cao độ chính xác và toàn diện của câu trả lời trong hệ thống RAG