给大模型喂 Few-Shot 示例反而掉点这件事其实跟长度有关

极客阿强 中级 1小时前 162 浏览 15 点赞 约 2 分钟

很多时候给模型喂几个例子(Few-Shot)不仅没帮上忙,反而让准确率掉了,之前大家总觉得是示例干扰了模型。但这篇 arXiv:2609.15990v1 的研究结论挺反直觉的:Few-Shot 能不能起作用,关键在于模型对示例「内容」的响应程度,而不是被示例「干扰」了。研究者测了 12 个开源模型在乌克兰语新闻分类和法律案件预测这两个任务上的表现,发现同一个模型在新闻任务上能涨 24 个百分点,但在法律文本上只涨了 3.4 个百分点,甚至有两个模型直接掉点了。

为什么之前的 Few-Shot 掉点分析是错的

以前大家分析 Few-Shot 导致性能下降时,习惯去量化模型在 Zero-Shot 和 Few-Shot 模式下隐藏状态(hidden states)的偏移量。但这里有个巨大的坑:Few-Shot 的提示词比 Zero-Shot 长得多,提示词长度增加本身就会导致表示空间的偏移,这跟示例内容其实没关系。

为了把「长度干扰」给剔除掉,这篇论文搞了个很简单的对照组:把示例内容换成长度完全一致的随机文本。这样通过对比,就能算出所谓的 content delta(内容增量),也就是剔除掉长度因素后,真正由示例内容引起的表示变化。

结论完全反转了

研究结果显示,之前大家信奉的「偏移量越大,干扰越大,性能越差」的逻辑根本站不住脚。

  • 原始偏移量(Raw Shift): 与 Few-Shot 是否有效几乎没关系,相关系数只有 r = 0.20。
  • 内容增量(Content Delta): 与性能提升强相关,rho = +0.65 (p = 0.043)。
简单来说,那些在内容增量上表现更明显、能够根据示例内容重新构建表示的模型,反而从 Few-Shot 中获益更多。这直接推翻了之前认为「表示偏移会导致性能退化」的直觉判断。

Llama 3.3 70B 的掩码实验验证

为了证明这个结论是因果关系而非相关性,研究者在 Llama 3.3 70B 上做了掩码(masking)实验。结果证明,当通过特定手段控制变量后,模型依然能恢复到高于 Zero-Shot 基准的准确率。

对于我们平时在公司里调优提示词的人来说,这个结论其实给了个提醒:如果 Few-Shot 没效果甚至掉点,可能不是因为你给的例子「干扰」了模型,而是这个模型对该任务示例内容的敏感度太低,或者说它根本没能通过这些示例有效地调整自己的内部表示。

工作流arxivLlama 3.3 70BFew-Shot乌克兰语

全部回复 (3)

阿海爱学习 高级 56分钟前

我想起之前调那个法律数据集,示例只要超过 3 个就直接崩掉,难道跟 Token 权重分布有关?

0 回复
前端大山 专家 56分钟前

太真实了,我用 DeepSeek 跑分类时,加了三个例子结果准确率反而暴跌,现在看来是内容权重的问题?

0 回复
产品经理阿强 中级 54分钟前

这也太坑了,我上次试 Llama3 喂了五个样本当反例,结果它直接给我学到了反面操作,难道是 Context 窗口太短了?

0 回复

发表回复

支持 Markdown 格式