跳到主内容

few-shot 是怎么「教会」格式的?模式匹配

2026-10-18 发布 来源:我告诉你AI导航 阅读

你在豆包或 Kimi 里贴上三条示例,输出立刻变得整齐,这件事背后是 few-shot(少样本提示)在工作:先给模型看几条「输入—输出」配对,它就能照着样子续写新的一条。这篇文章拆开这个过程,看大模型到底是怎么被示例「教会」格式的。

你在豆包或 Kimi 里贴上三条示例,输出立刻变得整齐,这件事背后是 few-shot(少样本提示)在工作:先给模型看几条「输入—输出」配对,它就能照着样子续写新的一条。这篇文章拆开这个过程,看大模型到底是怎么被示例「教会」格式的。

第一步是读取与编码。你发出去的整段提示会被切成一个个词块,示例部分和指令部分一起进入模型。模型并不会把示例存成一条条规则,它把整个文本当作一个序列,逐块计算「下一个最可能出现的词块是什么」。

模式匹配:它真的在找规律

关键机制叫模式匹配。当模型读到「输入:某句话 输出:对应结果」这样的结构重复了三次,生成时就倾向于延续这个结构。它学到的规律包括三块:格式外壳,即输入输出的固定写法;内容映射,即什么样的输入对应什么样的输出;表达习惯,包括标点、详略与语气。三者混在一起,被一次性延续下来。

举例说,你给了三条「中文名词对应英文缩写」的示例,哪怕没写任何指令,模型遇到第四个中文名词时也会自动产出缩写。这就是示例在替指令干活:规律比命令更容易被延续。

再看一个反例。三条示例里,前两条用「输入:/输出:」做外壳,第三条随手写成了「问:/答:」,新输入进来后,输出可能在两种外壳之间摇摆,甚至前半段用一种、后半段换另一种。模式匹配不辨认你的意图,只负责延续最近、最像的模式,示例内部的整齐度就是它唯一的依据。

示例质量比数量更要紧

很多教程强调示例要多,实际更重要的是示例内部一致。三条格式统一的示例,胜过六条格式各异的示例。一旦示例之间互相打架,模型只能猜该延续哪一种,输出就开始摇摆。写完示例先自问:这几条除了具体内容,外壳是否完全一样?

数量也有讲究。简单格式两三条够用,复杂映射比如从长文本抽取字段,往往要五到八条才能稳定。一条实用判断:格式越简单,示例可以越少;输入输出差异越大,示例越要覆盖不同情形。

为什么有时候给了示例也没用

三种常见情形会让示例失灵。一是示例太短,模型抓不到稳定的映射规律;二是新输入和示例差异太大,模式匹配不上,模型退回自己的默认习惯;三是提示里其他要求与示例矛盾,比如文字说只要纯文本、示例却带着表格符号,这时模型可能两头都做一点。排查也按这三步走:先看一致性,再看覆盖面,最后查矛盾。

症状输出表现先查什么
示例外壳不一致两种格式之间摇摆先看一致性
示例覆盖不足新输入匹配不上,退回默认习惯再看覆盖面
指令与示例矛盾两头都做一点最后查矛盾

few-shot 快速自查

  • 示例外壳完全一致吗?
  • 示例覆盖了新输入的类型吗?
  • 文字指令与示例有矛盾吗?
  • 简单任务两三条起步,复杂任务再逐步加

每次调整示例都记一条迭代记录,回头才知道是哪次改动生效。

示例和角色设定经常配合使用:角色管语气,示例管格式,各管一段。角色一侧的机制可以读角色设定这篇。示例之外,用分隔符把指令区和示例区隔开,混淆更少。想知道为什么写进系统位置的要求更硬,见系统提示一篇。改示例没头绪时,迭代记录能帮你定位是哪次改动出了问题。

聊聊few-shot的常见疑问

  • few-shot 里的示例会被模型记住吗?:不会进入长期记忆,它只影响这一次生成,关掉会话后什么也不留。
  • 示例用中文还是英文好?:跟随你期望的输出语言,示例语言与新输入语言一致时,模式匹配最顺畅。
  • 示例越多效果越好吗?:不是。超过需要的示例会拉长提示、增加干扰,稳定之后就该停手。

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]