Token 是什么?
社区来稿 · batype由用户发布,不代表 batype 本人观点
在 AI 语境里,Token 是模型读取和生成文本时使用的基本处理单位。它不固定等于一个汉字、一个英文单词,也不严格等于一个字符。
模型处理一段文本时,会先通过 tokenizer 将文本切成一串 Token,再将它们转换成模型可计算的编号。不同模型使用的 tokenizer 可能不同,因此同一段文字在不同模型中占用的 Token 数量也可能不同。
例如:
今天天气不错,Let's go!
这句话不会简单地按“每个汉字一个单位”或“每个英文单词一个单位”处理,而是会被切成若干 Token。具体怎样切,取决于模型使用的 tokenizer。
Token 影响什么?#
Token 主要影响三个方面。
1. Context Window(上下文窗口)#
一次模型调用中,所有输入和输出内容都会占用 Token:
- System Prompt
- 用户问题
- 历史会话
- RAG 检索结果
- 工具调用结果
- 模型最终生成的文本
它们共享模型的上下文预算:
输入 Token + 输出 Token <= Context Window
因此,历史消息不能无限拼接;RAG 也不是召回越多文档越好;工具返回的大段 JSON 很容易耗尽上下文。
2. API 成本与响应时间#
模型服务通常会按照输入和输出 Token 计量。Token 越多,调用成本通常越高,模型生成所需时间也可能越长。
所以在实际系统中,应该避免把与当前问题无关的全文、历史记录或原始工具数据全部交给模型。
3. 应用系统设计#
长对话、知识库问答和 Agent 工具调用都会遇到 Token 预算问题。常见做法包括:
- 对历史会话做摘要,而不是保留全部原文;
- 将长文按语义分块,再按需检索;
- 限制 RAG 返回片段的数量和长度;
- 清理工具结果中的无关字段;
- 为模型输出预留足够空间。
核心不是塞进更多内容,而是让模型在当前任务里拿到最相关、最可信、最必要的信息。
不要和登录 Token 混淆#
在 Web 开发里,Token 还常指 JWT、Bearer Token 等身份认证凭证。
它们和 AI Token 只是同名:
- AI Token:模型处理文本的单位;
- 认证 Token:客户端证明身份或权限的凭证。
二者用途完全不同。
总结#
Token 可以理解为模型处理语言时的“计量单位”。它决定模型一次能接收和生成多少内容,也直接影响成本、延迟与系统架构。
理解 Token 后,再看 Context Window、RAG、会话记忆和工具调用,就能明白为什么工程上需要分块、摘要、筛选和预算控制。
相关文章
- 为什么我把博客首页做成了一个对话框
传统博客正在被 AI 问答取代,与其被动等 AI 抓取,不如自己成为那个 AI。