Trước khi một mô hình ngôn ngữ có thể đọc bất cứ thứ gì, văn bản phải được chia nhỏ thành các phần mà nó có thể đếm được. Những phần đó được gọi là token, và token hóa chính là quá trình chia nhỏ. Một token có thể là cả một từ, một đoạn văn bản như "ing" hoặc "pre", một dấu chấm câu, hoặc thậm chí là một ký tự đơn lẻ. Mô hình không bao giờ nhìn thấy văn bản thô; nó chỉ nhìn thấy một chuỗi các ID số nguyên được ánh xạ tới các token đó.
Các phương pháp khác nhau có những sự đánh đổi khác nhau. Phân tách từ ở cấp độ từ giữ nguyên nghĩa nhưng tạo ra hàng triệu từ hiếm và gặp khó khăn trong việc xử lý lỗi chính tả. Phân tách ký tự ở cấp độ ký tự có vốn từ vựng nhỏ nhưng tạo ra các chuỗi rất dài. Các phương pháp dưới cấp độ từ như mã hóa cặp byte nằm ở giữa: chúng bắt đầu với các ký tự và liên tục hợp nhất các cặp ký tự thường xuyên nhất cho đến khi đạt được kích thước vốn từ vựng mục tiêu.
Tại sao điều đó lại quan trọng
- Kích thước từ vựng quyết định bảng nhúng và dung lượng bộ nhớ của mô hình.
- Số lượng token xác định cửa sổ ngữ cảnh và chi phí của mỗi lần gọi API.
- Việc phân tách từ kém hiệu quả dẫn đến việc chia nhỏ từ theo những cách gây ảnh hưởng xấu đến hiệu suất đa ngôn ngữ.
- Các ngôn ngữ sử dụng hệ chữ viết không phải Latinh thường cần nhiều từ vựng hơn cho mỗi câu.
Một câu tiếng Anh có thể sử dụng 20 token; cùng một câu đó trong tiếng Thái hoặc tiếng Hindi có thể cần đến 60 token trở lên khi sử dụng bộ phân tích token theo định hướng phương Tây. Sự mất cân bằng này ảnh hưởng đến tốc độ, giá cả và độ chính xác đối với hàng tỷ người nói các ngôn ngữ khác nhau.
Comments
No comments yet. Be the first to share a thought.
Leave a comment