你写了个很认真的 prompt,标准三条:“吸引、专业、创新”。输出严格来说全满足。但完全没法用:那个”吸引人的钩子”像 LinkedIn 帖,“专业”语气冷冰冰,“创新”的角度和上个月三个对手用过的一模一样。模型没失败——你的标准不算标准,它们是 vibe。模型把每个形容词解读成训练分布的平均态,平均态正是你最不想要的。
最快的修法:给每条标准写一个外行 10 秒能跑的测试(写 "开头是数字或具体场景",而不是”吸引”),给标准排序,再给最难的那条配 1 个通过示例 + 1 个不通过示例。如果只来得及改一处,就把每个形容词换成可检查的规则。本文讲完整流程,以及怎么确认确实修好了。
常见原因
1. 标准是形容词不是规则
“吸引”、“专业”、“创新”、“自然”、“精致”这些没法检验。两个评审会吵起来,模型也没锚。这是最常见的一条,也是评测工具的 rubric 指南反复强调的:像”好”、“有用”、“高质量”这类虚词,不做操作化定义就一定有分歧——因为模型执行的是流程,不是形容词。
如何判断:把标准念出声。如果你说不出 10 秒内能做的检查,它就是形容词不是规则。
2. 没 pass / fail 示例
你只说”专业”,不给”这就是专业”和”这就不是”的例子,模型只能用自己的定义。
如何判断:你的 prompt 里 0 个可接受示例、0 个拒绝示例。
3. 标准之间偷偷冲突
“创新但符合品牌”、“吸引但专业”、“全面但简洁”——每对都有张力,你没解决。模型选了一边,常常是错的一边。
如何判断:找两条标准,把一条往上推会把另一条往下压。
4. 标准假设共享口味
你写”做出我们品牌的感觉”但没定义”我们品牌”。模型没读过你的 style guide。
如何判断:标准引用了只有你团队知道的东西。
5. 没排序
“所有标准同样重要”几乎都是假话。不排序就被平均,平均就平庸。
如何判断:模型要取舍时,舍掉的恰好是你最在意的那条。
6. 标准没有”长度中立”
像”充分”、“全面”这种标准没设上限时,模型就把”更长”当”更好”——大多数评审也这样,包括 LLM judge,它们有据可查地存在 verbosity bias(偏好长答案)。你要的是质量,拿到的是字数。
如何判断:你接受的输出越来越长,但并没有越来越好。
你属于哪一类
| 症状 | 最可能的原因 | 跳到 |
|---|---|---|
| 输出”对”但平淡、泛泛 | 形容词不是规则(原因 1) | Step 1 |
| 团队两个人对”是否通过”意见不一 | 没 pass/fail 示例(原因 2) | Step 2 |
| 模型满足了一条却无视另一条 | 偷偷冲突 / 没排序(原因 3、5) | Step 3 |
| ”做出我们的味道”总是不对 | 假设共享口味(原因 4) | Step 5 |
| 输出越来越长,但没更好 | 没长度中立(原因 6) | Step 1(加上限) |
动手前先确认
- 列出当前 prompt 里每条标准。
- 给每条起草一个外行 10 秒能做的测试。
- 最难的两条配 1 个”通过”和 1 个”不通过”示例。
- 找出哪几条会冲突。
- 重新 prompt 之前先定好排序。
需要收集的信息
- 当前 prompt + 全部标准。
- 一份接受 + 一份拒绝的输出,分别标注。
- 接受/拒绝的理由(用来反推规则)。
- 模型、temperature、system prompt。
- 评审之间是否真的对每条标准达成一致(往往没有)。
最短修复路径
Step 1:把每个形容词操作化
口味词翻成可测规则。好的规则要具体、可观察、有边界(这样”充分”就不会偷偷变成”更长”):
| 形容词 | 可测规则 |
|---|---|
| ”吸引" | "开头是问句、统计数字或具体场景。不能是’在当今……’。" |
| "专业" | "无感叹号、无 emoji、不用第一人称复数(‘我们’)、不用口语缩略。" |
| "创新" | "至少提到一个具体命名的方法/工具/模式,且不在行业 top-5 清单里。" |
| "简洁" | "全文 ≤200 字。每句 ≤20 字。" |
| "自然" | "句长方差:至少一句 ≤10 字,至少一句 ≥20 字。" |
| "充分" | "覆盖列出的全部 4 个子点。字数更少但质量相同,得分相同。“ |
Step 2:给一个通过 + 一个不通过示例
最棘手的标准配上:
可接受的"吸引"开头示例:
"73% 的团队第一次 AI 落地就放弃了。活下来的人做对了什么?"
不可接受的"吸引"开头示例:
"在快速发展的人工智能时代,组织正面临前所未有的机会。"
可接受的用了具体数字 + 具体框架。不可接受的全是泛词 + 商业 buzz。
示例胜过 100 字形容词。
Step 3:给标准排序
声明优先级和冲突时的取舍:
优先级(满足不了就从下往上砍):
1. 事实正确(绝不违反)
2. ≤200 字
3. 上面操作化的"吸引"规则
4. 上面操作化的"专业"规则
5. 品牌语气锚
"吸引"和"专业"冲突时,优先"专业"。
Step 4:让模型自审(先讲理由,再下结论)
末尾加一个 checklist,并强制模型先写理由、再给是/否,让结论由检查推出,而不是反过来:
写完后输出 checklist。每条标准先给证据,再给结论:
- 标准 1(事实正确):证据 -> 是/否
- 标准 2(≤200 字):字数 -> 是/否
- 标准 3(吸引规则):满足了哪条 -> 是/否
- 标准 4(专业规则):有无违反 -> 是/否
任何一项为否就重写后再核。
每条用 pass/fail,不要打 1-5 分。让模型给”5 分里的 3 分”等于让它同时干两件事——判断够不够好,再在一条随意的刻度上选位置——选刻度这一步纯属噪声。只有真有梯度的标准(连贯性、共情、教学清晰度)才值得用分级;事实正确、字数上限、政策红线这类硬门槛一律用 pass/fail。
Step 5:主观标准用锚
天生主观的标准(“我们品牌语气”)给 2-3 句典型品牌文案做语气锚。模型仿锚比跟形容词稳。
Step 6:用边界输入测
喂一个两条标准明显冲突的输入。如果模型还在试图同时满足,说明优先级没落地。再排一遍序。
怎么确认已经修好
- 两个评审用你的标准独立审同一篇输出,结论一致。(在 LLM 评测实践里,judge 和人工的一致率大致 75%-90% 才算 rubric 足够可靠;两个人之间也照这个标准看。)
- 模型自审 checklist 全通过,且每条都附了证据。
- 同 prompt 跑 3 次,3 次都通过标准。
- 你故意写的”差”输出会被规则挡掉——如果它混过去了,说明还有规则太松。
如果还是没修好
- 标准可能还是不可测——砍掉最虚的一条,看质量是否提升。
- 还松的标准再补 pass/fail 示例。
- 改用 few-shot:3-5 个接受样本作为锚,比规则更稳。
- 标准在你关心的输入上真的冲突,spec 不可能——要么改输入要么改标准。
常见问题
标准多少条算太多? 单个 prompt 超过五六条,模型就在它们之间平均,哪条都不够锐。给标准排序,让靠后的几条当”锦上添花”。一份短的可测规则清单永远胜过一长串形容词。
每条该打 1-5 分还是 pass/fail? 有明确门槛的(≤200 字、无 emoji、事实正确)一律 pass/fail。只有质量真有梯度时(连贯性、共情、教学清晰度)1-5 分才划算。把随意的刻度选择塞进硬门槛,只会增加方差。
模型为什么总写更长来显得”更好”? 因为”充分”、“全面”不设上限就被读成”越多越好”,而人工评审和 LLM 评审都带同一种 verbosity bias。加一句明确的长度中立:在正确性相同的前提下,字数更少得分不低于字数更多。
加了规则后两个评审还是分歧,怎么办? 分歧恰好指向那条还很主观的规则。把那一条单独拎出来,专门给它写 1 个通过示例 + 1 个不通过示例,让两个评审重判。规则说不清的,示例能说清。
这套在 ChatGPT、Claude、Gemini 上是一样的吗? 一样——问题出在 spec,不在模型。操作化标准、排序、pass/fail 示例在 GPT-5.5、Claude Opus 4.7 / Sonnet 4.6、Gemini 3.1 Pro 上都能提升输出,因为每个模型都在拿同一个含糊形容词去对自己的平均态。
预防建议
- 默认:每条标准必须让外行 10 秒能测。
- 每个任务类型维护一份操作化标准库(博客、邮件、摘要、code review)。
- 每个常做任务存一份”金本位”输出,做 few-shot 锚。
- 每个 prompt 都显式排序。“同等重要”就是没想清楚。
- 每月审一次已接受的输出:是真过了规则,还是只过了你的 gut?
相关阅读
想更系统地写出人工和 AI judge 都能一致执行的 rubric,可参考 Evidently AI 的 LLM-as-a-judge 指南。