AI Hunter
Member
Bạn có một bộ tài liệu khổng lồ (ví dụ: hồ sơ vụ án hoặc báo cáo tài chính 10 năm).
Bạn hỏi AI: "Tóm tắt những mâu thuẫn chính giữa ông A và tập đoàn B."
Sự khác biệt nằm ở chỗ: Vector Search nhìn thấy các ĐIỂM dữ liệu (Dots), còn GraphRAG nhìn thấy các ĐƯỜNG KẾT NỐI (Lines).
Khi bạn đặt câu hỏi, AI không chỉ tìm vector, mà nó duyệt qua các "Tóm tắt cộng đồng" này để có cái nhìn toàn cảnh (Global Context).
Bước 1: Cài đặt
Bước 2: Chuẩn bị dữ liệu
Tạo thư mục `input` và ném file `.txt` tài liệu của bạn vào đó (ví dụ: cuốn truyện Harry Potter hoặc tài liệu công ty).
Bước 3: Khởi tạo Project
Lệnh này tạo ra file cấu hình `.env` và `settings.yaml`. Bạn cần vào file `.env` để điền `GRAPHRAG_API_KEY` (OpenAI Key).
Bước 4: Chạy Indexing (Tốn tiền đấy!)
Quá trình này sẽ gọi GPT-4 liên tục để trích xuất Entity. Hãy cẩn thận ví tiền.
Bước 5: Truy vấn (Query)
Có 2 chế độ tìm kiếm:
* Local Search: Tìm chi tiết cụ thể (kết hợp Vector + Graph).
* Global Search: Câu hỏi tổng quát (Dùng Community Summaries).
Cộng đồng đang phát triển các bản fork để chạy với Ollama (Llama 3).
Ý tưởng:
1. Dùng Llama 3 để trích xuất Entity (Rẻ, chạy local).
2. Lưu Graph vào Neo4j hoặc NetworkX.
3. Dùng Llama 3 để trả lời câu hỏi.
(Phần này khá phức tạp và cần can thiệp sâu vào code, mình sẽ có bài hướng dẫn riêng nếu anh em quan tâm).
Nếu bạn đang xây dựng Chatbot cho Pháp lý, Y tế, hoặc Điều tra tài chính - nơi mà "mối quan hệ" quan trọng hơn "từ khóa" - thì GraphRAG là công nghệ bắt buộc phải học trong năm 2026.
Bạn hỏi AI: "Tóm tắt những mâu thuẫn chính giữa ông A và tập đoàn B."
- RAG truyền thống (Vector Search): Sẽ tìm các đoạn văn bản có chứa "ông A", "tập đoàn B". Nó tìm thấy 5 mảnh thông tin rời rạc. Kết quả: Trả lời chung chung, thiếu sự liên kết.
- GraphRAG (Knowledge Graph): Nó biết "Ông A" từng là "Giám đốc" của "Công ty con C", và "Công ty C" bị "Tập đoàn B" thâu tóm. Nó xâu chuỗi lại và trả lời: "Mâu thuẫn bắt nguồn từ vụ thâu tóm công ty C...".
Sự khác biệt nằm ở chỗ: Vector Search nhìn thấy các ĐIỂM dữ liệu (Dots), còn GraphRAG nhìn thấy các ĐƯỜNG KẾT NỐI (Lines).
1. GraphRAG hoạt động như thế nào?
Thay vì chỉ cắt nhỏ văn bản (Chunking) và nhét vào Vector DB, GraphRAG đi qua một quy trình xử lý công phu hơn nhiều (Indexing):- Trích xuất thực thể (Entity Extraction): Dùng LLM để đọc văn bản và lôi ra các danh từ riêng (Người, Tổ chức, Địa điểm, Sự kiện).
- Xây dựng quan hệ (Relationship Extraction): Xác định mối quan hệ giữa các thực thể (A là cha của B, X đầu tư vào Y).
- Phân cụm cộng đồng (Community Detection): Đây là thuật toán đặc biệt của Microsoft (Leiden algorithm). Nó gom các thực thể liên quan chặt chẽ lại thành các "cộng đồng".
- Tóm tắt cộng đồng (Community Summarization): LLM sẽ viết tóm tắt cho từng nhóm này.
Khi bạn đặt câu hỏi, AI không chỉ tìm vector, mà nó duyệt qua các "Tóm tắt cộng đồng" này để có cái nhìn toàn cảnh (Global Context).
2. Khi nào nên dùng GraphRAG?
Đừng vội vứt bỏ Vector Search. GraphRAG rất mạnh nhưng chi phí Index (tiền API) cao hơn nhiều.| Loại câu hỏi | Vector RAG (Cũ) | GraphRAG (Mới) |
|---|---|---|
| "Ai là tác giả cuốn sách này?" (Tra cứu cụ thể) | Tốt & Rẻ | Hơi thừa thãi |
| "Quy định về nghỉ phép nằm ở trang nào?" (Tìm kiếm chính xác) | Tốt nhất | Không cần thiết |
| "Chủ đề chính xuyên suốt bộ tài liệu này là gì?" (Tổng hợp toàn cục) | Rất tệ (Fail) | Xuất sắc |
| "Mối quan hệ ngầm giữa các nhân vật là gì?" (Kết nối manh mối) | Kém | Vô đối |
3. Hướng dẫn chạy thử GraphRAG của Microsoft
Microsoft đã open-source gói `graphrag`. Dưới đây là cách cài đặt nhanh.Bước 1: Cài đặt
Bash:
pip install graphrag
Bước 2: Chuẩn bị dữ liệu
Tạo thư mục `input` và ném file `.txt` tài liệu của bạn vào đó (ví dụ: cuốn truyện Harry Potter hoặc tài liệu công ty).
Bước 3: Khởi tạo Project
Bash:
python -m graphrag.index --init --root ./my_graph_project
Bước 4: Chạy Indexing (Tốn tiền đấy!)
Quá trình này sẽ gọi GPT-4 liên tục để trích xuất Entity. Hãy cẩn thận ví tiền.
Bash:
python -m graphrag.index --root ./my_graph_project
Bước 5: Truy vấn (Query)
Có 2 chế độ tìm kiếm:
* Local Search: Tìm chi tiết cụ thể (kết hợp Vector + Graph).
* Global Search: Câu hỏi tổng quát (Dùng Community Summaries).
Bash:
# Hỏi câu hỏi tổng quát
python -m graphrag.query \
--root ./my_graph_project \
--method global \
--query "Phân tích các chủ đề chính trong tài liệu này"
4. Kết hợp GraphRAG + Local LLM (Ollama)
Vì GraphRAG của Microsoft mặc định dùng GPT-4 nên rất tốn kém (indexing một cuốn sách có thể mất vài chục $).Cộng đồng đang phát triển các bản fork để chạy với Ollama (Llama 3).
Ý tưởng:
1. Dùng Llama 3 để trích xuất Entity (Rẻ, chạy local).
2. Lưu Graph vào Neo4j hoặc NetworkX.
3. Dùng Llama 3 để trả lời câu hỏi.
(Phần này khá phức tạp và cần can thiệp sâu vào code, mình sẽ có bài hướng dẫn riêng nếu anh em quan tâm).
Kết luận
GraphRAG không thay thế RAG truyền thống, nó bổ sung cho những điểm mù của RAG.Nếu bạn đang xây dựng Chatbot cho Pháp lý, Y tế, hoặc Điều tra tài chính - nơi mà "mối quan hệ" quan trọng hơn "từ khóa" - thì GraphRAG là công nghệ bắt buộc phải học trong năm 2026.
Bài viết liên quan