Chunk (Phân đoạn)

Các đơn vị nhỏ được chia từ dữ liệu hoặc văn bản lớn để dễ xử lý hơn. Được sử dụng rộng rãi trong đối phó giới hạn token của AI, truyền phát dữ liệu (streaming) và truyền tệp.

Chunk (phân đoạn) là các mảnh dữ liệu được chia từ dữ liệu lớn theo kích thước cố định hoặc đơn vị có ý nghĩa. Từ tiếng Anh "chunk" (khối) đã trở thành thuật ngữ kỹ thuật phổ biến. Trong xử lý văn bản, truyền thông mạng và AI, chunk được dùng với ý nghĩa hơi khác nhau, nhưng bản chất chung là "chia nhỏ thứ lớn thành đơn vị dễ xử lý".

Trong ngữ cảnh AI và LLM (mô hình ngôn ngữ lớn), chunking là quá trình chia văn bản thành các phần vừa với cửa sổ ngữ cảnh (context window) của mô hình. GPT-4 có cửa sổ ngữ cảnh 128.000 token, Claude là 200.000 token, nhưng khi xử lý tài liệu dài có thể vượt quá giới hạn này. Phương pháp phổ biến là chia tài liệu thành các chunk phù hợp, xử lý từng chunk riêng rồi tổng hợp kết quả.

Chất lượng chunking phụ thuộc vào độ chi tiết và cách chọn ranh giới phân chia. Chunking cố định (ví dụ: chia mỗi 1.000 ký tự) dễ triển khai nhưng có thể cắt giữa câu hoặc đoạn, làm mất ngữ cảnh. Chunking theo ngữ nghĩa chia tại các ranh giới cấu trúc như đoạn văn, phần (section), tiêu đề, đảm bảo mỗi chunk là một đơn vị có ý nghĩa trọn vẹn. Kỹ thuật overlap (chồng lấp một phần giữa các chunk liền kề) giúp giảm mất thông tin tại ranh giới. Với văn bản tiếng Việt, cần chú ý rằng ranh giới từ không phải lúc nào cũng trùng với khoảng trắng.

HTTP chunked transfer encoding (Transfer-Encoding: chunked) là cơ chế gửi dữ liệu theo từng chunk nhỏ khi không biết trước kích thước phản hồi. Trong các ứng dụng streaming như ChatGPT, văn bản được tạo ra và gửi theo thời gian thực theo từng chunk, cho phép người dùng bắt đầu đọc mà không cần đợi phản hồi hoàn chỉnh.

Trong xử lý ngôn ngữ tự nhiên (NLP), chunking là quá trình trích xuất các cụm danh từ hoặc cụm động từ từ chuỗi từ đã được gán nhãn từ loại. Ví dụ, nhận diện "công viên lớn ở Hà Nội" là một cụm danh từ thay vì các từ rời rạc "công viên", "lớn", "ở", "Hà Nội".

Về mối quan hệ với đếm ký tự, thiết kế kích thước chunk rất quan trọng. Trong hệ thống RAG (Retrieval-Augmented Generation), tài liệu được chia thành chunk và lưu vào cơ sở dữ liệu vector. Chunk quá nhỏ sẽ mất ngữ cảnh, quá lớn sẽ giảm độ chính xác tìm kiếm. Thông thường 200-1.000 ký tự (hoặc 100-500 token) được khuyến nghị, nhưng kích thước tối ưu phụ thuộc vào tính chất tài liệu và mục đích sử dụng.

Chia sẻ bài viết này