論文紹介: Mixture-of-Agents Enhances Large Language Model Capabilities

<!-- 論文紹介: Mixture-of-Agents Enhances Large Language Model
Capabilities -->

## はじめに
大規模言語モデル（LLM）は近年、自然言語の理解や生成の分野で大きな進展を遂げています。しかし、これらのモデルは個別の能力に限界があり、モデルサイズやトレーニングデータの増加には高コストが伴います。その中で、複数のモデルを活用する「協調性」に注目したアプローチが注目されています。

今回紹介する論文「Mixture-of-Agents Enhances Large Language Model Capabilities」（Wang ら, 2024）は、複数の LLM の強みを統合して性能を向上させる「Mixture-of-Agents（MoA）」手法を提案しています。この手法は、層状に配置された複数のエージェントが互いの出力を吟味することでより高品質な応答を生成可能とします。

参考文献:
J. Wang, J. Wang, B. Athiwaratkun, C. Zhang, and J. Zou. ["Mixture-of-Agents Enhances Large Language Model Capabilities"](https://arxiv.org/abs/2406.04692) arXiv preprint arXiv:2406.04692 (2024).

---
## 0 時間がない人向けの概要

- **ポイント**  
  - 複数の大規模言語モデル (LLM) が層状に協力して応答を改善する「Mixture-of-Agents (MoA)」手法を提案。  
  - 各エージェントが他モデルの出力を参照する「協調性」により、個別モデルを上回る性能を達成。  
  - **AlpacaEval 2.0** において MoA はオープンソースモデルのみで 65.1% のスコアを記録し、GPT-4 Omni(GPT-4o) の 57.5% を大幅に上回る。  
  - **FLASK** や **MT-Bench** などのベンチマークでも GPT-4o を超える成果を達成。  
  - GitHub リポジトリ: [MoA 実装コード](https://github.com/togethercomputer/moa)。

MoA はオープンソースと商用モデルを問わず活用可能で、**LLM 同士の協調**という新しい観点から AI の性能を引き出す新たな方向性を示しています。

---

## 1 論文の概要

近年、多様な LLM が登場する中、複数の LLM の協調的な活用が重要な研究課題となっています。
この論文では、複数の LLM を協調的に活用する Mixture-of-Agents (MoA) アプローチを提案します。MoA では層状のアーキテクチャを採用し、各層に複数の LLM エージェントを配置します。各エージェントは前層の全エージェントからの出力を補助情報として利用し、より良い応答を生成します。

MoA の成果として、オープンソースの LLM のみを使用して AlpacaEval 2.0 において 65.1% のスコアを達成し、GPT-4o の 57.5% を大幅に上回ったことが挙げられます。また、MT-Bench や FLASK などの他のベンチマークでも GPT-4o を超える性能を示しています。

この研究の重要な発見は、LLM における "collaborativeness" (協調性) という性質です。これは、LLM が他のモデルの出力を参照することで、たとえその参照出力が自身より質が低い場合でも、より良い応答を生成できる傾向を指します。この知見に基づき、MoAは複数の LLM を段階的に協調させることで、全体としての応答品質を向上させることに成功しています。

---

## 2 Mixture-of-Agents (MoA)

### 2.1 LLM の協調性

LLM には「協調性」という重要な特性があることが発見されました。これは、他のモデルの出力を参照することで、自身の応答の質を向上できる能力を指します。興味深いことに、参照する出力の質が自身より低い場合でも、この効果が確認されています。

この協調の仕組みにおいて、LLM は以下の 2 つの役割を担います。

**1. Proposer (提案者)**
    - 他のモデルが参照できる有用な応答を生成
    - 単独での評価は高くなくても、多様な視点を提供することで最終的な応答の質向上に貢献

**2. Aggregator (統合者)**  
    - 複数の応答を統合し、高品質な応答を生成
    - 他の応答の質が必ずしも高くなくても、それらの情報を活用し、全体として質の高い応答を出力

もう一つ、補助的な役割ですが以下の採点者 LLM も提案されています。

**3. Rater (採点者)**  
   - 各エージェント（Proposer や Aggregator）の応答を評価し、統合に向けた指標を提供
   - 具体的には、各応答の重要度や正確性を数値化し、それに基づいて Aggregator の統合の際の重み付けを調整
   
### 2.2 MoA の数式表現

MoA の各層 $i$ の出力 $y_i$ は以下のように定式化されます。

$$
y_i = \bigoplus_{j=1}^n [A_{i,j}(x_i)] + x_1, \quad x_{i+1} = y_i
$$

ここで、
- $A_{i,j}$ は層 $i$ の $j$ 番目のエージェント
- $\bigoplus$ は Aggregate-and-Synthesize プロンプトによる統合
- $x_1$ は元のプロンプト
- $x_{i+1}$ は次の層への入力

### Aggregate-and-Synthesize プロンプト

このプロンプトは、各層のエージェントの出力を統合するために使用されます。具体的な指示内容は以下の通りです。

1. **応答の評価と統合**  
   - 複数のオープンソースモデルの応答を提示し、それらを批判的に評価
   - 応答のバイアスや誤りの可能性を認識

2. **出力の要件**  
   - 単なる応答の複製ではなく、洗練された正確な包括的応答を生成
   - 高い精度と信頼性を維持

3. **プロンプトの構造例**
   ```
   入力:
   元のプロンプト: [元の質問や指示]
   1. [モデル A_{i,1} の応答]
   2. [モデル A_{i,2} の応答]
   ...
   n. [モデル A_{i,n} の応答]
   ```

### 2.3 MoA の構造

Mixture-of-Agents (MoA) は大規模言語モデル (LLM) を複数のレイヤーで組み合わせ、各レイヤーに複数のエージェントを配置する手法です。以下にその構造と特徴を詳述します。

#### 基本構造

MoA は $l$ 個のレイヤーで構成され、各レイヤー $i$ には $n$ 個のエージェント $A_{i,j}$ ($j = 1, 2, \ldots, n$) が配置されます。ここで、各エージェント $A_{i,j}$ は LLM であり、同一の LLM をレイヤー内およびレイヤー間で再利用することが可能です。

> 🐣 ただし、各 LLM は独立したインスタンスとして動作します。

#### 処理フロー

入力プロンプト $x_1$ に対する処理は以下のように進行します。

1. 第 1 レイヤーの各エージェントが独立に応答を生成
2. 第 2 レイヤー以降の各エージェントは、直前のレイヤーの全エージェントの出力を補助情報として参照
3. 最終レイヤーでは 1 つのエージェント $A_{l,1}$ のみが最終出力を生成

形式的には、第 $i$ レイヤーの出力 $y_i$ は以下の式で表現されます。

$$
y_i = \bigoplus_{j=1}^n [A_{i,j}(x_i)] + x_1, \quad x_{i+1} = y_i
$$

ここで、$+$ はテキストの連結を、$\bigoplus$ は表 1 に示される Aggregate-and-Synthesize プロンプトの適用を表します。

**表 1:** 他のモデルからの応答を統合するための集約・統合 (Aggregate-and-Synthesize) プロンプト（出典：参考文献 Table 1）

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3935950/8f628af2-69c7-0a00-17bc-9bb71a7c1f31.png" width=90%>

### 補足: Mixture-of-Agents と Mixture-of-Experts の関連性

MoA は、従来の Mixture-of-Experts (MoE) の概念をモデル全体のレベルに拡張したものと論文で説明されています。

#### Mixture-of-Experts の構造

MoE は、ゲーティングネットワークを活用して異なる専門家ネットワーク (experts) を選択し、入力データに基づいて専門家ネットワークを動的に組み合わせる手法です。数式で表すと、以下のように記述されます。

$$
y_i = \sum_{j=1}^n G_{i,j}(x_i) E_{i,j}(x_i) + x_i
$$

ここで、各記号の意味は以下の通りです。
- $i$ はネットワークの層 (layer) を示します
- $j$ は層 $i$ に存在する $n$ 個の専門家ネットワーク (experts) を示します
- $G_{i,j}(x_i)$ は、ゲーティングネットワークによって計算された専門家 $j$ が選択される確率を示します
- $E_{i,j}(x_i)$ は、専門家 $j$ による入力 $x_i$ の処理結果です

experts が同じ構造であれば $E_{i,j}$ は同一の層にあることを意味します。ゲーティングネットワークは end-to-end の学習によって最適化されます。この構造において、ゲーティングネットワーク $G_{i,j}$ は入力 $x_i$ を受け取り、どの専門家ネットワークをどの程度活性化するかを動的に決定します。

> 🐣 要するに、複数のモデル層の出力の重み付き平均を求め、そこに Skip Connection として $x_i$ を加えています

#### ゲーティングネットワークと専門家ネットワークの構造

MoE のゲーティングネットワークの役割は、入力に基づいて適切な専門家ネットワークを選択することです。この際、専門家ネットワークは同じ構造である必要があるのかという疑問が生じます。論文「Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer」（Shazeer et al., 2017）によると、専門家ネットワークは異なる構造を持つことが可能です。ただし、次の点に留意する必要があります。

- ゲーティングネットワークが異なる構造を正確に評価できる設計であること
- モデル全体の訓練が一貫性を保つこと

一方、MoA ではゲーティングネットワークを持たないため、専門家ネットワーク間の統一性は直接的な制約ではありません。むしろ、エージェント（専門家ネットワーク）の多様性が重要であると指摘されています。実験結果（Table 3）では、エージェントの数や多様性がパフォーマンス向上に寄与することが示されています。

### 補足: Skip Connection の扱い

MoE と MoA の両者において Skip Connection 的な操作が用いられていますが、その設計意図や使用される入力が異なるのは非常に興味深い点です。以下に詳述します。

#### **MoE の場合**
- **直前の $x_i$ を使用する理由**  
  MoE では、ネットワークの各層で専門家ネットワークが入力データを変換し、それを次の層に渡します。各層を通過するごとに、入力データはモデルの内部的な意味空間へと変換されていくため、深い層になるにつれ抽象化が進み、元のデータとの意味的な乖離が生じます。 この乖離を緩和し、データの変換が不適切にならないよう、直前の層の出力 $x_i$ を Skip Connection として加えることで情報の一貫性を保っています。
#### **MoA の場合**
- **最初の $x_1$ を使用する理由**  
  MoA では、すべてのエージェント (LLM) が同じ言語表現空間を扱うという性質があります。このため、エージェント間の変換を通じて元の入力情報が薄れるリスクがあります。特に最初の入力 $x_1$ は最も重要な情報であるため、これを各レイヤーに持ち越すことで、生成物がプロンプトの意図と乖離しないようにしています。

#### **両者の違いを比較**

| **要素**           | **MoE**                           | **MoA**                           |
|--------------------|----------------------------------|----------------------------------|
| **Skip Connection** | 直前の層 $x_i$                   | 最初の入力 $x_1$                 |
| **使用理由**       | 内部表現の抽象化による乖離を緩和 | 言語表現空間で重要情報を保持     |
| **情報の乖離**     | 各層で内部表現が変化             | 言語表現空間内で薄れる可能性を補完 |

---
## 3 評価実験

### 3.1 実験設定

評価には主に 3 つのベンチマークを使用しました。

**1. AlpacaEval 2.0**
- 805 の実用的な指示を含むベンチマーク
- GPT-4 の応答と比較して評価
- 公平性のため length-controlled (LC) win rate を使用
- 人間の評価と 0.98 のスピアマン相関を示す信頼性の高い指標

**2. MT-Bench**
- GPT-4 が採点者として回答の質を評価
- ターンベースのスコアを測定

**3. FLASK**
- 12 の個別スキルに基づく詳細な評価を提供

### 3.2 実験結果

主な結果は以下の通りです。

**1. AlpacaEval 2.0 での成果**
- MoA: 65.1% の LC win rate を達成（従来最高の GPT-4o の 57.5% を大きく上回る）
- MoA-Lite: より軽量な構成でも 59.3% を達成
- オープンソースモデルのみを使用しても GPT-4o を上回る性能を実現

**2. MT-Bench での結果**
- 既存モデルが既に高いスコア（10 点満点中 9 点以上）を達成
- それでも MoA は最高スコアを記録

**3. FLASK での結果**
特に以下の領域で顕著な改善を示しました。

- **頑健性**: 予期しない入力やエッジケースでも安定した応答を維持
- **正確性**: 提供された情報の誤りが少なく、より信頼性の高い応答を生成
- **効率性**: タスク達成に必要な情報を簡潔かつ的確に提供
- **事実性**: 事実に基づく情報をより正確に提供し、GPT-4o を上回る性能
- **常識的推論**: 一般的な知識や論理的な推論をより効果的に活用
- **洞察力**: 複雑な状況での深い理解と分析を示す応答を生成
- **完全性**: 質問や指示に対して包括的で漏れのない応答を提供

ただし、これらの改善の一方で、「簡潔性」においてはやや冗長な出力となる傾向が観察されました。これは複数のモデルの出力を統合する過程で、より詳細な情報が含まれやすくなるためと考えられます。

### 3.3 内部メカニズムの分析

実験を通じて以下の知見が得られました。

1. **LLM ランカーとの比較**
- MoA は単純なランキング手法を大きく上回る性能を示す
- これは単なる選択ではなく、より洗練された統合を行っていることを示唆

2. **モデルの多様性と数の影響**
- 提案者の数を増やすと性能が単調に向上
- 同一モデルよりも異なるモデルを使用した方が良い結果を得られる

3. **モデルの役割の専門性**
- GPT-4o、Qwen、LLaMA-3 は提案者・統合者両方で高い性能
- WizardLM は提案者として優れるが、統合者としては課題あり

---

## おわりに
この論文が示すように、LLM の協調能力を引き出すことで、単一モデルの限界を超えた性能向上が可能になります。MoA のアイデアは、学術的な意義だけでなく、実世界の問題解決においても応用可能性が高いと感じました。

私自身、LLM が互いに協力して成果を生むというコンセプトに非常に感銘を受けました。これからの LLM は個体群ベースの探索に移行していくのかもしれませんね。

> 🐣 CPU の発展がシングルコアからマルチコアに移行していったのとちょっと似ているかも！？