multi-model-debate · ZH · 2026-10-24

在一把 key 上让两个后端打两轮辩论:哪个模型的立场更稳

用同一把 API key 调用两个不同模型,设计“各自作答 → 互评 → 修订”的两轮辩论流程,并记录每个模型在哪一轮改变了结论,从而判断哪个模型的立场更稳。文章给出可复用的协议设计、记录字段与解读方法。

为什么要做“双模型辩论”

单次调用很难看出一个模型有多“稳”:换个措辞、换个上下文,结论就可能漂移。把两个模型放进同一个流程里互相审视,你能观察到更接近真实使用场景的行为——它们会不会因为对方的一句质疑就推翻自己,还是能在被反驳时守住有依据的部分。

在聚合站上做这件事很省事:一个 API key、一套请求格式,就能同时调用 Claude、GPT、DeepSeek、Qwen、GLM、Kimi 等不同模型,不必为每家单独申请凭据、单独处理 SDK 差异。

注意这里的目标不是“让模型吵出正确答案”,而是测量立场稳定性:谁在哪一轮、因为什么理由改变了结论。

流程设计:三轮 + 一次记录

把一个议题跑成固定三轮,每轮都是独立的 API 调用:

  • 第 1 轮 独立作答:模型 A 和模型 B 各自拿到同一个问题,不告知对方存在,输出结论 + 关键理由。
  • 第 2 轮 互评:把对方的第 1 轮输出匿名化(称“回答 X”“回答 Y”,不透露模型名),让每个模型指出对方论证中它不认同的点,并说明理由。
  • 第 3 轮 修订:每个模型看到针对自己的批评,输出最终结论,并明确标注“维持”还是“改变”,若改变需给出触发改变的具体论点。

关键点:匿名化。模型对品牌有先验偏好,暴露名字会让“改变立场”混入“服从权威”的成分,污染你要测的东西。

提示词要点

三轮用同一套模板,只替换变量,保证可比性:

  • 第 1 轮要求“先给结论,再给不超过三条关键理由”,避免长篇铺陈难以比对。
  • 第 2 轮要求“只针对对方论证,不复述自己的完整答案”,并且“如果你认同对方某点,也要显式说明”。
  • 第 3 轮强制输出结构化字段:结论、是否改变、改变原因、仍不认同的点。

结构化字段是后面统计的基础。让模型自由发挥,你会得到一堆无法对齐的散文。

记录哪些字段

每一轮每个模型都落一条记录,最少包含:

  • 轮次、模型标识、议题 ID
  • 结论的规范化摘要(同一议题用固定措辞归一,否则无法判断“是否改变”)
  • 是否改变(第 3 轮)、改变方向
  • 触发的具体论点(引用对方原句片段)
  • 理由条数与结构完整度
  • 耗时与 token 用量(用于评估这套流程的成本)

“结论是否改变”不能靠模型自述,最好再用一次调用或规则做一次判定:把第 1 轮和第 3 轮的结论摘要一起给出,问“这两个结论是否实质相同”。模型自报的“我维持原判”并不可靠。

怎么解读结果

把“稳定性”拆成几个可观察的量,比一个笼统的分数更有用:

  • 首轮一致率:两个模型第 1 轮结论是否相同。不同的话,后面的辩论才有信息量。
  • 被说服率:第 3 轮改变结论的比例。过低可能是固执,过高可能是缺乏主见,都不是“稳”。
  • 改变的理由质量:改变是被对方的具体论据推动,还是被“你说得对”这类空话推动。后者是脆弱信号。
  • 抗压但不对抗:理想状态是承认对方有效的部分、保留自己成立的部分,而不是全盘接受或全盘否定。

同一议题建议换几种措辞、调换 A/B 顺序各跑一遍。如果某模型在顺序调换后结论翻转,说明它对呈现顺序敏感,这本身就是稳定性问题。

用聚合站跑这件事的便利

这套流程对调用量的需求是可预期的:议题数 × 2 模型 × 3 轮,再加判定调用。用一把 key 横向换模型做对比,省去了多套凭据和计费通道的维护;充值走 Base 上的 USDC、无需 KYC,适合做这种小规模、反复迭代的实验。按官方价 ×1.3 扣费,成本随调用量线性可估算,便于在扩大议题集前先算清楚预算。

如果你的实验需要大量重复跑,也可以考虑贡献 key 换取按官方价 ×1.1(优质 ×1.2)的 USDC 返还,但那只影响成本结构,不改变上面的方法。

常见坑

  • 共享上下文:把三轮塞进同一个对话历史里,模型会倾向于自洽而非真实评估。每轮独立请求,只拼装必要片段。
  • 不匿名:暴露模型名会引入品牌先验,第 2 轮起就失真。
  • 没有归一化结论:同一意思换个说法就被判成“改变”,统计全错。
  • 只看最终答案:真正有价值的信息在“哪一轮、因为哪句话改变”,丢掉过程就只剩一个无法解释的比分。

小结

双模型辩论不是让模型替你决策,而是一个可复现的观测装置:固定流程、匿名互评、结构化记录、顺序对调复跑。你要的答案不是“谁更聪明”,而是“在被质疑时,谁的结论变化更少且理由更站得住”。