Tokenization và Chunking – Hai Khái Niệm Quan Trọng Giúp RAG Hiểu Dữ Liệu Mạng
Khi tìm hiểu về Retrieval-Augmented Generation (RAG), chúng ta thường nghe đến hai thuật ngữ: Tokenization và Chunking. Đây là hai bước rất quan trọng trong xử lý ngôn ngữ tự nhiên (Natural Language Processing – NLP), không chỉ với các mô hình ngôn ngữ lớn (LLM) mà còn với nhiều hệ thống AI khác.
Nếu RAG được ví như một kỹ sư đi tìm tài liệu để trả lời câu hỏi, thì Chunking là cách sắp xếp tài liệu thành từng phần hợp lý, còn Tokenization là cách chuyển từng phần đó thành định dạng mà mô hình AI có thể hiểu và xử lý. Chunking – Chia Tài Liệu Thành Các Đoạn Có Ý Nghĩa
Chunking là quá trình chia một tài liệu lớn thành các đoạn nhỏ (chunks) nhưng vẫn giữ được ý nghĩa của nội dung.
Một chunk có thể là:
Việc chia nhỏ là cần thiết vì mọi mô hình ngôn ngữ đều có Context Window, tức giới hạn số lượng token có thể xử lý trong một lần. Nếu một tài liệu quá dài, mô hình sẽ không thể đọc toàn bộ cùng lúc.
Trong RAG, thay vì đưa cả file cấu hình dài hàng nghìn dòng vào LLM, hệ thống sẽ chia thành nhiều phần nhỏ, chẳng hạn:
Nhờ vậy, khi người dùng hỏi về SSH, hệ thống chỉ cần truy xuất đúng phần cấu hình SSH thay vì toàn bộ file. Tokenization – Chuyển Văn Bản Thành Token
Sau khi có các chunk, bước tiếp theo là Tokenization.
Tokenization là quá trình chia văn bản thành các đơn vị nhỏ hơn gọi là token, để mô hình AI có thể xử lý.
Một token có thể là:
Ví dụ, từ:
interface
có thể được tách thành:
inter
face
Hoặc một dòng log như:
%LINK-3-UPDOWN: Interface Gig0/2 changed state to down
có thể được token hóa thành các đơn vị như:
%
LINK
-
3
-
UPDOWN
:
Interface
Gig0
/
2
changed
state
to
down
LLM không đọc văn bản giống con người mà xử lý các token này dưới dạng số để thực hiện tính toán. Ví Dụ Trong Network Operations
Giả sử bạn có log sau:
May 16 10:42:01 router01 %LINK-3-UPDOWN:
Interface Gig0/2 changed state to down
Quá trình xử lý trong RAG có thể diễn ra như sau:
Bước 1 – Chunking
Hệ thống chia log thành các đoạn theo từng sự kiện hoặc nhóm sự kiện liên quan. Ví dụ, toàn bộ thông báo về việc Interface Gig0/2 chuyển sang trạng thái down sẽ được giữ trong cùng một chunk để không làm mất ngữ cảnh.
Bước 2 – Tokenization
Chunk vừa tạo được chia thành các token mà mô hình có thể xử lý, chẳng hạn:
May
16
10
:
42
:
01
router01
%LINK-3-UPDOWN
Interface
Gig0/2
changed
state
to
down
Sau đó các token này được chuyển thành biểu diễn số (numerical representation) để đưa vào mô hình AI. Tại Sao Hai Bước Này Quan Trọng?
Nếu không có Chunking, một file cấu hình hoặc log quá dài sẽ vượt quá giới hạn Context Window của LLM.
Nếu không có Tokenization, mô hình sẽ không thể hiểu và xử lý văn bản.
Khi kết hợp hai bước này:
Trong các hệ thống AI dành cho Network Operations, dữ liệu được xử lý thường bao gồm:
Những tài liệu này thường rất lớn. Vì vậy, trước khi đưa vào Vector Database để phục vụ RAG, chúng sẽ được chunk thành các phần có ý nghĩa, sau đó tokenize để chuyển sang định dạng mà mô hình AI có thể xử lý.
Nhờ đó, khi bạn hỏi:
hệ thống có thể nhanh chóng tìm đúng chunk chứa sự kiện đó, chuyển thành token và gửi cho LLM để tạo ra câu trả lời chính xác dựa trên dữ liệu thực tế. Kết Luận
Chunking và Tokenization là hai bước nền tảng trong các hệ thống NLP và đặc biệt quan trọng đối với RAG. Chunking giúp chia tài liệu lớn thành các phần có ý nghĩa và phù hợp với giới hạn xử lý của mô hình, trong khi Tokenization chuyển các phần đó thành các đơn vị mà AI có thể hiểu và tính toán.
Đối với kỹ sư mạng, việc nắm được hai khái niệm này sẽ giúp hiểu rõ hơn cách các AI Assistant có thể đọc hàng nghìn dòng cấu hình, phân tích log và truy xuất chính xác thông tin cần thiết để hỗ trợ troubleshooting và vận hành hệ thống.
Khi tìm hiểu về Retrieval-Augmented Generation (RAG), chúng ta thường nghe đến hai thuật ngữ: Tokenization và Chunking. Đây là hai bước rất quan trọng trong xử lý ngôn ngữ tự nhiên (Natural Language Processing – NLP), không chỉ với các mô hình ngôn ngữ lớn (LLM) mà còn với nhiều hệ thống AI khác.
Nếu RAG được ví như một kỹ sư đi tìm tài liệu để trả lời câu hỏi, thì Chunking là cách sắp xếp tài liệu thành từng phần hợp lý, còn Tokenization là cách chuyển từng phần đó thành định dạng mà mô hình AI có thể hiểu và xử lý. Chunking – Chia Tài Liệu Thành Các Đoạn Có Ý Nghĩa
Chunking là quá trình chia một tài liệu lớn thành các đoạn nhỏ (chunks) nhưng vẫn giữ được ý nghĩa của nội dung.
Một chunk có thể là:
- Một câu.
- Một đoạn văn.
- Một khối cấu hình (Configuration Block).
- Một nhóm log liên quan đến cùng một sự kiện.
- Hoặc một số lượng token cố định, chẳng hạn 512 hoặc 4096 token.
Việc chia nhỏ là cần thiết vì mọi mô hình ngôn ngữ đều có Context Window, tức giới hạn số lượng token có thể xử lý trong một lần. Nếu một tài liệu quá dài, mô hình sẽ không thể đọc toàn bộ cùng lúc.
Trong RAG, thay vì đưa cả file cấu hình dài hàng nghìn dòng vào LLM, hệ thống sẽ chia thành nhiều phần nhỏ, chẳng hạn:
- Cấu hình SSH.
- Cấu hình OSPF.
- Cấu hình BGP.
- ACL.
- SNMP.
- AAA.
Nhờ vậy, khi người dùng hỏi về SSH, hệ thống chỉ cần truy xuất đúng phần cấu hình SSH thay vì toàn bộ file. Tokenization – Chuyển Văn Bản Thành Token
Sau khi có các chunk, bước tiếp theo là Tokenization.
Tokenization là quá trình chia văn bản thành các đơn vị nhỏ hơn gọi là token, để mô hình AI có thể xử lý.
Một token có thể là:
- Một ký tự.
- Một từ.
- Hoặc một phần của từ (subword).
Ví dụ, từ:
interface
có thể được tách thành:
inter
face
Hoặc một dòng log như:
%LINK-3-UPDOWN: Interface Gig0/2 changed state to down
có thể được token hóa thành các đơn vị như:
%
LINK
-
3
-
UPDOWN
:
Interface
Gig0
/
2
changed
state
to
down
LLM không đọc văn bản giống con người mà xử lý các token này dưới dạng số để thực hiện tính toán. Ví Dụ Trong Network Operations
Giả sử bạn có log sau:
May 16 10:42:01 router01 %LINK-3-UPDOWN:
Interface Gig0/2 changed state to down
Quá trình xử lý trong RAG có thể diễn ra như sau:
Bước 1 – Chunking
Hệ thống chia log thành các đoạn theo từng sự kiện hoặc nhóm sự kiện liên quan. Ví dụ, toàn bộ thông báo về việc Interface Gig0/2 chuyển sang trạng thái down sẽ được giữ trong cùng một chunk để không làm mất ngữ cảnh.
Bước 2 – Tokenization
Chunk vừa tạo được chia thành các token mà mô hình có thể xử lý, chẳng hạn:
May
16
10
:
42
:
01
router01
%LINK-3-UPDOWN
Interface
Gig0/2
changed
state
to
down
Sau đó các token này được chuyển thành biểu diễn số (numerical representation) để đưa vào mô hình AI. Tại Sao Hai Bước Này Quan Trọng?
Nếu không có Chunking, một file cấu hình hoặc log quá dài sẽ vượt quá giới hạn Context Window của LLM.
Nếu không có Tokenization, mô hình sẽ không thể hiểu và xử lý văn bản.
Khi kết hợp hai bước này:
- Tài liệu được chia thành các phần hợp lý, vẫn giữ nguyên ngữ cảnh.
- Mỗi phần đều nằm trong giới hạn xử lý của mô hình.
- Việc tìm kiếm trong RAG trở nên nhanh và chính xác hơn.
- LLM chỉ nhận những thông tin liên quan nhất để tạo câu trả lời.
Trong các hệ thống AI dành cho Network Operations, dữ liệu được xử lý thường bao gồm:
- Running Configuration.
- Syslog.
- NetFlow.
- Telemetry.
- Báo cáo RCA.
- Security Playbook.
- Tài liệu vận hành.
Những tài liệu này thường rất lớn. Vì vậy, trước khi đưa vào Vector Database để phục vụ RAG, chúng sẽ được chunk thành các phần có ý nghĩa, sau đó tokenize để chuyển sang định dạng mà mô hình AI có thể xử lý.
Nhờ đó, khi bạn hỏi:
"Tại sao Interface Gig0/2 bị down lúc 10:42?"
hệ thống có thể nhanh chóng tìm đúng chunk chứa sự kiện đó, chuyển thành token và gửi cho LLM để tạo ra câu trả lời chính xác dựa trên dữ liệu thực tế. Kết Luận
Chunking và Tokenization là hai bước nền tảng trong các hệ thống NLP và đặc biệt quan trọng đối với RAG. Chunking giúp chia tài liệu lớn thành các phần có ý nghĩa và phù hợp với giới hạn xử lý của mô hình, trong khi Tokenization chuyển các phần đó thành các đơn vị mà AI có thể hiểu và tính toán.
Đối với kỹ sư mạng, việc nắm được hai khái niệm này sẽ giúp hiểu rõ hơn cách các AI Assistant có thể đọc hàng nghìn dòng cấu hình, phân tích log và truy xuất chính xác thông tin cần thiết để hỗ trợ troubleshooting và vận hành hệ thống.