ky-thuat Trung cấp
Chunking là gì trong AI & RAG?
Kỹ thuật chia nhỏ văn bản dài thành các đoạn nhỏ hợp lý để tạo embedding và tối ưu hiệu quả truy xuất thông tin cho LLM.
Cập nhật: 11 tháng 11, 2026 · 2 phút đọc
Chunking (Phân mảnh văn bản) là kỹ thuật chia nhỏ tài liệu văn bản dài (như file PDF, bài báo, mã nguồn) thành các đoạn văn bản nhỏ hơn và có ý nghĩa trọn vẹn, nhằm tối ưu hóa quá trình tính toán embedding và truy xuất thông tin trong hệ thống RAG (Retrieval-Augmented Generation).
Vì sao cần Chunking?
- Giới hạn Context Window & Token: Các mô hình embedding có giới hạn độ dài đầu vào (ví dụ 512 token hoặc 8.192 token). Không thể nhét cả một cuốn sách 500 trang vào một vector embedding duy nhất.
- Độ chính xác ngữ nghĩa (Semantic Granularity): Nếu đoạn văn bản quá dài, embedding sẽ bị “pha loãng” ý nghĩa. Chia nhỏ thành các đoạn tập trung giúp truy xuất đúng đoạn văn chứa câu trả lời.
- Tiết kiệm chi phí LLM: Khi truy xuất các chunk phù hợp nhất, bạn chỉ gửi các thông tin thực sự liên quan vào prompt, tiết kiệm token và giảm hiện tượng mô hình bị phân tâm (lost in the middle).
Các chiến lược Chunking phổ biến
- Fixed-size Chunking (Độ dài cố định): Cắt theo số lượng ký tự hoặc token (ví dụ: 500 token mỗi đoạn) kèm theo một phần gối đầu (chunk overlap, ví dụ 50 token) để tránh mất ngữ cảnh giữa các đoạn cắt.
- Recursive Character Chunking (Đệ quy theo ký tự): Cắt văn bản theo thứ tự ưu tiên các dấu phân tách tự nhiên: đoạn văn (
\n\n), câu (\n,.) rồi đến từ (), giúp giữ nguyên cấu trúc ngữ pháp. - Document-specific Chunking (Theo cấu trúc tài liệu): Cắt theo thẻ Markdown heading, cấu trúc file HTML, hoặc theo hàm/lớp trong code lập trình.
- Semantic Chunking (Theo ngữ nghĩa): Sử dụng khoảng cách embedding giữa các câu liên tiếp; khi phát hiện bước nhảy ngữ nghĩa đột ngột, hệ thống sẽ tự động tách sang chunk mới.
Khi nào dùng?
✅ Khi xây dựng hệ thống RAG hoặc tìm kiếm ngữ nghĩa nội bộ.
✅ Khi xử lý tài liệu dài: hợp đồng, tài liệu kỹ thuật, báo cáo tài chính.
✅ Khi cần kiểm soát dung lượng token gửi vào LLM.
Thẻ
#chunking#rag#embedding#vector-db#llm