Chào các bạn! Trong thế giới AI hiện đại, Retrieval-Augmented Generation (RAG) đã trở thành kiến trúc chuẩn mực để kết nối các mô hình ngôn ngữ lớn (LLM) với dữ liệu nội bộ của doanh nghiệp. Tuy nhiên, nếu bạn đã từng triển khai RAG truyền thống dựa trên Vector Database, chắc chắn bạn đã từng gặp phải hiện tượng 'mù ngữ cảnh tổng thể' (Global Context Blindness).Hôm nay, mình sẽ cùng các bạn phân tích Graph RAG — kĩ thuật đột phá giúp giải quyết triệt để bài toán này.
Mục lục bài viết
1. Hạn chế của RAG truyền thống: Vì sao Vector Similarity là chưa đủ?
Phương pháp Vector RAG thông thường hoạt động bằng cách chia nhỏ văn bản (chunking), tạo embedding và lưu vào Vector Database. Khi có câu hỏi, hệ thống tìm các văn bản có cosine similarity cao nhất để đưa vào prompt cho LLM.
Cách tiếp cận này rất xuất sắc với các câu hỏi mang tính tra cứu cụ thể (Explicit Fact Retrieval), ví dụ: 'Mã lỗi X123 nghĩa là gì?'. Tuy nhiên, nó thất bại hoàn toàn khi xử lý các truy vấn tổng hợp mang tính toàn cục (Global Summarization), chẳng hạn: 'Các chủ đề chính được thảo luận trong toàn bộ báo cáo tài chính năm nay là gì?'. Lý do là các đoạn vector tương đồng không thể phản ánh được mối quan hệ phân cấp và liên kết giữa các thực thể nằm rải rác ở hàng nghìn trang tài liệu.
2. Graph RAG là gì? Đột phá từ Microsoft Research
Graph RAG là kĩ thuật tiên tiến kết hợp giữa Knowledge Graph (Đồ thị tri thức) và các mô hình LLM. Thay vì chỉ lưu trữ các đoạn văn bản rời rạc dưới dạng vector, Graph RAG tự động trích xuất các Thực thể (Entities), Quan hệ (Relationships) và Bối cảnh (Claims) để xây dựng nên một mạng lưới tri thức phong phú.
Điểm độc đáo nhất trong nghiên cứu Graph RAG của Microsoft là việc áp dụng thuật toán phân nhóm đồ thị (Graph Community Detection) như Leiden Algorithm để tự động nhóm các thực thể liên quan thành các 'Cộng đồng' (Communities), sau đó tạo bản tóm tắt cấp cao cho từng cộng đồng đó.
3. Quy trình 4 bước xây dựng kiến trúc Graph RAG
Một hệ thống Graph RAG chuẩn bao gồm 4 giai đoạn chính xử lý dữ liệu đầu vào:
- Bước 1 - Source Documents to Text Chunks: Chia nhỏ văn bản gốc thành các chunk có kích thước tối ưu.
- Bước 2 - Entity & Relationship Extraction: Sử dụng LLM để phát hiện tất cả các thực thể (người, tổ chức, công nghệ, khái niệm) và mối quan hệ giữa chúng từ từng chunk.
- Bước 3 - Community Detection & Summarization: Áp dụng thuật toán Leiden để phát hiện các phân vùng đồ thị từ nhỏ đến lớn, đồng thời tạo câu tóm tắt (Summaries) cho từng cụm.
- Bước 4 - Global Query Execution: Khi nhận truy vấn toàn cục, Graph RAG sử dụng các bản tóm tắt cộng đồng để tổng hợp câu trả lời đầy đủ, không bỏ sót thông tin quan trọng.
4. Bảng so sánh: Traditional RAG vs Graph RAG
| Tiêu chí | Traditional Vector RAG | Graph RAG |
|---|---|---|
| Cấu trúc dữ liệu | Vector Embeddings rời rạc | Knowledge Graph kết hợp Graph Embeddings |
| Dạng câu hỏi tối ưu | Local Search (Tra cứu chi tiết) | Global & Multi-hop Search (Tổng hợp & Suy luận) |
| Chi phí Indexing | Thấp, xử lý nhanh | Cao hơn do cần trích xuất đồ thị bằng LLM |
| Độ chính xác ngữ cảnh | Dễ mất ngữ cảnh diện rộng | Giữ nguyên cấu trúc mối quan hệ toàn cục |
5. Lời khuyên triển khai thực tế cho kỹ sư MLOps
Các bạn kỹ sư khi triển khai Graph RAG vào sản phẩm thực tế cần lưu ý cân bằng giữa chi phí và hiệu năng. Do quá trình tạo đồ thị ban đầu đòi hỏi số lượng API call đến LLM khá lớn, giải pháp tối ưu là sử dụng mô hình lai (Hybrid Approach):
- Dùng Vector Search cho các câu hỏi tra cứu thông thường để tối ưu hóa tốc độ và chi phí.
- Dùng Graph RAG Engine cho các truy vấn phức tạp yêu cầu phân tích xu hướng, mối liên hệ hoặc tổng hợp văn bản.
- Tận dụng các framework mã nguồn mở mới như
Microsoft GraphRAG,LangChain Graph Index, hoặc cơ sở dữ liệu đồ thịNeo4jđể tăng tốc độ phát triển.
6. Tài liệu tham khảo & Nguồn trích dẫn
- Edge, D., et al. (2024). From Local to Global: A Graph RAG Approach to Query-Focused Summarization. Microsoft Research. arXiv:2404.16130.
- Microsoft GraphRAG GitHub Repository:
github.com/microsoft/graphrag - Neo4j Developer Blog: Enhancing RAG with Knowledge Graphs.