Lập kế hoạch AI / CLEARBYTE

Token AI và số từ: đo yêu cầu trước khi ước lượng chi phí

Token là đơn vị do tokenizer cụ thể tạo ra, không phải lượng từ hay ký tự cố định. Đếm văn bản chính xác cần tokenizer và thiết lập phù hợp. Với API đầy đủ, tính cả cấu trúc thông điệp và công cụ, rồi so ước lượng với usage nhà cung cấp trả.

Trong hướng dẫn này

Bộ đếm từ hữu ích cho độ dài bài viết nhưng không cho biết đáng tin rằng request AI vừa context hay tốn bao nhiêu. Cùng văn bản thấy được có thể chia khác giữa tokenizers. Một request thường có nhiều thứ ngoài phần dán trong một message.

Quy trình tách đo raw text, đo request và usage tính phí. Có ví dụ đếm ngoại tuyến cùng bảng điền kết quả thật. Không bịa số token chính xác cho model chưa chạy; phải lưu danh tính và thiết lập mới tái lập so sánh được.

Tách từ, ký tự Unicode và token

Một từ có thể thành một token, nhiều mảnh nhỏ hoặc phần chứa dấu câu và khoảng trắng. Hugging Face giải thích cách theo từ, ký tự và subword. Ngôn ngữ, cách viết, code, whitespace và từ vựng tokenizer đều ảnh hưởng cách chia.

Đếm Unicode trả lời câu hỏi khác. Có ký tự dùng nhiều code units hoặc bytes, một biểu tượng nhìn thấy có thể gồm nhiều code points. Không đại lượng nào có quy đổi phổ quát sang token. Tỷ lệ ký tự/token chỉ là heuristic thô cho mẫu nêu rõ, không phải quy luật mọi ngôn ngữ.

Chọn đại lượng đúng với nhiệm vụ
Nhiệm vụPhép đo hữu íchGiới hạn
Kiểm tra độ dài bàiTừ hoặc ký tự UnicodeKhông xác định token của model
Đo raw file bằng tokenizer cụ thểToken IDs của tokenizer và settings đóCó thể thiếu format chat và overhead
Ước lượng request API có cấu trúcCách đếm hỗ trợ hoặc định dạng chính xácCó thể khác usage cuối
Đối chiếu usage tính tiềnUsage thật và định nghĩa tính phí hiện tạiKhông là estimate request nhà cung cấp khác

Đếm mẫu cục bộ với tokenizer đã biết

Với định dạng Hugging Face tokenizers, nạp tokenizer.json cục bộ đúng và encode tệp UTF-8. Ghi model/tokenizer ID, revision tệp, phiên bản package và có special tokens không. Ví dụ dùng API tokenizers 0.23.2, tắt padding/truncation và đếm raw text không thêm special tokens.

Lấy tệp tokenizer từ phân phối chính thức của model định dùng. Ví dụ không tải model, không gửi text lên server và không dựng toàn bộ định dạng chat API lưu trữ. Count chỉ có ý nghĩa khi tokenizer cùng thiết lập khớp câu hỏi đang đo; chạy được mã chưa có nghĩa đúng hóa đơn.

# Example environment: tokenizers==0.23.2
from pathlib import Path
from importlib.metadata import version
from tokenizers import Tokenizer

# Use the matching tokenizer.json already saved locally.
tokenizer = Tokenizer.from_file("tokenizer.json")
tokenizer.no_padding()
tokenizer.no_truncation()
text = Path("sample.txt").read_text(encoding="utf-8")
encoded = tokenizer.encode(text, add_special_tokens=False)
print("tokenizers version:", version("tokenizers"))
print("raw-text tokens:", len(encoded.ids))
# Record tokenizer identity/revision separately.
# This is not a complete chat-request or billing count.

Tính toàn bộ request khi lập context

Request chat có thể gồm hướng dẫn hệ thống, hội thoại trước, đoạn truy xuất, định nghĩa công cụ và format ngoài message mới. Chat template thêm control tokens quanh roles và ranh giới message. Chỉ đếm đoạn cuối dễ đánh giá input thấp hơn thật.

Với dịch vụ lưu trữ, dùng chức năng đếm được tài liệu hỗ trợ cho loại input của bạn khi có. Tài liệu Claude mô tả structured input counting và trường hợp cần usage thực. Tôn trọng giới hạn estimate, nhất là tools, images và documents; không mặc định mọi đầu vào chỉ là text.

Đừng dán credentials hoặc nội dung khách nhạy cảm vào counter lạ. Tokenizer cục bộ giúp raw text tại máy; endpoint nhà cung cấp nhận request được gửi. Chọn luồng phù hợp dữ liệu trước khi đo và phân biệt phần xử lý tại máy với phần truyền đi.

Lập bảng so có thể tái lập

Chọn mẫu đại diện: tin hỗ trợ, code, bảng và đoạn ở từng ngôn ngữ ứng dụng. Giữ nguyên bytes đầu vào để không vô tình đổi newline, dấu câu hay spaces giữa lần chạy. Mẫu đã đổi không thể dùng để quy mọi khác biệt cho tokenizer.

Ghi ID và revision, special-token setting, raw count, full-request estimate nếu có. Để giá trị chưa đo trống thay vì điền tỷ lệ đoán. Hai tokenizer cho số khác là kết quả trên các mẫu này, không phải xếp hạng chất lượng ngôn ngữ của model.

Bảng trống để điền sau khi chạy tokenizer đã nêu
Mẫu thửTokenizer và revisionSố raw-text tokenSố request đầy đủ hoặc estimate
Thông điệp hỗ trợGhi identifier chính xácĐo tại máyĐo theo request format được hỗ trợ
Đoạn mãGhi identifier chính xácĐo tại máyĐo theo request format được hỗ trợ
Đoạn ngôn ngữ thứ haiGhi identifier chính xácĐo tại máyĐo theo request format được hỗ trợ

Chừa output trước khi thêm input

Ví dụ giả định loại request của model có context kết hợp 32,000 token. Chừa 4,000 cho output và 2,000 làm buffer thì còn 26,000 input đã đo. Hướng dẫn, lịch sử và tools dùng 8,000, còn 18,000 cho nội dung truy xuất.

Đó là số giả định rõ ràng, không phải thông số model hiện hành. Nhà cung cấp có thể định nghĩa context, output, reasoning và tools khác nhau. Đọc hợp đồng hiện tại rồi đưa số thực vào công cụ context budget. Vừa giới hạn không bảo đảm mọi đoạn input đều hữu ích.

Hypothetical planning budget:
32,000 combined context
− 4,000 output reserve
− 2,000 planning buffer
= 26,000 input budget

26,000 − 8,000 instructions/history/tools
= 18,000 available for retrieved content

So estimate với usage và chi phí thực

Sau thử nghiệm thật nhỏ, lưu usage fields trả về và so estimate của đúng request đó. Tách cached input, output, reasoning và các mục tính phí được công bố. Estimate thiếu tool definition không thể sửa chỉ bằng đổi tỷ lệ từ/token.

Dùng công cụ chi phí với token đã đo và giá hiện tại bạn cung cấp. Tách input/output, giữ đơn vị như giá mỗi triệu token. Bảng chi phí tốt tính lại được từ usage và rates đã nêu, không dựa vào một phép quy đổi từ chung cho mọi model.

Câu hỏi thường gặp

Một token luôn bằng bốn ký tự sao?

Không. Đó chỉ có thể là heuristic thô cho một số text và tokenizers. Ngôn ngữ, code, dấu câu, whitespace và thiết kế tokenizer ảnh hưởng kết quả.

Vì sao count cục bộ khác usage API?

Request có format, hướng dẫn, lịch sử, tools và input types không có trong raw sample; tokenizer hoặc special-token settings cũng có thể khác. So cùng request đầy đủ và định nghĩa nhà cung cấp.

Counter từ ở đây tính chính xác token model được không?

Không. Nó báo từ và ký tự Unicode. Dùng tokenizer khớp hoặc cách đếm được hỗ trợ, rồi đưa input đã đo vào công cụ chi phí cùng context.

Nguồn & định nghĩa

Ngày kiểm tra phương pháp: