Đánh giá hiệu năng Token-Based và Semantic Chunking trong RAG: So sánh thực nghiệm cho Developer
Trong các hệ thống RAG (Retrieval-Augmented Generation), cách phân tách dữ liệu đầu vào đóng vai trò quyết định chất lượng truy xuất và độ chính xác của câu trả lời. Hai kỹ thuật chunking được sử dụng nhiều nhất hiện nay là Token-Based và Semantic-Based. Mỗi phương pháp tạo ra footprint khác nhau cho embedding, từ đó ảnh hưởng trực tiếp đến retrieval và tổng thể pipeline. Bài viết dưới đây trình bày một thử nghiệm benchmark thực tế nhằm phân tích rõ ưu – nhược điểm của từng phương pháp khi áp dụng vào môi trường triển khai dành cho developer.
Vì sao chunking là một bước bắt buộc trong RAG?
Nguồn dữ liệu đầu vào thường có dung lượng lớn: tài liệu kỹ thuật dài, API specs, logs hệ thống hoặc những tập báo cáo phức tạp. Việc đưa toàn bộ nội dung vào mô hình không chỉ vượt giới hạn token mà còn làm tăng chi phí suy luận. Chunking giúp:
- Tách dữ liệu thành các khối nhỏ sẵn sàng để embedding, phù hợp cho vector database.
- Giảm thời gian truy vấn, vì chỉ vài đoạn văn bản liên quan nhất được đưa vào LLM thay vì toàn bộ tài liệu.
- Giữ được tính liền mạch ngữ cảnh, nếu phương pháp chunking đủ hợp lý.
Một chunk được cấu trúc tốt sẽ giúp mô hình tái dựng ngữ nghĩa chuẩn xác, hạn chế tình trạng trả lời chung chung, nhiễu thông tin hoặc thiếu chi tiết cần thiết trong ngữ cảnh.

Các kỹ thuật chunking phổ biến trong RAG
Trước khi embedding nội dung, chunking là bước tiền xử lý quan trọng. Mỗi phương pháp cắt dữ liệu sẽ tạo ra cấu trúc vector hóa khác nhau, ảnh hưởng trực tiếp đến retrieval accuracy và hiệu năng toàn pipeline.
Ba nhóm kỹ thuật hiện được sử dụng rộng rãi nhất trong các dự án RAG cho developer:
- Token-Based Chunking
- Semantic-Based Chunking
- Hybrid Chunking
Dưới đây là chi tiết từng phương pháp.
Token-Based Chunking
Đây là phương pháp dựa trên giới hạn token cố định (300–500 tokens là phổ biến). Dev có thể triển khai nhanh với các công cụ như RecursiveCharacterTextSplitter (LangChain).
Ưu điểm:
- Dễ thiết lập, tốc độ xử lý nhanh.
- Không phụ thuộc vào các thư viện NLP.
- Kiểm soát kích thước chunk dễ dàng.
Hạn chế:
- Cắt cơ học, dễ chia giữa câu → ngữ cảnh bị vỡ.
- Embedding mất sự mạch lạc với dữ liệu dài.
- Hiệu suất retrieval giảm khi câu hỏi yêu cầu nhiều logic.
Tình huống phù hợp: FAQ ngắn, log ngắn, dữ liệu ít liên kết ngữ nghĩa.
Semantic-Based Chunking
Thay vì dựa vào token, phương pháp này xác định ranh giới dựa trên cấu trúc ngữ nghĩa: câu, đoạn hoặc chủ đề. Dev thường dùng spaCy, NLTK hoặc VnCoreNLP để phân tích.
Ưu điểm:
- Giữ ý nghĩa đầy đủ của câu và đoạn.
- Tăng độ chính xác khi truy vấn phức tạp.
- Phục vụ tốt các tài liệu dạng hướng dẫn, đặc tả kỹ thuật.
Hạn chế:
- Tốn tài nguyên xử lý NLP.
- Chunk dài dễ tiến gần giới hạn token → inference chậm.
Tình huống phù hợp: Tài liệu chuyên sâu, báo cáo R&D, các văn bản có cấu trúc logic chặt.
Hybrid Chunking
Kết hợp hai phương pháp trên: tách theo ngữ nghĩa trước, sau đó kiểm tra token limit và chia nhỏ nếu cần.
Lợi ích:
- Vừa giữ được ngữ cảnh, vừa tránh chunk quá lớn.
- Đảm bảo cả tính chính xác và hiệu năng.
- Được xem là lựa chọn tối ưu trong nhiều hệ thống production.
Benchmark thực nghiệm: Token-Based vs Semantic-Based
Để đánh giá sự khác biệt thực tế, một bài benchmark được thực hiện trên tập dữ liệu kỹ thuật gồm:
- 200.000 tokens nội dung gốc, đã chuẩn hóa và làm sạch.
- 1.000 cặp Q&A ground truth từ API docs, manual kỹ thuật, báo cáo nội bộ.
- 500 truy vấn thực tế dùng để test pipeline.
Pipeline thực hiện gồm:
-
Tiền xử lý: loại bỏ HTML, chuẩn hóa ký tự, xử lý format.
-
Chunking:
- Token-Based: 500 tokens, overlap 50.
- Semantic-Based: tách câu/đoạn bằng spaCy.
- Hybrid: kết hợp semantic và token limit.
-
Embedding: mô hình SentenceTransformers
all-MiniLM-L6-v2. -
Vector DB: ChromaDB.
-
Truy vấn: chọn top-3 chunk theo cosine similarity.
-
Đánh giá: so sánh semantic similarity giữa câu trả lời và ground truth.
Kết quả benchmark
Độ chính xác trung bình
| Phương pháp | Accuracy | Latency | Token cost |
|---|---|---|---|
| Token-Based | 78% | 1.0x | 1.0x |
| Semantic-Based | 85% | 1.6x | 1.5x |
| Hybrid Chunking | 88% | 1.12x | 1.2x |
Diễn giải kết quả
Token-Based: Tốc độ tốt, chi phí thấp, nhưng độ mạch lạc ngữ cảnh thấp → giảm chính xác trong các câu hỏi dạng "tại sao", "như thế nào".
Semantic-Based: Giữ logic nội dung, giúp mô hình suy luận tốt hơn. Tuy nhiên chunk lớn → tăng thời gian embedding và inference.
Hybrid Chunking:
Mức chính xác cao nhất, chi phí và latency cân bằng, phù hợp môi trường production của doanh nghiệp.

Nên chọn phương pháp nào?
Không có phương pháp tối ưu tuyệt đối. Developer nên chọn dựa vào đặc điểm dữ liệu và yêu cầu hệ thống:
Khi nên dùng Token-Based
- Build MVP hoặc prototype nhanh
- Dữ liệu ngắn, mức độ ngữ cảnh thấp
- Ngân sách hạn chế
- Tối ưu tốc độ là ưu tiên hàng đầu
Khi nên dùng Semantic-Based
- Dữ liệu dài, mang tính giải thích
- API docs, tài liệu kỹ thuật, tài liệu R&D
- Câu hỏi mang tính suy luận cao
Khi nên dùng Hybrid Chunking
- Hệ thống chạy thực tế trong doanh nghiệp
- Dữ liệu không đồng nhất: log + tài liệu + FAQ
- Cần cân bằng accuracy – latency – chi phí
Lời khuyên dành cho dev: luôn benchmark trên dataset của chính bạn, vì đặc tính dữ liệu và độ phân mảnh nội dung ảnh hưởng rất lớn đến kết quả.
Kết luận
Chunking là bước ảnh hưởng trực tiếp đến chất lượng RAG và chi phí vận hành. Semantic-Based và Hybrid mang lại độ chính xác cao hơn trong phần lớn trường hợp, nhưng Token-Based vẫn là lựa chọn phù hợp cho hệ thống tối ưu tốc độ hoặc ngân sách thấp. Việc lựa chọn phương pháp cần dựa trên yêu cầu bài toán, cấu trúc dữ liệu và khả năng xử lý của mô hình.
Nguồn tham khảo: https://bizfly.vn/techblog/so-sanh-hieu-qua-token-based-semantic-trong-rag.html
All rights reserved