先记住这个答案
模型通过预测下一个token生成文本,面对模糊指令时,可能遵循的意图分布很宽,输出随机性高。直接指令描述具体动作、边界和格式,相当于把概率集中到目标行为上,而委婉措辞依赖模型从上下文中推断,推断失败则容易偏离。改写原则是:用明确动词替代客套,给出不做什么的约束,必要时提供一两个正例。不要把委婉当礼貌,模型没有社交焦虑,它主要依据指令行事。
- 明确指令缩小模型猜测意图的分布
- 用动作动词说明要做什么,用约束说明不做什么
- 委婉请求等于把任务理解权交给模型
概率生成本质决定指令需要去歧义
语言模型按token概率自回归生成,每个位置从词表中采样。当提示说“优化一下这段代码”,模型对“优化”的理解可能是性能、可读性、健壮性甚至风格。每种理解都对应不同后续token分布,模型没有机制判断你想优先哪个,只能按训练数据中的关联频率混合。结果常是通用建议,而非你要的专项优化。
直接指令例如“把函数循环改成流式处理,保持行为一致”把概率集中在局部重写风格上。另一个原因是注意力机制:委婉请求如“可以的话稍微改进”等修饰词稀释了核心动词的注意力权重,模型更容易忽略任务焦点,改写原则是去掉弱化词,突出核心指令,再补充负面约束排除常见误用。
客户邮件语气改写的具体实验
假设任务:把一封带有情绪的投诉邮件改成中立语气。委婉提示:“这篇邮件有点冲,你能不能稍微润色一下让它听起来更专业?”输入邮件内容后,Claude预期返回的文本保留了“你们太不负责任”这类指责,只改了开头的称呼。因为“润色”“专业”没有定义删除指控性词汇,模型会认为保留原意是合理的。
继续上述假设场景,改用直接表述:“重写以下邮件,保持事实与诉求不变;删除所有情绪化形容词如‘恶劣’‘糟糕’;将第二段抱怨改为客观描述;只输出重写后的邮件。”预期模型会逐项执行,结果去掉情绪词并重构句式。原因是动词化步骤(删除、改写、只输出)构成可验证子任务,委婉说法“润色”没有可操作动作边界。
适用边界:当任务超出模型能力或需创造性
如果任务本身超出模型知识范围,比如要求计算不存在的物理常数,再明确指令也会输出貌似合理但错误的结果。此时指令清晰只能保证格式正确,无法保证内容正确,需要换任务分解或引入外部工具。直接指令也不是万能药。
对于创意写作,过度明确的风格约束(如“第一句用被动语态,第三段用隐喻”)可能束缚生成,导致机械拼接。正确做法是给定可量化的高层约束(主旨、情绪、长度),把微观风格留白。判断边界的方法是自测:如果指令中没有可检验的成功标准,那就需要补充验证项,否则容易无效。
容易答错的地方
- 模型能理解委婉暗示
- 许多人认为模型读得懂弦外之音。实际上训练数据里大量委婉请求常伴随后续澄清,模型预测时会迁移这种惯性,导致输出偏向补全省略内容,而不是严格执行你的目的,所以委婉造成偏差。
- 明确指令会扼杀模型能力
- 把指令写细不等于控制每一步,而是设定清晰结果。模型内部推理仍自由,明确约束只减少歧义,不限制知识召回。真正的危险是约束与条件冲突,导致模型无法满足,此时应拆分任务而不是回到模糊。
面试官还会怎么问?
如果直接指令已经明确,但模型仍然不遵循该怎么办?
先检查是否引入了模型无法同时满足的约束(时间、格式、事实冲突)。若约束都可行则可能是任务过难,需要拆成子步骤,或给一个正例作为参照。直接指令只处理意图歧义,不处理能力短板。
委婉措辞是否完全没有应用场景?
在需要模型主动提供建议或探索问题时,适度开放性有用,例如产品想法讨论。但在有明确交付物的生产环境,应使用直接指令。混合策略是先给直接指令做硬性输出,再留一个开放选项,如“如果我的要求有歧义,请主动指出”。
如何判断一段提示词是否足够直接?
对每个指令抽核心动词,若句子能被替换成祈使句而不改变意义,则可能仍有委婉成分。让另一个工程师不看额外上下文执行提示,若对方必须询问细节,则必然不够直接。此测试能暴露隐性假设。
参考资料
示例用于理解所注明的运行环境与边界;延伸学习可结合原文中的更多案例。