系统提示词提供的人格,模型每次都会以同样的方式选择
我最近接触的一个产品团队针对回复人格设定(简洁、详尽、对话式)进行了一项为期三周的 A/B 测试,覆盖了所有用户群组。系统提示词描述了这三种设定,并要求模型选择最匹配用户的那一种。当他们打开数据集编写分析报告时,一个数字让他们愣住了:“详尽”组占据了 91% 的流量。另外两组的比例小到几乎可以忽略不计。
他们的实验平台没有标记任何异常。没有触发任何警报。流水线完全按照他们的指令运行。三周所谓的“多人格测试”产生了一个只能告诉他们关于“详尽”信息的数据集。另外两组样本太少,根本无法进行任何统计推断。
房间里的第一直觉是提示词需要改进——更好的指令、更清晰的人格区分、为对话式场景提供更刻意的示例。如果是在十年前基于规则的路由器中,这个诊断是正确的。但对于模型来说,它是错误的。提示词不是变量,路由器才是。
当模型充当随机分配器时,它并不随机
如果你读过关于因果推断的论文,你就会知道 A/B 测试的金科玉律:实验组分配必须独立于实验单元。你必须在你正在衡量的系统之外掷硬币。一旦你让你正在衡量的系统参与掷硬币,硬币就不再公平了,你认为你正在进行的对比实验就不是你实际进行的对比。
要求语言模型选择一个人格设定正是违反了这一规则。模型不是硬币。它是一个高维函数,其对自己行为的先验是由数以 TB 计的训练数据塑造的。当你写下“根据用户选择简洁、详尽或对话式”时,你并不是在委托一个随机过程。你是在顺从一个在你的产品诞生前几个月就已经定型的学习偏好。
关于这一点的文献研究并不晦涩。LLM 输出中的冗长偏差(Verbosity bias)在不同模型家族和训练方案中都有记录——RLHF、DPO 以及对长思维链(chain-of-thought)轨迹的监督微调都强化了模型趋向于更长、更详尽回复的倾向,通常不考虑增加的长度是否真的提高了质量。根据任务和提示词的不同,冗长补偿(Verbosity compensation)的频率在 13.6% 到 74% 之间,即使提示词明确要求简洁,这种模式依然存在。模型对输出长度的先验并不弱。在许多生产环境中,它是房间里最强烈的信号。
因此,当你的系统提示词提供三个设定作为自由选择时,模型并没有在运行你的实验。它是在对自己的训练偏好进行一项观察性研究,并像这是用户要求的反馈一样汇报结果。
