JA EN
体系エージェント
·★ 会員·論文·12分で読めます

マルチエージェント設計パターン — 分担・討論・検証

エージェントを何体並べても、全員が同じ間違い方をするなら1体と変わりません。多数決が効く条件を式で押さえたうえで、分担・討論・敵対的検証の3つの型を、いつ使い、いつ1体で済ませるべきかまで整理します。

対象textタスクagent

Improving Factuality and Reasoning in Language Models through Multiagent Debate


会議を増やせば賢くなるのか

「三人寄れば文殊の知恵」には隠れた前提があります。3人が違う考え方をしていることです。同じ教科書で同じ研修を受けた3人なら、同じところで同じ勘違いをします。そこで多数決を取れば、間違いが3倍の自信を持って確定するだけです。

LLMエージェントを複数並べる設計は、この諺の工学版です。1体のエージェント(LLMエージェントを1から解説で扱った、考える→道具を使う→結果を見る、のループ)を複数走らせ、役割を分け、答えを突き合わせる。うまくいけば1体では届かない品質に届き、うまくいかなければ料金だけが体数の分だけ増えます。

この記事は「どんなときに増やすと得か」を先に決めてから型を見ます。順番が逆だと、流行りの構成をコピーして、遅くて高くて精度が同じシステムができあがるからです。

増やして得をする条件を、数で押さえる

いちばん素朴な形から始めます。同じ問題を nn 体に解かせ、多数決を取る。各体が確率 pp で正解し、互いに独立に間違えるとします。

Pmaj(n)=k>n/2(nk)pk(1p)nkP_{\text{maj}}(n) = \sum_{k > n/2} \binom{n}{k}\, p^{k} (1-p)^{\,n-k}
(1)

つまりこれは、少し表の出やすいコインを nn 枚投げて、表が過半数を占める確率を数えているのと同じ形です。pp が1枚あたりの表の出やすさ(=エージェント1体の正解率)、nn が投げる枚数(=体数)にあたります。

式(1)が言っているのは「nn 体のうち過半数が正解する確率」だけです。(nk)\binom{n}{k} は「nn 体から kk 体を選ぶ組み合わせの数」、pk(1p)nkp^k(1-p)^{n-k} は「その kk 体が当たり、残りが外れる確率」。大事なのは向きです。p>0.5p > 0.5 なら nn を増やすほど1に近づき、p<0.5p < 0.5 なら逆に0へ落ちます。もともと半分も当たらないタスクでは、体数を増やすほど確実に間違えます。

そしてこの式は「独立に間違える」という一行の仮定に全部を賭けています。誤差同士の相関を ρ\rho とすると、nn 体の平均のばらつきはこうなります。

Var ⁣(1ni=1nei)=σ2(1n+n1nρ)    n    σ2ρ\operatorname{Var}\!\left(\frac{1}{n}\sum_{i=1}^{n} e_i\right) = \sigma^{2}\left(\frac{1}{n} + \frac{n-1}{n}\rho\right) \;\xrightarrow[\;n \to \infty\;]{}\; \sigma^{2}\rho
(2)

つまりこれは、体数を増やして薄められるのは「各体がばらばらにやらかす分」だけで、「全員が揃って同じ方向にやらかす分」は何体並べても残る、ということです。右側の矢印は「体数を無限に増やしたときの行き先」を表しています。

eie_i は各体の誤差、σ2\sigma^2 はその大きさ、ρ\rho は「2体が同じ方向に間違える度合い」です。式(2)が伝えるのは1点だけ。体数をいくら増やしても、ばらつきは σ2ρ\sigma^2\rho より下には行きません。 ρ=1\rho=1、つまり全員が完全に同じ間違い方をするなら 1/n1/n の項は消え、100体並べても1体と同じです。

ここがマルチエージェント設計の急所です。同じモデルに、同じプロンプトで、同じ温度で解かせた出力は ρ\rho が1に近く、多数決も討論もほとんど効きません。効かせたければわざと違わせる必要があります。温度を上げる、プロンプトの切り口を変える(先に反例を探させる/先に結論を書かせる)、渡す資料を変える、モデル自体を変える。複数の推論経路を引いて多数決を取る自己整合性(self-consistency, Wang et al., 2022)以来、サンプリングの多様性は繰り返し使われてきた資源です。

FIG 1温度を下げると1つの候補にほぼ全部の確率が寄り、上げると平らになる。温度が0に近い並列サンプルは「同じ答えのコピー」に近づき、式(2)のρが1へ寄っていく

パターン1: 分担 — 文脈を切って並べる

役割分担は、精度のためというより文脈と注意のための型です。1本のプロンプトに「仕様を読む」「実装する」「テストを書く」「レビューする」を全部詰めると、後半の指示ほど守られにくくなり、履歴も膨らみます。これを別々のエージェントに割り、各自には自分の仕事に必要な資料だけを渡します。

型は2つに分かれます。パイプライン型は調査→設計→実装→検証のように前の出力が次の入力になる直列型で、どこで壊れたか追いやすい代わりに上流のエラーが下流へそのまま流れます。ファンアウト型は独立な小仕事(10個のファイルを各々移行する、5つの観点でレビューする)を同時に配る並列型で、所要時間が最も遅い1体で決まります。

分担が効く条件はひとつです。分けた仕事が、互いの途中経過を知らなくても成立すること。共有状態が要る仕事を無理に分けると、片方が古い前提のまま進み、統合の段で辻褄が合いません。ファイルを書くエージェントを並列に走らせるなら、作業ディレクトリを分ける(gitならワークツリーを分ける)のが安全です。受け渡しの形式も固くしておきます。自然文で引き継ぐと下流のパースが割れるので、JSONスキーマで型を決めます([構造化出力と制約デコーディング](/ja/a/structured-output/))。

この先にあるもの

§

ここから先は会員限定です

解説記事371本・教科書26章・学生モード48単元・論文精読6本が、月額¥490ですべて読み放題になります。新しい解説は毎日3本ずつ増えます。いつでも解約でき、解約後も期間の終わりまで読めます。

会員の方はログインすると続きが表示されます

参考文献

  1. Improving Factuality and Reasoning in Language Models through Multiagent Debate. arXiv:2305.14325論文ページ·PDF
  2. Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171論文ページ·PDF
  3. AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation. arXiv:2308.08155論文ページ·PDF

本記事は上記論文の本文にもとづいて執筆しています。数値・主張は原典を優先してください。

コメント

コメントにはログインが必要です