Mixture-of-Agents (MOA) ialah teknik inference di mana beberapa LLM (“reference models”) menjana jawapan bagi turn yang sama secara selari. Kemudian satu model aggregator membaca semua jawapan itu dan menggabungkan serta memperhalusinya menjadi satu jawapan akhir.

Idea ini datang daripada kertas penyelidikan “Mixture-of-Agents Enhances Large Language Model Capabilities” (arXiv:2406.04692, Jun 2024). Dapatan utamanya, mengikut nota saya, ialah jawapan gabungan daripada pelbagai model secara konsisten mengatasi mana-mana model tunggal, termasuk aggregator itu sendiri. Baca kertas asal untuk butiran dan angka sebenar; saya hanya merumuskan ideanya di sini.

Cara ia berfungsi

Pengguna: "Kenapa VM ini slow?"

  Reference model A  ──┐
  Reference model B  ──┼──►  AGGREGATOR  ──►  Jawapan akhir
  Reference model C  ──┘     (baca semua, pilih
                              dan perhalusi)

Dalam kertas asal, lapisan ini boleh berulang: output agregat satu lapisan menjadi input reference model pada lapisan seterusnya. Kualiti meningkat lagi, tetapi kos juga.

Kenapa ia berkesan:

  • Model berbeza mempunyai kekuatan yang saling melengkapi (logik, ringkasan, coding, bahasa).
  • Aggregator boleh memilih dan menggabungkan idea terbaik, bukan sekadar mengambil purata.
  • Kesannya seperti panel pakar: banyak perspektif mengatasi satu perspektif.

Kos dan pertukaran

PerkaraKesan
KosSetiap turn = N + 1 panggilan API (N reference model dan 1 aggregator)
LatensiLebih perlahan, kerana semua reference model perlu siap dahulu
SyaratPerlukan API key daripada beberapa provider
KualitiLebih tinggi, sesuai untuk soalan kompleks dan keputusan kritikal

Bila guna, bila tidak

SituasiMOA?
Soalan kompleks, kualiti kritikalYa
Analisis dan keputusan pentingYa
Sembang harian, tugas ringkasTidak, membazir kos
Tugas deterministik yang banyak guna toolTidak, model biasa sudah cukup
Setup satu provider sahajaTidak boleh berjalan

Perbandingan ini selari dengan pelajaran saya tentang skrip untuk eksekusi, LLM untuk penaakulan: bayar kos tambahan hanya bila masalahnya benar-benar memerlukan penaakulan.

MOA dalam agent saya (Hermes)

Agent saya, Hermes, menyokong MOA melalui seksyen moa dalam config.yaml. Konfigurasi saya masih tersimpan, tetapi dimatikan:

moa:
  enabled: false
  reference_models:
    - provider: <provider-a>
      model: <fast-model>
    - provider: <provider-b>
      model: <strong-model>
    - provider: <provider-c>
      model: <free-open-model>
  aggregator:
    provider: <provider-a>
    model: <fast-model>
  fanout: user_turn              # setiap turn pengguna diagihkan kepada semua reference
  degraded_reference_policy: loud
  max_tokens: 4096

(Nama model sengaja digantikan dengan pemegang tempat kerana ia berubah dengan cepat.)

Sebab ia dimatikan: saya membersihkan API key dan hanya menyimpan satu provider. Tanpa kunci untuk provider lain, MOA tidak boleh berjalan.

Cara hidupkan semula

# 1. Tambah kunci provider lain dalam ~/.hermes/.env
# 2. Aktifkan
hermes config set moa.enabled true
# 3. Restart gateway dari shell yang berasingan
hermes gateway restart

Rujukan