token与字符的换算
一般而言,1 个中文词语、1 个英文单词、1 个数字或 1 个符号均视为 1 个 token。
在大多数模型中,token 与字数的换算比例大致为:
1 个英文字符 ≈ 0.3 个 token;
1 个中文字符 ≈ 0.6 个 token。
因此,可以大致认为一个汉字对应一个 token。
上下文窗口
上下文长度,是指在单次推理过程中,大模型能够处理的全部 token 序列的最大长度。它包括以下两部分:
1.输入部分:用户提供的提示词、历史对话内容、附加文档等。
2.输出部分:模型当前正在生成的响应内容。
举个例子,当你打开 DeepSeek 的会话窗口,开启一个新的对话,然后输入内容,接着模型生成输出内容,这就是一次完整的单次推理过程。在这个简单的一来一回中,所有内容(输入 + 输出)的总 token 数不能超过 64K(约 6 万多字)。
根据上面提到的 “上下文长度”,我们知道模型的最大输出长度为 8K。因此,输入内容的上限可以通过简单的计算得出:
64K - 8K = 56K
换句话说,在一次问答中:
- 用户最多可以输入 5 万多字(约 56K tokens)。
- 模型最多可以输出 8 千多字(约 8K tokens)。
常见场景及解决方法
既然我们已经了解了最大输出长度和上下文长度的概念,那么在使用大模型工具时,就需要制定相应的使用策略,以提高效率和效果。 短输入 + 长输出
- 场景:输入 1K tokens,希望生成较长的内容。
- 配置:将 max_tokens 设置为 63,000(需确保 1K + 63K ≤ 64K)。
长输入 + 短输出
- 场景:输入 60K tokens 的文档,要求生成摘要。
- 配置:将 max_tokens 设置为 4,000(60K + 4K ≤ 64K)。
多轮对话管理
- 规则:历史对话的累计输入 + 输出总和 ≤ 64K(超出部分将被截断)。
- 示例:
- 第1轮:输入 10K + 输出 10K → 累计 20K
- 第2轮:输入 30K + 输出 14K → 累计 64K
- 第3轮:新输入 5K → 服务端丢弃最早的 5K tokens,保留最后 59K 历史 + 新输入 5K = 64K。\