文章目录+
01 / 人工智能
Token 不是字,也不是字符
模型不直接吞下一整句文字。Tokenizer 先把文字切成词、子词、标点、空格或字符片段,再转成编号。
常见英文词可能一块完成,罕见名字可能碎成数块;中文字符在不同 tokenizer 下亦可能一字一块或与相邻字符合并。肉眼相同长度,不代表模型收到相同数量。
02 / 人工智能
切法是模型设计的一部分
Tokenizer 的词汇表由训练方法与资料分布形成。常见片段值得独立占一个位置,稀有片段则被拆细。
因此 token 数同时透露一种隐藏偏好:模型世界里,哪些语言和写法被视为常见单位。它不是中性的字数计。
03 / 人工智能
同一句意思,价格可以不同
研究比较多语 tokenizer 时发现,同一资讯在不同语言可需要相差数倍 token。影响不只 API 帐单:更多 token 亦占用更多 context、增加处理步数,甚至令一段较早触及长度上限。
所谓「一百万 token」不是一百万字,更不是每种语言都得到相同内容容量。
04 / 人工智能
空格、标点和格式也在收费
JSON 的括号和引号、程式码的缩排、表格分隔符、对话角色标记,全部可能占 token。你只看到一个短问题,系统可能同时送入安全规则、工具定义、聊天历史和检索文件。
输入框的字数只是帐单最可见的一角。
05 / 人工智能
输出通常比输入更昂贵
很多服务把输入、快取输入和输出分开计价。生成输出需要逐 token 解码,延迟也沿着答案长度累积。
要求「更详细」不只是风格选择;它会增加成本、等待和产生新错误的机会。最有效的节省往往不是把问题缩成暗号,而是移除重复上下文和不必要输出。
06 / 人工智能
最可靠的方法只有实测
英文常见的「一 token 约四字符」只是一个粗略估算,不能套到所有语言和模型。要知道真正用量,应用该模型相符的 tokenizer 计算实际 prompt,连系统讯息、历史、工具 schema 和预期输出一起测。
Token 的隐藏秘密是:你不是只为问题付费,也为整个对话舞台付费。
资料注脚
资料注脚
- developers.openai.com/cookbook/examples/how_to_count_tokens_with_tiktoken
- aclanthology.org/2023.emnlp-main.614.pdf
资料用来支持机制与限制;模型、产品及价格会更新,阅读时应以来源的版本及日期为准。