Tìm hiểu về Tokenization
Bạn triển khai một chatbot. Các truy vấn tiếng Anh sử dụng 42 token. Một người dùng tiếng Tây Ban Nha gửi một truy vấn và nó sử dụng tới 103 token. Đột nhiên, chi phí API của bạn tăng vọt 40%.
Điều này xảy ra khi bạn coi tokenization chỉ là một phần hạ tầng vô hình. Mọi mô hình ngôn ngữ lớn đều sử dụng một trong bốn thuật toán subword (mã hóa dưới từ). Lựa chọn của bạn sẽ quyết định kích thước từ vựng, hiệu quả ngôn ngữ và hóa đơn hàng tháng của bạn.
Tokenization kiểm soát ba yếu tố quan trọng:
- Chi phí suy luận (Inference cost). Các API LLM tính phí theo token. Một từ vựng nhỏ có thể chia một từ thành 8 token. Một từ vựng lớn có thể xử lý nó chỉ trong 3 token. Sự khác biệt này gây tốn kém tiền bạc thực tế khi triển khai ở quy mô lớn.
- Độ bao phủ từ vựng (Vocabulary coverage). Từ vựng kém sẽ tạo ra các chuỗi dài hơn. Điều này dẫn đến việc tạo văn bản chậm hơn và chi phí cao hơn.
- Hành vi của mô hình (Model behavior). Nếu một tokenizer chia "cowboy" thành ["cow", "boy"], mô hình sẽ học khác với việc nó chia thành ["c", "owb", "oy"].
Dưới đây là cách bốn loại chính hoạt động:
BPE (Byte Pair Encoding)
- Cách hoạt động: Nó bắt đầu với các ký tự. Nó đếm các cặp liền kề thường xuyên và hợp nhất chúng thành các token mới. Quá trình này lặp lại cho đến khi đạt được kích thước mục tiêu.
- Ưu điểm: Nhanh và có tính xác định (deterministic).
- Người dùng: GPT-4o, Llama 3, Mistral.
WordPiece
- Cách hoạt động: Tương tự như BPE nhưng sử dụng xác suất (likelihood) thay vì tần suất thô. Nó chọn các lần hợp nhất giúp tối đa hóa xác suất của dữ liệu huấn luyện.
- Ưu điểm: Tạo ra các token có ý nghĩa về mặt ngôn ngữ học hơn.
- Người dùng: BERT, các mô hình của Google.
SentencePiece
- Cách hoạt động: Nó xử lý đầu vào dưới dạng các byte Unicode thô. Nó không cần bước tiền token hóa (pre-tokenization) như việc chia tách dựa trên khoảng trắng.
- Ưu điểm: Tốt nhất cho hỗ trợ đa ngôn ngữ vì nó không phụ thuộc vào ngôn ngữ (language-agnostic).
- Người dùng: Llama 2, Llama 3, Gemma.
Unigram
- Cách hoạt động: Nó bắt đầu với một từ vựng khổng lồ và cắt tỉa dần bằng cách sử dụng một mô hình xác suất. Nó chọn con đường phân đoạn (segmentation path) tốt nhất.
- Ưu điểm: Ánh xạ từ token sang ý nghĩa nhất quán hơn.
- Người dùng: T5, XLNet.
Những lưu ý quan trọng dành cho nhà phát triển:
- Chú ý đến sự kết hợp ngôn ngữ của bạn. Các mô hình BPE dựa vào khoảng trắng sẽ gặp khó khăn với các ngôn ngữ như tiếng Nhật hoặc tiếng Hindi. Hãy sử dụng SentencePiece cho các sản phẩm toàn cầu.
- Cố định phiên bản của bạn. Việc chuyển từ
cl100k_basesango200k_basesẽ làm thay đổi số lượng token của bạn. Luôn theo dõi mã hóa nào bạn đang sử dụng trong các lần đánh giá. - Thực hiện benchmark chính xác. Đừng so sánh số lượng token giữa các dòng mô hình khác nhau. Luôn benchmark bằng cách sử dụng số lượng ký tự hoặc byte để đảm bảo tính chính xác.
Hiểu rõ các công cụ này giúp bạn ra mắt các sản phẩm tiết kiệm chi phí thay vì khiến các đội ngũ tài chính phải ngỡ ngàng.
Cộng đồng học tập tùy chọn: https://t.me/GyaanSetuAi