Token
为什么需要了解 Token
只要你在使用 LLM,就一定会被 Token 约束:
- 成本:大多数 API 按 Token 收费,输入 Token + 输出 Token
- 上下文限制:单次请求有 Token 上限(4K、128K 等)
- 输出长度:模型最多能生成多少内容,用 Token 表示
理解 Token,本质上是在理解模型的"容量单位"——知道这个,才能知道一次能塞多少内容、花多少钱、会不会超限。
什么是 Token
一句话定义:Token 是模型处理文本时的最小计量单位,不等于"字"或"词",而是由分词器把文本切分后的片段。
大致体感:
- 一个中文汉字 ≈ 1 Token
- 一个英文单词 ≈ 1-3 Token(取决于长度)
- 1000 个中文字 ≈ 1000 Token
精确统计要用对应模型的 tokenizer 工具(如 tiktoken)。
类比:Token 就像"字数统计"——你知道这篇文章有多少字��才能估算阅读时间;你知道用了多少 Token,才能估算成本和是否超限。
怎么做:什么时候需要关注 Token
控制 API 成本:精简 Prompt、移除冗余信息、压缩长对话历史。
判断是否超 Context Window:长文档总结、长对话、RAG 拼接时尤其关键——发送前估算 Token 数,可以避免请求失败。
优化 Prompt 设计:同样意思,用不同表达方式会消耗不同 Token;用列表格式比多行文字更节省。
控制输出长度:生成报告、文章、代码时,避免输出被截断。
常见坑:
- Token 数 ≠ 字符数:不能用
str.length估算 - Token 数 ≠ 单词数:英文长单词可能被拆成多个 Token
- 看起来短的内容不一定 Token 少:特殊符号、代码、JSON 往往更"吃 Token"
记住这一句:Token 是 LLM 的"容量单位"——理解它,才能控制成本、避免超限、优化 Prompt。
相关词条:Context Window · Temperature
标签
词元tokenization分词标记tokens