Giới thiệu về Agentic Chunking
Trong bài trước, chúng ta đã tìm hiểu về Semantic Chunking – kỹ thuật cắt văn bản “có hiểu biết” dựa trên embedding, giúp mô hình AI phân đoạn văn bản thành các phần nhỏ có ý nghĩa để truy xuất hiệu quả. Tuy nhiên, Semantic Chunking vẫn còn một số giới hạn khi phải xử lý các văn bản phức tạp, nơi việc hiểu sâu sắc ngữ cảnh và nội dung chi tiết của từng câu là rất quan trọng.
Thay vì chỉ đơn thuần dựa vào embedding, Agentic Chunking cho phép các LLMs chủ động đánh giá từng câu trong văn bản để quyết định xem câu đó nên được thêm vào chunk hiện tại hay tạo thành một chunk mới. Đồng thời, hệ thống cũng liên tục cập nhật tiêu đề (Title) và tóm tắt (Summary) của từng chunk dựa trên nội dung được bổ sung, giúp tổ chức thông tin rõ ràng và chính xác hơn. Quy trình này không chỉ nâng cao độ chính xác và tính toàn diện của các phần thông tin được chia nhỏ, mà còn hỗ trợ hiệu quả cho các hệ thống truy xuất và sinh câu trả lời tự động, đặc biệt là trong các mô hình Retrieval-Augmented Generation.
Quy trình Agentic Chunking
Agentic Chunking là một phương pháp chia nhỏ văn bản linh hoạt, thông minh, được điều khiển bởi các mô hình ngôn ngữ lớn. Quy trình này giúp tạo ra các đoạn chunk có nội dung tập trung, dễ quản lý và nâng cao chất lượng truy xuất thông tin.
Các bước chính trong quy trình Agentic Chunking bao gồm:
-
Khởi tạo chunk đầu tiên với câu đầu tiên
Hệ thống bắt đầu bằng việc tạo một chunk ban đầu chứa câu đầu tiên của văn bản. Đồng thời, nó cập nhật tiêu đề Title và tóm tắt Summary của chunk này dựa trên nội dung câu vừa thêm. -
Duyệt lần lượt từng câu trong văn bản
Agent (mô hình LLM) sẽ phân tích từng câu tiếp theo theo thứ tự trong văn bản. Mỗi câu được xem xét kỹ lưỡng để xác định xem có nên đưa vào chunk hiện tại hay không. -
Quyết định thêm câu vào chunk hiện tại hoặc tạo chunk mới
-
Nếu câu mới có liên quan chặt chẽ về nội dung và ngữ cảnh với chunk hiện tại, câu sẽ được thêm vào chunk đó. Sau đó, Title và Summary của chunk được cập nhật lại để phản ánh nội dung mới.
-
Nếu câu không phù hợp để thêm vào chunk hiện tại (ví dụ: thay đổi chủ đề hoặc quá dài gây mất tập trung), hệ thống sẽ tạo một chunk mới với câu đó làm nội dung khởi đầu. Title và Summary cho chunk mới cũng được thiết lập dựa trên câu này.
-
-
Lặp lại cho đến hết văn bản
Quá trình này được lặp đi lặp lại cho từng câu trong văn bản, liên tục tạo và cập nhật các chunk sao cho mỗi chunk đều mang ý nghĩa rõ ràng, có tiêu đề và tóm tắt đầy đủ. -
Kết quả đầu ra
Kết thúc quy trình, văn bản được chia thành một tập các chunk vừa đủ, được tổ chức theo nội dung và ngữ cảnh. Mỗi chunk có Title và Summary rõ ràng, giúp hệ thống truy xuất và xử lý hiệu quả hơn.
Quy trình Agentic Chunking tận dụng khả năng hiểu ngữ cảnh sâu sắc của LLM để phân đoạn văn bản một cách linh hoạt, khác biệt với các phương pháp tách đoạn truyền thống dựa trên quy tắc cứng nhắc. Nhờ đó, thông tin được tổ chức tối ưu, hỗ trợ hiệu quả cho các ứng dụng AI như truy xuất dữ liệu, tạo câu trả lời tự động hoặc tổng hợp nội dung.
Khi nào nên dùng Agentic Chunking trong RAG
-
Dữ liệu lớn, phức tạp, đa dạng chủ đề: Khi tài liệu nguồn rất lớn, nhiều chủ đề hoặc nhiều định dạng, Agentic Chunking giúp chia nhỏ và quản lý thông tin hiệu quả.
-
Cần xử lý ngữ cảnh và đa tác nhân: Nếu hệ thống cần nhiều agent chuyên trách xử lý các phần khác nhau để tăng độ chính xác, linh hoạt trong truy xuất.
-
Yêu cầu câu trả lời đa chiều, nhiều nguồn: Khi muốn kết hợp thông tin từ nhiều chunk, nhiều nguồn khác nhau để tạo ra câu trả lời toàn diện, sâu sắc.
-
Mục tiêu tăng tính kiểm soát và tương tác: Khi muốn agent chủ động lựa chọn chunk phù hợp dựa trên mục tiêu truy vấn, không chỉ dựa trên tìm kiếm đơn thuần.
-
Ứng dụng phức tạp, như chatbot thông minh, hỗ trợ nghiên cứu, tổng hợp báo cáo: Nơi cần hiểu rõ từng phần nhỏ của tài liệu để phản hồi chính xác, đa dạng.
Khi nào không nên dùng
-
Dữ liệu nhỏ hoặc đơn giản: Với tài liệu ít, nội dung tập trung, việc chia nhỏ và quản lý bằng agent phức tạp không cần thiết, gây overhead.
-
Yêu cầu tốc độ truy vấn cực nhanh, thời gian thực: Agentic Chunking có thể làm chậm do nhiều bước xử lý và tương tác giữa các agent.
-
Hệ thống tài nguyên hạn chế: Cần nhiều tài nguyên tính toán và bộ nhớ cho việc chunking, indexing và điều phối các agent, không phù hợp với hệ thống nhẹ.
-
Độ phức tạp làm khó bảo trì: Khi hệ thống quá phức tạp, việc quản lý và mở rộng agent có thể gây khó khăn cho phát triển và bảo trì.
-
Không phù hợp với các trường hợp truy vấn đơn giản, trực tiếp: Nếu truy vấn chỉ cần lấy một câu trả lời ngắn, rõ ràng từ một nguồn duy nhất thì Agentic Chunking là thừa.
- Chi phí tính toán và vận hành rất cao
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