让豆包「写两百字简介」,它可能给你一百八,也可能给你三百。字数指令到底是怎么起作用的,为什么常常不准,这篇把机制讲清楚。换到通义千问、Kimi 上,现象也大同小异。
字数指令在生成时怎么起作用
先看生成过程。大模型逐词块生成,每个词块都面临一次选择:继续写还是收住。「两百字」这条指令的作用方式,是在每次选择时给「收住」的方向添一点筹码,它并不是预设的硬截断点,更像是整体调整节奏。这解释了一个常见现象:字数指令给出的通常是模糊区间,模型对「字」的内部计数也不精细,它对词块和句子长度的感知,远比对数字敏感。
为什么「三百字」常常不精确
三个原因叠加。其一,模型按词块生成,中文里词块与字数并非一比一,它对「已经写了多少字」的实时感知有偏差;其二,内容逻辑会反过来对抗字数要求,一个没讲完的论点会让它倾向继续写完;其三,提示里其他指令会争夺影响力,「要详细」「分五点」这类要求都可能把篇幅顶上去。第三条最常被忽略:你一边要求精简,一边要求列全十个要点,篇幅注定下不来。
三个原因叠在一起,单报一个数字压不住。
| 失准原因 | 机制 | 典型表现 | 对应写法 |
|---|---|---|---|
| 词块与字数不是一比一 | 按词块生成,对「已经写了多少字」的实时感知有偏差 | 要两百字,给一百八或者给三百 | 报区间、配结构约束,不追个位数 |
| 内容逻辑反着拉 | 没讲完的论点会让它倾向继续写完 | 讲到一半硬收,读起来断在半截 | 先定段落,让收尾落在段落边界上 |
| 其他指令争夺影响力 | 「要详细」「分五点」把篇幅顶上去 | 一边要精简,一边要列全十个要点 | 要点数量与字数要求对齐 |
更好用的长度控制写法
与其只报数字,不如给结构加约束。「每点不超过两句话」「三段以内」「一段式小结」这类表述直接限制结构,间接锁住了长度,比单报「五百字」更准。两个手段叠加效果更牢:先说「分三点」,再补一句「全文控制在四百字左右」。另外,把要求放进系统位置比对话中途交代执行得更稳,机制见系统提示一篇。
还有一个反直觉的技巧:给上限不给下限。「写两百字左右」容易写成三百,改成「不超过两百字」配合结构约束,超长概率明显下降。若你发现模型总是刹不住车,可以在结尾追加一句「写完检查是否超出目标长度,超出则压缩」,让它多执行一轮自我修剪。
用一个场景串起来:写产品介绍,先说「分三段,每段不超过三句话」,再补「全文五百字以内」,最后附一句「每段结尾用一句给用户的话收住」。三条要求各管一层——结构、总量、句式,模型可对齐的点变多了,单点偏差的影响就被摊薄。长度控制的关键思路正在这里:与其跟一个数字较劲,不如多设几个可检查的关卡,关卡之间互相不矛盾。
分段交代长度也值得一提。长文写作时,与其开头一句「全文三千字」,不如每段开头各给一句「本段约五百字,讲某某部分」。总量指令在长文里容易中途失效,分段指令每一处都靠近生成位置,守得住的概率高得多。
长度控制速查
- 结构约束和字数指令同时给了吗?
- 上限式表述比区间式更好用
- 要点数量与字数要求是否匹配?
- 长文写作是否分段交代长度?
结构与字数双管齐下,超长的烦恼少大半。关卡越多,超长越难发生。
长度控制与其他机制相互牵动。要求变短时,示例给出的长度参照也在说话,见示例顺序一篇里近因效应的讨论;「不要超字数」属于典型的反向要求,失效方式见负面指令;若篇幅失控源于材料里被塞进了额外要求,可对照提示注入检查;多轮对话里要求逐渐失灵,则要连同指令冲突的排查一起做。
关于长度控制,问得最多的三个
- 为什么精确到个位数的字数很难做到?:模型按词块生成、对数字不敏感,精度天然有限,给出区间和结构约束更务实。
- 字数指令放在开头还是结尾好?:靠近生成起点的位置更容易被持续参考,系统区或紧邻问题处都优于长篇材料之后。
- 让模型自己数一遍字数有用吗?:作用有限,它的内部计数同样不精确,但「检查并压缩」的追加指令确实能压掉一部分超长,对篇幅敏感的任务值得固定成习惯。


