Bộ Đếm Token Miễn Phí cho GPT-4, ChatGPT & Các Mô Hình AI
Bộ đếm token chính xác sử dụng thư viện tiktoken của OpenAI. Đếm token cho các mô hình GPT-4, ChatGPT và GPT-3. Quản lý chi phí API và tối ưu hóa lời nhắn AI ngay lập tức.
Bộ Đếm Token
Đầu vào không hợp lệ
Tài liệu hướng dẫn
Bộ đếm token là gì?
Bộ đếm token đo số token mà một đoạn văn bản được tách thành khi mô hình ngôn ngữ AI đọc nó. Token là những mẩu văn bản nhỏ — từ hoàn chỉnh, một phần của từ hoặc dấu câu — mà các mô hình như GPT-4 và ChatGPT xử lý thay vì các chữ cái thô. Công cụ này sử dụng tiktoken, thư viện bộ phân tách token mã nguồn mở do OpenAI phát hành, nên số đếm khớp với kết quả mà chính các mô hình và API của OpenAI tạo ra.
Token hóa hoạt động như thế nào
Bộ phân tách token không chỉ đơn giản là đếm từ. Nó đưa văn bản qua một thuật toán gọi là mã hóa cặp byte (BPE). Thuật toán bắt đầu với từng byte riêng lẻ của văn bản, sau đó liên tục gộp các cặp liền kề phổ biến nhất, dựa trên những mẫu được học từ một khối lượng văn bản lớn trong quá trình huấn luyện. Kết quả là một từ vựng cố định gồm hàng chục nghìn mẩu thường gặp: các từ ngắn hoàn chỉnh, các đoạn từ xuất hiện thường xuyên và các ký tự đơn lẻ dành cho những thành phần hiếm.
Vì vậy, một từ tiếng Anh thường trở thành một token, nhưng những từ dài hơn hoặc bất thường có thể bị tách thành hai token trở lên. Dấu cách thường được gắn vào đầu token tiếp theo thay vì được đếm riêng, còn dấu câu thường là các token riêng.
Các bộ mã hóa được công cụ này hỗ trợ
Tiktoken cung cấp một số bộ mã hóa, mỗi bộ gắn với một dòng mô hình OpenAI. Công cụ này hỗ trợ ba bộ:
| Bộ mã hóa | Được dùng bởi | Kích thước từ vựng xấp xỉ |
|---|---|---|
cl100k_base | Các mô hình thuộc dòng GPT-3,5 và GPT-4, ChatGPT | khoảng 100.000 token |
p50k_base | Các mô hình GPT-3 đời sau | khoảng 50.000 token |
r50k_base | Các mô hình GPT-3 và GPT-2 đời trước | khoảng 50.000 token |
cl100k_base được chọn theo mặc định vì nó bao phủ dòng mô hình mà phần lớn mọi người sử dụng hiện nay. Cùng một văn bản có thể cho số token khác nhau với từng bộ mã hóa, vì mỗi bộ được huấn luyện trên văn bản khác nhau và gộp các ký tự theo cách khác nhau.
Cách tính số token
Không có công thức số học đơn giản nào để chuyển số ký tự hoặc số từ thành số token, vì việc gộp theo BPE phụ thuộc vào chính văn bản cụ thể và từ vựng đã được huấn luyện. Phương pháp chính xác duy nhất là đưa văn bản qua chính bộ phân tách token:
- Chọn bộ mã hóa tương ứng với mô hình đích.
- Đưa văn bản vào bộ phân tách token của bộ mã hóa đó.
- Đếm danh sách mã định danh token thu được. Độ dài của danh sách đó là số token.
Để ước tính sơ bộ cho văn bản tiếng Anh, một token gần bằng bốn ký tự, hoặc khoảng ba phần tư một từ. Đây chỉ là hướng dẫn. Số, mã, văn bản không phải tiếng Anh và cách viết bất thường có thể làm tỷ lệ này thay đổi đáng kể.
Ví dụ minh họa
Xét câu:
Token hóa chia văn bản thành các phần nhỏ.
Với bộ mã hóa cl100k_base, tiktoken tách câu này thành 7 token:
Token, ization, splits, text, into, pieces, .
Lưu ý rằng bản thân “Tokenization” được tách thành hai token, “Token” và “ization”, trong khi mọi từ khác vẫn nguyên vẹn. Dấu chấm cuối câu là một token riêng. Vì vậy, một câu dài 37 ký tự với 5 từ tạo ra 7 token thay vì 6.
Vì sao số token quan trọng
Các nhà cung cấp AI tính phí sử dụng API theo token, bao gồm cả văn bản gửi vào và văn bản được tạo ra để phản hồi, nên số token cho phép dự đoán chi phí trước khi gửi yêu cầu. Mỗi mô hình cũng có độ dài ngữ cảnh tối đa, tức giới hạn về số token mà một yêu cầu và phần trả lời của nó có thể chứa tổng cộng. Giới hạn đó thay đổi tùy mô hình và thay đổi khi các nhà cung cấp phát hành phiên bản mới, vì vậy nên kiểm tra tài liệu hiện hành của mô hình đang sử dụng thay vì dựa vào trí nhớ.
Các câu hỏi thường gặp
Token trong mô hình ngôn ngữ AI là gì? Token là một mẩu văn bản được mô hình ngôn ngữ đọc như một đơn vị. Nó có thể là một từ ngắn hoàn chỉnh, một phần của từ dài hơn, một dấu câu hoặc một dấu cách gắn với từ tiếp theo.
Vì sao các bộ mã hóa khác nhau cho số token khác nhau với cùng một văn bản? Mỗi bộ mã hóa được huấn luyện trên mẫu văn bản riêng và xây dựng từ vựng riêng gồm các mẩu thường gặp. Một từ đủ phổ biến để trở thành một token duy nhất trong một từ vựng có thể không có trong từ vựng khác, nên bị tách theo cách khác.
Dấu câu có được tính là token không? Có. Dấu câu thường được tính là các token riêng, hoặc đôi khi được gộp với ký tự bên cạnh, tùy vào tần suất tổ hợp đó xuất hiện trong quá trình huấn luyện bộ phân tách token.
Token có giống một từ không? Không. Các từ ngắn và phổ biến thường tương ứng với một token. Những từ dài hơn hoặc ít phổ biến hơn, cũng như phần lớn các từ ngoài tiếng Anh, thường bị tách thành hai token trở lên.
Công cụ này chính xác đến mức nào? Công cụ đếm token bằng thư viện tiktoken của chính OpenAI, chạy cùng logic mã hóa mà OpenAI sử dụng nội bộ, nên kết quả khớp với kết quả mà một lệnh gọi API OpenAI báo cáo cho cùng văn bản và bộ mã hóa.
Công cụ này có thể đếm token cho các mô hình không phải của OpenAI không? Công cụ sử dụng các bộ mã hóa của tiktoken, được xây dựng cho các mô hình của OpenAI. Các nhà cung cấp khác, như Anthropic hoặc Google, sử dụng bộ phân tách token riêng, nên có thể cho số đếm khác với cùng một văn bản.
Tài liệu tham khảo
- OpenAI. "tiktoken." GitHub, https://github.com/openai/tiktoken.
- Sennrich, Rico và cộng sự. "Neural Machine Translation of Rare Words with Subword Units." arXiv:1508,07909, 2016, http://arxiv.org/abs/1508.07909.
- Brown, Tom B. và cộng sự. "Language Models are Few-Shot Learners." arXiv:2005,14165, 2020, http://arxiv.org/abs/2005.14165.