那些被你的提示词工程师转变为生产环境 Few-Shot 示例的评估集
评估仪表盘连续三个迭代(sprints)都在攀升。困难切片的质量提升了 6 个百分点,回归切片提升了 9 个百分点,而在支持团队根据上季度最糟糕的工单亲手整理的切片上,质量提升了 12 个百分点。团队据此发布了模型升级。两天后,一位客户提出了一个与评估集中的任何内容都不沾边的问题,结果得到的答案比六个月前还要糟糕。
一旦有人想到进行排查,原因很快就浮出水面了。提示词工程师(prompt engineers)一直与评估团队在同一个代码仓库中工作。他们发现了那些精心策划的示例——这些示例来之不易,有的甚至是某人为了一个理想答案的措辞争论了一个小时才定下来的。在几个迭代中,他们把其中最有代表性的示例以 few-shot 演示的形式直接复制到了生产环境的系统提示词(system prompt)中。仪表盘持续攀升,是因为模型在推理时处理的正是它曾经逐字见过的输入。没有人指出这个问题。没有人负责划定“用于衡量质量的示例”与“用于发布到提示词中的示例”之间的界限。两个团队都准确地完成了他们被雇佣来做的工作。
这不是一个关于疏忽大意的故事。这是一个关于团队级数据泄露的故事,任何一个个人贡献者都无法意识到这是一次泄露,因为只有当你从整体视角俯瞰整个系统时,泄露才存在。评估团队没有将他们的示例放入生产环境。提示词工程团队也没有破坏评估集。代码库策略没有规定“这些示例是神圣不可侵犯的”。CI 也没有检查系统提示词与评估输入之间是否存在子字符串重叠。泄露的原因在于,没人要求去划定那道原本就不存在的边界。
为什么“最佳现有示例”反而是最错误的材料
这是一个令人不安的结构性事实。在代码库的文件层面上,一个优秀的评估团队的工作产出与一个优秀的提示词工程团队的工作产出看起来完全一样。两者都是精心挑选的“输入-输出”对集合,其中输出是你的产品希望模型生成的答案。评估团队整理它们是为了在模型最难处理的已知失败模式上对其进行评分。提示词工程团队整理它们是为了演示他们希望模型模仿的行为。形式相同,目的迥异。
因此,当提示词工程师去寻找“能体现我们在那些反复出错的案例中表现出色的高质量示例”时(这正是他们的职责所在),而全公司最高质量的示例恰好就在评估团队的共享文件夹里,接下来发生的事情并没有违反任何规则。这是一个称职工程师的理性行为,因为没有人告诉过他这些示例是具有“放射性”的。评估团队整理的案例,从定义上讲,就是模型以前失败过的案例。当然,它们是最好的教学材料。但这也就是为什么它们也是最差的教学材料:如果你把它们放进提示词里,你就等于是训练你的评估框架在进行开卷考试。
关于基准测试污染(benchmark contamination)的文献多年来一直对此有记录,但那是针对预训练数据层面的。最近关于大语言模型(LLM)评估中数据污染的研究发现,在常用基准测试中,污染水平高达 45%,而接触评估内容会导致原本 5–15% 的绝对准确率下降在核心指标中消失。较少被讨论的是,同样现象在短短几个迭代中,就在单个产品团队的工作流程中重演了,而污染载体不是训练过程,而是系统提示词。
其机制是相同的。模型被要求在已经向其展示过正确答案的输入上演示行为。这种展示发生在推理阶段而不是训练阶段,并不会改变指标所衡量的本质。它衡量的是记忆能力,而不是泛化能力,而你的仪表盘无法区分这两者,因为仪表盘本身就是为了衡量这组特定输入的质量而构建的。
失败模式隐藏在真实的提升曲线中
评估集到 few-shot 的污染之所以特别具有误导性,是因为仪表盘看起来并没有坏。它看起来非常棒。它呈现出的正是那种正在努力工作的团队希望看到的仪表盘样式。在某些单项示例的分数上确实存在真实的改进,因为 few-shot 演示确实能改善模型在类似输入下的行为。污染并没有使曲线变平,而是让曲线弯向了错误的方向。
你从指标内部无法看到的是两组输入群体之间的分叉。在被污染的群体中——即任何与 few-shot 演示足够相似、以至于模型可以通过模式匹配找到答案的内容——分数在攀升。而在其余的生产流量中(即评估集本应代表的部分),分数保持不变甚至略有下降,因为现在的提示词变得更长、更杂乱,并且偏向于一种可能无法泛化的狭隘措辞风格。你的整体指标将这些混合在一起进行平均,并受评估集构成比例的影响,而评估集在这些迭代中已经被透明地优化过了。
越来越多研究关注模型在见过的数据和未见过的数据上表现差异。关于“记忆-泛化指数”(Memorization Generalization Index)的研究指出,如果没有一个能够量化提升中有多少属于记忆的程序,你就不能信任单一的综合准确率数字。在团队级的 few-shot 泄露中,同样的原则也适用:综合指标掩盖了两个群体,而生产环境中真正重要的群体,正是那些没有出现在 few-shot 中的群体。
独立性到底意味着什么
- https://arxiv.org/html/2502.14425v2
- https://arxiv.org/abs/2402.15938
- https://aclanthology.org/2025.emnlp-main.1173.pdf
- https://aclanthology.org/2025.eval4nlp-1.3.pdf
- https://arxiv.org/pdf/2407.07565
- https://arxiv.org/html/2312.16337v1
- https://arxiv.org/pdf/2509.13196
- https://www.prompthub.us/blog/the-few-shot-prompting-guide
- https://montecarlo.ai/blog-llm-as-judge/
- https://www.truefoundry.com/blog/prompt-management-tools
