心智社会与多智能体辩论


文档摘要

心智社会与多智能体辩论 本节摘要:Minsky 1986 的命题——智能是一个专家组成的社会——每十年被重新发现一次。2023 年 Du et al. 把它变成了具体算法:多个 LLM 实例各自给答案、互读答案、互相批判、再更新;经 N 轮收敛到的共识,在六项推理与事实性任务上胜过零样本 CoT 与反思。两条发现至关重要:多 Agent 与多轮各自独立贡献——社会胜过单 Agent 独白,多轮交换胜过一次性投票。本节讲透辩论为何打破自洽性(self-consistency)的饱和(样本不再 i.i.d.,相关误差被去相关),给出异构辩论、NLSOM 129-Agent 扩展,以及三类失败(谄媚级联、话题漂移、算力爆炸),最后用 Python 实现一个 3×3 辩论,让你看到收敛与递减收益。

心智社会与多智能体辩论

本节摘要:Minsky 1986 的命题——智能是一个专家组成的社会——每十年被重新发现一次。2023 年 Du et al. 把它变成了具体算法:多个 LLM 实例各自给答案、互读答案、互相批判、再更新;经 N 轮收敛到的共识,在六项推理与事实性任务上胜过零样本 CoT 与反思。两条发现至关重要:多 Agent 与多轮各自独立贡献——社会胜过单 Agent 独白,多轮交换胜过一次性投票。本节讲透辩论为何打破自洽性(self-consistency)的饱和(样本不再 i.i.d.,相关误差被去相关),给出异构辩论、NLSOM 129-Agent 扩展,以及三类失败(谄媚级联、话题漂移、算力爆炸),最后用 Python 实现一个 3×3 辩论,让你看到收敛与递减收益。

学习目标

阅读完本节,你应当能够:

  1. 说清 Du et al. 多智能体辩论算法,以及「多 Agent」与「多轮」各自独立贡献的消融结论。
  2. 解释辩论为何打破自洽性饱和(暴露分歧、去相关误差)。
  3. 区分同构与异构辩论,说明弱模型拖累共识的风险。
  4. 识别三类失败模式(谄媚级联、话题漂移、算力爆炸)及其缓解。
  5. 用 Python 从零实现一个多轮多 Agent 辩论,并观察收敛与递减收益。

一、问题与直觉

自洽性——对同一模型采样多次取多数答案——是你能加上的最便宜的推理改进。它有效,但饱和很快。你可以翻倍采样却看不到有意义的提升。

辩论打破饱和。不再是同一模型的 N 次独立采样,而是 N 个 Agent 互读推理并修订。样本间的相关性下降(不再 i.i.d.),收敛点常常在 i.i.d. 投票自信地错了的地方反而是对的。

Du et al. 2023 算法

来自 arXiv:2305.14325(ICML 2024):

  1. N 个 Agent 各自对问题给出初始答案。
  2. 对 r = 2..R 轮:每个 Agent 看到其他 Agent 第 r-1 轮的答案,被问「考虑到这些,给出你更新的答案」。
  3. R 轮后,对最终答案做多数投票。

论文在 MMLU、GSM8K、传记、MATH、事实性基准上测试,辩论一致胜过 CoT 与自我反思。

两个独立旋钮

同一论文的消融:

  • 仅多 Agent(1 轮,N 个多数投票)在多数任务上胜过单 Agent,但会平台化
  • 仅多轮(1 个 Agent 看自己先前推理)几乎无用——反思的已知弱点。
  • 两者一起才产生大跳跃。多个 Agent 之间的多轮交换驱动了增益。

为什么有效:两条机制

  1. 暴露分歧:当 Agent 看到另一个 Agent 推理链得出不同结论时,它必须要么辩护要么更新。无论哪种,第 r+1 轮的上下文都比第 r 轮更丰富。
  2. 去相关误差:自洽性里所有样本来自同一模型,误差相关——你平均出一个自信地错的答案。不同模型或不同种子去相关;不同的辩论观点去相关得更彻底。

异构辩论

A-HMAD 等后续工作用不同基模型做不同 Agent。Llama + Claude + GPT 辩论降低单一文化坍缩(第 23 节),因为一个模型族的相关误差不被其他族共享。

代价:弱模型参与辩论会把共识拖向它的错误答案(见 Should we be going MAD?,arXiv:2311.17371)。

NLSOM——129 Agent 扩展

Zhuge et al.(Mindstorms in Natural-Language-Based Societies of Mind,arXiv:2305.17066)把这个想法扩到 129 成员社会。结论:随规模出现专精化与自组织,系统在视觉问答等任务上胜过单 Agent。

失败模式

  • 谄媚级联:所有 Agent 都服从听起来最自信的那个,辩论坍塌成最响的声音。给对抗角色提示(「一个 Agent 必须持反方立场」)有帮助。
  • 话题漂移:多轮辩论漂离原问题。缓解:每轮重新注入问题
  • 算力爆炸:N 个 Agent × R 轮 = N·R 次 LLM 调用,每次上下文还在长。5×5 辩论是 25 次调用且上下文增长。单问题成本可超单次 CoT 的 10 倍。

⚠️ 辩论是协调机制的典型代表:收益来自 Agent 间的交互,代价也在交互(调用次数爆炸、上下文膨胀)。把它当默认是过度工程;把它当「自洽性饱和后的下一档」才是正解。

二、从零实现

code/main.py 跑一个 3×3 辩论:数学题,每个 Agent 起始答案不同(可能错)。Agent 脚本化——每次「更新」是按脚本化置信度加权平均邻居答案。逐轮日志可见收敛。

骨架

class DebateAgent: def __init__(self, name, init_answer, confidence): self.name = name; self.answer = init_answer; self.conf = confidence def update(self, others): # 看到其他 Agent 答案,按置信度加权更新 total_w = self.conf + sum(o.conf for o in others) weighted = (self.answer*self.conf + sum(o.answer*o.conf for o in others)) self.answer = weighted / total_w return self.answer def debate(agents, rounds): history = [[a.answer for a in agents]] for r in range(2, rounds+1): for a in agents: others = [o for o in agents if o is not a] a.update(others) history.append([a.answer for a in agents]) return history

设计要点:演示展示两个关键效应——一轮交换就把 Agent 拉近正确答案;第二轮之后收益递减(对应 Du et al. 的平台化)。这就是工程上「轮数封顶 3」的依据。

加对抗槽

class AdversarialAgent(DebateAgent): def update(self, others): majority = sum(o.answer for o in others) / len(others) self.answer = self.answer + (self.answer - majority) # 主动偏离多数

对抗槽打破谄媚级联——迫使其他 Agent 要么辩护要么更新,而非默认附和。

三、框架对比

变体 结构 优势 风险
轮询辩论(Du et al.) N Agent 对称,R 轮,多数投票 简单、可复现 谄媚级联
异构辩论(A-HMAD) 不同基模型混搭 去相关、抗单一文化 弱模型拖累
对抗辩论 一个 Agent 持反方 破谄媚 可能永不收敛
判官主导 一个判官 Agent 听多方再裁决 收敛快 判官成单点
辩论链(chain-of-debate) 辩论输出串成下一辩论 复杂任务 误差沿链累积
NLSOM(129 Agent) 大规模社会,自组织 涌现专精 算力巨大、难调试

💡 心法:轮数封顶 3、Agent 数封顶 5、默认异构、留一个对抗槽、每轮都记日志。 这是 Du et al. 平台化结论与生产经验的交集。超过这些上限,代价涨得比质量快。

四、可复用产物

outputs/skill-debate-configurator.md:为新任务配置辩论——Agent 数、轮数、异构度(同模型 vs 混合)、角色分配(对称 vs 一对抗)。并在跑之前估算 token 成本。

五、练习

  1. 观察递减:跑 code/main.py,把轮数设 5,看递减收益。到第几轮起额外收敛停止?
  2. 加对抗 Agent:加第四个对抗角色(总与当前多数相左)。它是破坏还是改善收敛?
  3. 同意度曲线:打印每轮的同意度分数(在多数答案上的 Agent 占比)。它何时到 1.0?1.0 等价于「正确」吗?
  4. 复现消融:读 Du et al. 第 4 节消融,用本代码复现「仅 Agent」「仅轮数」「两者」三个结果。
  5. 读 MAD 论文:读 Should we be going MAD?(arXiv:2311.17371),列出两种轮询之外的辩论变体(判官主导、辩论链、对抗)。

本节要点回顾

  1. Minsky 命题被工程化:智能是专家社会;Du et al. 2023 把它变成「N Agent 提案-互批-修订-投票」的具体算法。
  2. 两个独立旋钮:仅多 Agent 会平台化,仅多轮几乎无用(反思的弱点),两者一起才产生大跳跃。
  3. 打破自洽性饱和:辩论让样本不再 i.i.d.,暴露分歧、去相关误差,在 i.i.d. 投票自信地错的地方收敛到对。
  4. 异构辩论抗单一文化:不同基模型混搭去相关;但弱模型会拖累共识。
  5. NLSOM 扩到 129 Agent:随规模涌现专精化与自组织。
  6. 三类失败:谄媚级联(都服从最响的)、话题漂移(漂离原问题)、算力爆炸(N·R 调用且上下文增长)。
  7. 工程护栏:轮数封顶 3、Agent 数封顶 5、默认异构、留一个对抗槽、每轮记日志。
  8. 协调机制的本质:收益与代价都来自 Agent 间交互——辩论是自洽性饱和后的下一档,不是默认。

下一节,我们聚焦辩论与监督者背后的角色设计——规划者、批判者、执行者、验证者四类专职角色如何分工,以及角色边界的清晰程度如何决定系统质量。


发布者: 作者: Rohit Gupta 转发
评论区 (0)
U