模型上下文长度 最大 token 上限

模型与算力

讲清上下文长度与最大 token 上限到底是什么、怎么算、怎么在不撞上限的前提下把长文档塞进去。

很多人第一次处理长文档就卡住:明明模型号称支持很长上下文,粘进去却报错、被截断,或者回答开始变糊。这篇不背参数,只讲判断方法——怎么估一次请求会占多少 token、怎么确认某家平台当下的实际上限、超了之后有哪些拆法,以及什么情况下根本不该硬塞。

很多人第一次处理长文档就卡住:模型介绍里写着支持很长的上下文,你把整份文档粘进去,要么直接报错,要么回答到一半内容不见了,要么答得含含糊糊。问题通常不在模型能力,而在你没算清楚一次请求到底会占多少 token,也没确认自己走的这条链路真实能用的上限是多少。

这篇不背参数。参数会变,平台会调,你把数字记在脑子里反而容易踩坑。我们只讲判断方法:怎么估一次请求的体量、去哪确认当下能用的上限、超了之后按什么顺序拆,以及哪些场景压根不该硬塞。需要看具体数字的时候,到站内对应页面核对即可。

上下文长度到底指什么,和 token 上限是不是一回事

先把两个词掰开。上下文长度说的是「一次请求里模型能同时看见的全部内容」,输入加输出算在一起,不是输入一个额度、输出另给一个额度。而 token 上限通常指这个总量的天花板,但在很多平台的产品页上,它又被拆成输入上限和输出上限两个独立数字分别标出,所以看到「上限」两个字,第一件事是问清楚它指哪一个。

上下文长度
一次请求中模型能同时处理的输入加输出总量,是场景的边界
输入上限
你发过去的内容(提示词、文档、图片、历史对话)最多占多少
输出上限
模型这次最多能生成多少内容,是单独一条线
有效长度
在这个长度内模型还能稳定抓准重点的范围,通常小于标称上限

最容易踩的坑是只看总量。假设总量很宽裕,但输入上限卡得低,你塞文档照样失败;反过来输出上限低,你让它写万字长文,它写到一半就停了,你还以为是模型不听话。所以两个分项都要看,缺一个判断都不完整。

还有一层更隐蔽:宣称支持不等于你这条链路真能用。中间隔了中转或聚合入口、客户端做了自己的保护、SDK 设了默认值,任何一层都可能压一个更低的上限。你看到的上限,应该是从你实际调用的那个入口读出来的,不是从模型官方规格页抄来的。

先估数:一段文本大概占多少 token

估数不用精确,能判断量级就够。中文大致按字折算,英文大致按词根折算,得到一个范围就行。真正要小心的是内容类型差异:代码、JSON、带大量标点和缩进的表格,token 密度明显比自然语言高,同一段长度可能差出一截,别用同一套折算套所有内容。

  • 自然语言中文:按字数粗估,宽松一点留余量;同一段话换英文,折算式子不一样
  • 代码与结构化数据:符号多、缩进多,实际占用高于同长度的口语文本,估的时候往上调
  • 图片和音频:进入上下文时会折算成 token,多模态请求必须把这块一起加进总额
  • 历史对话:多轮的上下文是累积的,每一轮都在往上叠,聊久了很容易自己把自己顶到上限

估完别急着提交,先拿站内的工具跑一遍验证。到 /tools/token-counter 把它跑一遍,比你在脑子里拍一个数稳得多,也顺手能看出你这次的输入输出比例大概是什么样。

去哪确认你这条链路真正能用的上限

确认上限有个固定顺序,乱了会白忙。先看官方规格页的输入输出分项,知道这个模型本身的边界;再看你实际调用的中转或聚合入口有没有写自己的限制,这层经常比官方更紧;最后拿一条接近上限的长输入做小样本测试,实测比读说明快。

  1. 读官方规格的分项找到输入和输出两条线分别是什么,记录下来,这是理论上限
  2. 读你用的入口的限制中转、聚合、客户端各自可能写着自己的上限,逐层对照,取最紧的那条
  3. 实测一条接近上限的输入构造一条长度靠近这条线的请求发出去,看它是报错、截断还是正常返回
  4. 区分报错类型超 token、限流、超时、并发限制的报错长得不一样,别把限流当成超上限去改提示词

同一模型在不同平台的上限可能不同,换平台要重新对一次,不能沿用旧结论。想知道各家现在标的是什么,到 /models 对照当时的数字,上面会标输入输出分项,也会标是哪家平台的口径。

塞不下的时候,按这个顺序拆

发现塞不下,别第一反应就是换更长的模型。按下面的顺序拆,前面几步通常比换模型便宜得多,也更快。换模型应该是最后一步,不是第一步。

  1. 砍冗余去掉重复段落、去掉样板回复、去掉跟问题无关的附件,往往这一步省得最多,而且不损失关键信息
  2. 分块处理按章节切成若干段,分批送进去处理,最后用一次汇总请求把结果拼起来
  3. 保留跨块指代分块最大的坑是代词和后文依赖丢了,块与块之间要带上必要的上下文,或者给每块附上来源标记
  4. 改结构换空间把原文换成摘要或提纲再提问,用信息量换长度,适合问答和判断类任务
  5. 最后才考虑换模型或提额度前面都试过还不行,再去看有没有更长上下文的模型或更高额度档位

没超上限,为什么效果也开始变差

这是两码事:报错是额度问题,答得糊是效果问题。上下文很长的时候,关键信息被大量素材稀释,模型更容易抓错重点。这时候你加长上下文解决不了,反而越加越糊。处理办法是把最要紧的要求放在输入的首尾两端,中间放素材,比平均铺开更稳。

不同任务的「有效长度」差别很大。让模型做整体摘要,它能吃下的长度远大于让它逐字精确定位某一句。你按摘要任务测出来的长度,不能直接拿去跑抽取任务,这是两种不同的要求。

任务类型能吃的长度建议做法
整体摘要、风格归纳相对宽松可以整段塞,重点放在输出约束上
问答、判断中等关键要求放首尾,素材放中间
逐字抽取、精确引用很紧不要硬塞,回到分块加来源标记
全文逐条比对很紧分块后逐对比对,再合并结论

什么情况下不适用:如果你做的是严格引用或逐字比对,调位置只是治标,长度一上去错误率还是会抬头。这类任务该走检索加引用的路子,别指望靠位置技巧兜住。

长度对成本和速度的影响怎么算

输入越长,单次请求的计费越高、首字延迟越久,这两件事是同时发生的,不是选一个。长文本任务里如果每次都把同一份素材重发一遍,那笔开销会叠得很快。能缓存的缓存,能复用的复用,分块处理后把中间结果存下来别反复算。

跑长文本之前先量一次延迟基线,这样出问题的时候你能分清是额度不够还是速度不够。口径不一样,改的方向完全相反。要算成本,别只看单价,去 /tools/cost-calculator 按你真实的输入输出比例算一遍,比看单价有参考价值得多。

价格和延迟的数字各平台都在动,别记死。到 /price-watch 核对当时的数字,重点看你常用的那几家和你实际调用的入口。

上线前的一份长文本自查清单

把这份清单当成上线前的固定动作,跑长文本任务前过一遍,能省掉很多事后排查。每一条都要有明确答案,含糊过去的那条往往就是后面出问题的地方。

  • 这次请求的输入加输出总量,离上限还剩多少余量,余量太少就不可靠
  • 输入上限和输出上限是否分别满足,有没有只满足其中一个
  • 超出时的行为是什么:报错、截断、还是静默丢内容,这个必须实测确认
  • 有没有准备好分块方案作为兜底,触发条件是什么
  • 成本和延迟是否在可接受范围内,尤其是高频调用的场景
  • 多轮对话里历史是怎么压缩的,不压缩迟早撞上限

其中「超出时的行为」最容易被忽略。静默丢内容最危险,因为你不会收到报错,只会看到答非所问。用一条明确超限的输入测一次,看它到底怎么反应,心里才有底。

哪些场景别指望靠加长上下文解决

最后说几个反直觉的:有些问题加长上下文不是解法,是掩盖。判断标准很简单——如果你的任务要求精确、要求知识新鲜、或者会话会一直累积,那长度不是主要矛盾。

场景为什么加长没用该怎么做
精确引用、逐字定位长度越长,定位越容易偏检索加引用,只把相关片段送进去
知识频繁更新塞进上下文只是临时快照接检索或数据源,让内容实时进来
多轮长对话长度是累积的,越聊越挤主动压缩历史,只保留必要上下文
严格合规比对糊一点就不能用分块逐条比对,保留可追溯的来源

这些场景不是不能碰长上下文,而是别把它当主要手段。长上下文是个空间,不是个能力,能不能用好取决于你往里放什么、怎么摆放。

上下文塞不下要先想怎么分,效果变糊要先想怎么放——两件事的解法不一样。
下一步拿你手上最长的那份文档跑一次 token 估算,再去模型资料库核对你常用平台当下的输入输出上限,两者对一遍,缺口在哪就清楚了。

常见问题

上下文长度和最大 token 上限是同一个东西吗?

相关但不是一回事。上下文长度通常指一次请求里输入加输出的总容量,而 token 上限往往被拆成输入上限和输出上限分别限制。看规格时两边都要确认,只对了一个数字,实际调用照样会被拦。

为什么平台说支持很长上下文,我还是经常被截断?

可能是三处叠加:官方规格是一层、你用的中转或聚合入口自己又压了一层、客户端还有一层。另外输出上限常常比总长度小得多。先逐层确认限制出处,再用一条接近上限的长输入实测一次。

长文本处理有没有通用的省钱做法?

先做减法再去比价:去掉重复和无关内容、能用摘要就不发全文、能缓存素材就不重复发送。剩下的再按你真实的输入输出比例到站内模型成本计算器算一遍,单看单价容易误判。

超出上限一般会怎样?

不同实现差别很大,有的直接报错、有的从尾部截断、有的静默丢掉一部分,最怕的是最后一种。上线前一定用超长输入测一次,确认你这个入口到底是哪种行为,再决定要不要加分块兜底。

是不是换个上下文更长的模型就万事大吉?

不是。长度上去之后关键信息容易被稀释,精确抽取类任务反而更差,成本和延迟也一起涨。只有当你确认瓶颈真的是「塞不下」而不是「找不准」时,换模型才是对的动作。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。