给模型举例子:few-shot 的几个反直觉

2026-06-15Few-shot·667 字·约 2 分钟

示例比一堆形容词管用,但选错示例比不给更糟——模型会把你没注意到的特征一起学走。

先说结论

想让模型稳定输出某种东西,给两三个好例子,胜过写一段"请务必……"的叮嘱。 但 few-shot 有几个反直觉的地方,踩中了反而更糟。

反直觉一:例子不是越多越好

塞十个雷同的例子,不如两三个覆盖了不同情况的。多而重复的示例只是浪费上下文,还会让模型过度锚定在那一种模式上。

挑例子的标准不是"多",是"撑开边界":最典型的一个、最容易出错的一个、一个该返回空或拒答的。

反直觉二:模型会模仿你没想让它学的东西

这是最隐蔽的坑。模型不只学示例的"内容",它把示例的所有特征一起学走——包括你自己都没意识到的:

  • 示例答案恰好都很短 → 它学会"要短",遇到该展开的也敷衍
  • 示例输入恰好都是某一类 → 换一类输入它就泛化得很差
  • 示例里有个无关的口头禅 → 它给你每条都带上

输出跑偏时,先别急着改指令,回去看你的例子里藏了什么共性。

反直觉三:反例比叮嘱有用

"注意处理特殊情况"是句废话,模型不知道特殊在哪。

给它一个具体的反例——“输入是这样时,正确做法是返回空”——比十句提醒都顶用。模型擅长模仿,不擅长揣摩你嘴里的"注意"。

反直觉四:格式用例子教,别用话描述

想要固定格式,与其描述"用两个换行分隔、标题加粗",不如直接给一个排好版的例子。让它看,别让它听。(结构化输出同理:schema 加示例,永远比文字说明稳。)

收个尾

few-shot 的本质是"用样本定义你要什么",而样本会忠实地把好的坏的一起传下去。所以真正该花时间的地方不是写提示,是挑例子——挑的时候多问自己一句:这几个例子凑在一起,到底在教模型什么?

这篇对你有用吗?

如果这篇文章对你有帮助,可以请博主喝杯咖啡 ☕