Trong bài viết này
Từ được đánh dấu có giải thích. Di chuột hoặc chạm để xem, hay mở từ điển AI.
“Trí tuệ nhân tạo” có bốn phần cách nhau bằng khoảng trắng. Nhưng điều đó không bảo đảm mô hình nhìn thấy đúng bốn token. Nếu bạn từng thấy một đoạn tiếng Việt chạm giới hạn sớm hơn dự tính, điểm cần kiểm tra đầu tiên là cách công cụ chia và mã hóa văn bản.
Token là đơn vị do bộ mã hóa tạo ra
Trước khi văn bản đi vào mô hình, tokenizer chuyển nó thành một chuỗi đơn vị và mã số tương ứng. Một token có thể gần với một từ, một phần từ, dấu câu hoặc một mảnh biểu diễn ký tự, tùy phương pháp và bộ từ vựng.
Tài liệu tokenization của Hugging Face giới thiệu BPE, WordPiece và Unigram: các cách chia giúp biểu diễn văn bản bằng những mảnh có thể tái sử dụng. Không có một cách tách phổ quát áp dụng cho mọi mô hình.
Vì thế, một hình minh họa cắt câu thành các ô chỉ giúp thấy ý tưởng. Nó không phải kết quả token hóa chính xác của mọi dịch vụ. Muốn biết số token thật, bạn cần dùng đúng tokenizer và cấu hình của mô hình đang xét.
Mô hình tự hồi quy tính xác suất token tiếp theo từ ngữ cảnh hiện có, chọn một token rồi nối vào chuỗi. Chuỗi mới trở thành ngữ cảnh cho lượt tiếp theo.
↔ Vuốt ngang để xem toàn bộ sơ đồ.
01 / Đọc ngữ cảnh
Mô hình xử lý các token của yêu cầu và phần trả lời đã có.
02 / Tính xác suất
Từ ngữ cảnh đó, mô hình tính phân bố xác suất cho những token có thể xuất hiện tiếp theo.
03 / Chọn token
Cách giải mã quyết định token được chọn; không phải lúc nào cũng lấy token có xác suất cao nhất.
04 / Nối và lặp
Token được nối vào chuỗi để tạo ngữ cảnh mới. Quá trình lặp đến điều kiện dừng.
Các ô dùng từ nguyên vẹn để dễ quan sát; đây không phải kết quả của một tokenizer cụ thể. Token thực tế có thể chỉ là một phần của từ.
Khoảng trắng trong tiếng Việt không phải ranh giới chắc chắn
Tiếng Việt thường dùng khoảng trắng giữa các tiếng, trong khi một từ có thể gồm nhiều tiếng. “Sinh viên” có hai phần cách nhau bằng dấu cách nhưng diễn đạt một đơn vị từ vựng quen thuộc. Tokenizer lại tuân theo quy tắc và bộ từ vựng được xây dựng cho nó, chứ không nhất thiết theo cách phân tích từ của người đọc.
Dấu thanh, chữ viết tắt, tên riêng và chuỗi mã sản phẩm cũng làm cách chia khác nhau. Hai câu có cùng số ký tự có thể có số token khác nhau. Ngược lại, thêm một dấu câu không nhất thiết chỉ thêm đúng một token.
Đừng bỏ dấu tiếng Việt chỉ để hy vọng tiết kiệm. “Ma”, “má” và “mã” có thể mang nghĩa khác nhau; câu không dấu khiến việc diễn giải khó hơn. Hãy giữ nội dung đúng trước, rồi đo và tối ưu bằng dữ liệu thực tế của công việc.
Số token ảnh hưởng việc gửi và nhận nội dung
Giới hạn ngữ cảnh thường được mô tả bằng token. Phần hướng dẫn, lịch sử hội thoại, tài liệu và câu trả lời đều có thể tham gia ngân sách này theo quy định của hệ thống. Chỉ đếm câu hỏi cuối cùng sẽ dễ bỏ sót phần lớn đầu vào thực tế.
Một ví dụ minh họa: bạn gửi yêu cầu tóm tắt ngắn nhưng đính kèm cả sổ tay dài và nhiều lượt trao đổi. Việc yêu cầu đầu ra chỉ vài dòng không làm sổ tay biến mất khỏi phần đầu vào. Bạn cần xem tổng nội dung được gửi, rồi giữ phần liên quan đến nhiệm vụ.
Một số sản phẩm tự cắt, tóm tắt hoặc lựa chọn lịch sử. Đừng suy ra hành vi của sản phẩm chỉ từ độ dài cửa sổ chat; cần đọc mô tả của công cụ và kiểm tra những gì thực sự còn được cung cấp cho mô hình.
Đo đúng trước khi tối ưu
Hãy lập một nhóm văn bản đại diện: câu có dấu, không dấu, tên địa điểm, bảng số và đường dẫn. Đếm bằng cùng tokenizer, ghi tên tokenizer và phiên bản nếu công cụ hiển thị. Không lấy tỷ lệ đo trên một câu làm quy luật cho mọi tiếng Việt.
Khi cần giảm đầu vào, xóa đoạn lặp và phần không liên quan thường có ý nghĩa hơn viết tắt toàn bộ. Giữ nguyên đơn vị, phủ định và điều kiện ngoại lệ. Một bản rút gọn ít token nhưng mất chữ “không” có thể đổi hẳn nhiệm vụ.
Bài tập: so sánh có kiểm soát
Chuẩn bị năm câu tự viết, mỗi câu có bản đầy đủ và bản rút gọn. Nếu có công cụ đếm đúng tokenizer, ghi số token; nếu chưa có, chỉ ghi dự đoán và đánh dấu là chưa đo. Không tự điền con số giả làm kết quả thật.
Tiêu chí tự kiểm: các bản rút gọn giữ nguyên nghĩa, có tên bộ mã hóa khi báo số đo, và bạn giải thích được vì sao khoảng trắng không đủ để đếm token. Đọc tiếp cửa sổ ngữ cảnh để hiểu giới hạn ấy tác động đến hội thoại.