ChatGPT 输出长度指南 - 理解 Token 限制与响应大小
7 分钟阅读
ChatGPT 等大型语言模型以 Token 而非字符或单词来衡量文本。理解这一区别对于获得所需的输出长度至关重要。一个 Token 大约等于英文 4 个字符或 0.75 个单词,但因语言和内容类型而异。本指南涵盖各模型的 Token 限制、控制输出长度的技巧,以及实用的换算公式。大型语言模型入门书籍也可作为参考。
各模型的 Token 限制
| 模型 | 上下文窗口 | 最大输出 Token | 约输出词数 |
|---|---|---|---|
| GPT-4o | 128K tokens | 16,384 tokens | ~12,000 words |
| GPT-4 Turbo | 128K tokens | 4,096 tokens | ~3,000 words |
| GPT-3.5 Turbo | 16K tokens | 4,096 tokens | ~3,000 words |
| Claude 3.5 Sonnet | 200K tokens | 8,192 tokens | ~6,000 words |
| Gemini 1.5 Pro | 1M tokens | 8,192 tokens | ~6,000 words |
上下文窗口包含输入和输出 Token。128K 上下文窗口配合 10K Token 的提示词,剩余 118K Token 用于对话,但输出仍受最大输出限制的约束。
Token 与字符的换算
| 语言 | 每 Token 字符数 | 每 Token 词数 | 1,000 Token ≈ |
|---|---|---|---|
| 英语 | 约 4 字符 | 约 0.75 词 | 750 词 / 4,000 字符 |
| 西班牙语 / 法语 | 约 3.5 字符 | 约 0.65 词 | 650 词 / 3,500 字符 |
| 日语 | 约 1.5 字符 | 不适用 | 1,500 字符 |
| 中文 | 约 1.5 字符 | 不适用 | 1,500 字符 |
| 代码 (Python) | 约 3 字符 | 不适用 | 3,000 字符 |
控制输出长度的技巧
- 明确的字数指令:"写一篇 500 字的摘要"比"写一篇简短的摘要"更有效。模型遵循数字目标的准确度相当高 (±10%)
- 结构约束:"提供恰好 5 个要点,每个 20-30 词"为模型提供了明确的边界
- max_tokens 参数:通过 API 设置以硬性限制输出长度。如果达到限制,响应将在句子中间被截断
- 温度设置:较低的温度 (0.3-0.5) 倾向于产生更简洁的输出;较高的温度 (0.8-1.0) 生成更冗长的响应
- 系统提示词:设置"你是一位简洁的技术写作者。每次回复不超过 200 词"可建立持久的长度约束。OpenAI API 编程实践书籍中有更详细的介绍
常见输出长度问题
- 过早截断:如果输出达到 Token 限制,会在思路中间停止。解决方案:增加 max_tokens 或要求分部分回复
- 过度冗长:模型倾向于过度解释。在提示词中使用"请简洁回答"或"跳过前言"
- 长度不一致:相同的提示词可能产生长度相差 30-50% 的输出。使用温度 0 可获得更一致的结果
- Token 计数不匹配:用户以词为单位思考,模型以 Token 为单位。始终进行换算:将目标词数乘以 1.33 来估算 Token 数
成本影响
| 模型 | 输入成本 (每百万 Token) | 输出成本 (每百万 Token) | 1,000 词输出成本 |
|---|---|---|---|
| GPT-4o | $2.50 | $10.00 | ~$0.013 |
| GPT-4 Turbo | $10.00 | $30.00 | ~$0.040 |
| GPT-3.5 Turbo | $0.50 | $1.50 | ~$0.002 |
输出 Token 的成本是输入 Token 的 2-4 倍。控制输出长度直接影响 API 成本,尤其是在大规模使用时。
总结
ChatGPT 的输出以 Token 为单位衡量,1 个 Token 大约等于英文 4 个字符。当前模型的输出上限为 4,096 至 16,384 个 Token (约 3,000 至 12,000 个英文单词)。通过明确的字数指令、max_tokens 参数和系统提示词来控制输出长度。使用字符计数器验证提示词和输出的长度。