同样三条few-shot示例,在讯飞星火里调换一下先后次序,输出风格竟然跟着变。示例顺序影响输出这件事,背后主要是一种被称作近因效应的现象,这篇讲清它怎么发生、怎么利用。在豆包上做同样的尝试,也能复现类似结果。
近因效应指序列末尾的信息对当前生成的影响更大。模型生成时逐块向前推进,越靠近当前位置的文本,在注意力分配里获得的权重越高。排在后面的示例像是「刚刚发生过的事」,模型延续格式与风格时自然会向它偏移。这并非模型有意为之,而是注意力机制的直接后果。
顺序效应在长上下文里更值得留心。上下文越长,中段内容被「回看」的强度越低,末尾的示例获得的相对优势越大。这也是为什么同样的提示,材料一多输出就更容易跟着压轴示例走——示例没变强,是中段变弱了。
一个能自己验证的小实验
想亲眼看到这个效应,做一个小实验就够。准备六条示例:三条简洁风、三条详细风,分别按「简洁在前、详细在后」与「详细在前、简洁在后」两版排布,用同一个新输入各跑一次。多数情况下,详细风示例放在后面时,输出会明显更啰嗦。把两版结果并排比较,顺序的作用一目了然。建议每版各跑三次,取多数表现,单次结果受随机性影响,偶尔会误导判断。
顺序不只影响风格
顺序还会连带影响类别倾向。假设你的示例一半是「可回答」类、一半是「应拒答」类,把哪一类放在末尾,模型对边界情形的判定就会向哪一类倾斜。做分类任务时,这一点的分量不比示例质量轻。同理,长提示里各类材料的位置安排,本质上也是在给注意力划重点。
举一个分类任务的实例:客服留言分成「需要回电」和「无需回电」两类,示例各五条。把「需要回电」的示例放到末尾之后,原本摇摆不定的边界留言明显更常被判入回电类。同一批示例,换一个顺序,判定口径就移动了一格。
实用排序建议
三条原则。一,把你最希望输出模仿的示例放在最后,近因效应会替你加分;二,混合风格的示例库先排序再入库,别让不合心意的示例恰好压轴;三,示例总量多时,中段示例的影响最弱,重要示例别埋在中间。排序做完跑一轮对比,比凭感觉反复改措辞省时间。
三条原则的做法、依据和它在防什么。
| 排序原则 | 具体做法 | 靠什么起作用 | 它在防什么 |
|---|---|---|---|
| 模仿目标压轴 | 最想输出模仿的示例放最后 | 近因效应对末位示例加权 | 输出跟着不合心意的示例走 |
| 混合库先排序再入库 | 风格不一的示例库先排一遍,再存进库 | 末位由你指定,不再随机 | 不合心意的示例恰好压轴 |
| 重要示例别埋中段 | 中段示例影响最弱,精简时优先动它们 | 中段被「回看」的强度最低 | 重要示例白放在低权重区 |
顺带一提排序与删减的配合。示例库要精简时,别只从中间随手抽,先保证首尾两条留下——首条确立基调,末条主导模仿,中段示例的边际价值最低,删起来优先动它们。
示例排序自查
- 压轴示例是不是你最想复制的那个?
- 边界类示例的末位安排有意图吗?
- 重要示例有没有被埋在中段?
- 换序后跑过对比测试吗?
顺序是免费的调整手段,先试换序,再动措辞。
顺序与位置容易混淆:示例顺序说的是示例之间的先后,系统指令为什么比示例更硬,是另一条线索,见系统提示;顺序引起的摇摆若与要求相抵,排查思路见指令冲突;篇幅随示例长短漂移,见回答长度;顺序敏感的提示更容易被材料里的句子带偏,参见提示注入;而注入为什么防起来难,根源讨论见防注入难点。
聊聊示例顺序的常见疑问
- 顺序效应在所有模型上都一样吗?:方向一致、幅度不同,上下文更长的模型受近因影响的表现也有差别,换模型后值得重测。重测时保持其他条件不变,只动顺序。
- 把强示例放开头不行吗?:开头有开头的作用,先确立基调,但对输出格式的直接影响通常弱于末位,两者可以并用。
- 示例顺序影响事实准确性吗?:影响的主要是格式、风格与类别倾向,事实层面主要取决于模型知识与示例内容本身。


