提示词里的干净例子,可能让模型从没见过坏输入
Reddit 上关于 few-shot 示例的讨论:有人只放干净样本,有人故意保留错字,还有人提醒,坏例子要配正确后续,否则模型会把破碎输出当成目标格式。
Reddit 的 r/PromptEngineering 里,有人问了一个很小的问题:你故意往提示词里塞过最乱的输入是什么?
发帖人 Inevitable-Good219 说,他习惯在提示词里放例子,让模型照着格式输出。这些例子都很干净,是他挑出来“好看”的样本。上周他才意识到,这意味着自己的提示词从未见过一次坏输入。
他去问了一圈,三个回答改变了他的看法。
网友 Awkward-Ear8342 会在示例里保留一份真实输入的错字版本。原因很直接:模型处理这个错字版本,比处理干净版本更好。真实输入会用你预料不到的方式坏掉,而他的提示词已经提前排练过一次。
网友 Dexi1310 的做法是,两到三个例子覆盖真正不同的情况,再加一个合理的脏输入,前提是这个失败点重要。关键一步是展示接下来该发生什么:补上缺失字段,或者问一个澄清问题。否则模型会学到另一件事,破碎输出就是目标格式。
网友 Standard-Rooster6584 提了一个发帖人回答不了的问题:坏例子要真实到什么程度?它需要真实到模型还能认出 schema,还是可以完全胡来?他觉得真实边缘案例比胡编乱造更有用,但没有人能给出那条线的位置。发帖人也承认,这个答案可能随任务变化。
所以问题留给了评论区:你故意放进提示词的最乱输入是什么?它教给模型的东西,有什么是你没预料到的?如果答案是没有,也算,因为上周之前他就是这个状态。
跟帖里,网友 Traditional_Play_353 给了一个很具体的样本:一份 500 行的 JSON,里面有嵌套错字、随机大小写、缺失逗号。模型还是解析了,并开始生成有效响应。他的结论是,模型修复混乱的能力比他想的强。
从这些回答里能看到一个共同点:提示词里的例子不只负责展示格式,也在悄悄定义模型将遇到什么分布。全放干净样本,模型只练过顺风局。放一个带伤的输入,再写清楚正确后续,模型才有机会学会修复,避免照抄破损输出。
原帖:https://www.reddit.com/r/PromptEngineering/comments/1xrs0d1/whats_the_messiest_input_you_have_ever/
发布时间: 2026-11-09 21:44