Robocikowo>ROBOCIKOWO
Architektura

MoA

2024productionpreprint
Wielowarstwowa architektura wieloagentowa łącząca równoległe propozycje wielu LLM przez agregator w każdej warstwie.
Kluczowa innowacja
Wielowarstwowa architektura wieloagentowa, w której każda warstwa zawiera N agentów-LLM generujących odpowiedzi równolegle dla tego samego zapytania, a następnie wszystkie odpowiedzi są agregowane i podawane jako kontekst agentom kolejnej warstwy. Eksperymenty Wanga i in. wykazały „collaborativeness of LLMs” — efekt, w którym otwartoźródłowe modele LLM generują wyższej jakości odpowiedzi, gdy mają dostęp do propozycji innych modeli, nawet jeśli te propozycje są same w sobie słabsze.
Kategoria
Architektura
Poziom abstrakcji
Pattern
Poziom operacji
SystemInferencjaOrkiestracjaŚrodowisko agentowe
Zastosowania
Otwartoźródłowe systemy konwersacyjne na poziomie GPT-4 — kompozycja wielu OSS LLM przez MoA daje jakość przewyższającą zamknięte modele frontier (Together MoA na AlpacaEval 2.0)Generowanie odpowiedzi długoformatowych z wysoką jakością — esej, raport, analiza techniczna — gdzie różne modele wnoszą różne perspektywyWnioskowanie matematyczne i logiczne — agenci o różnych specjalizacjach (kod, formalna logika, language reasoning) krytykują się wzajemnieTłumaczenia i adaptacje stylu — proposerzy z różnych modeli generują warianty, agregator wybiera najlepsze elementyCode review i refactoring — kilku LLM proponuje poprawki, agregator syntezuje konsensusHybrydowe stacki OSS + commercial — taniej osiągnąć GPT-4-class quality używając MoA z OSS modelami zamiast pojedynczego frontier API callRAG enhancement — wielu agentów-proposerów interpretuje retrieved context z różnych perspektyw, agregator syntetyzuje odpowiedź końcową

Jak działa

Architektura MoA składa się z L warstw. Każda warstwa l (dla l < L) zawiera n agentów-proposerów A_{l,1}, ..., A_{l,n}, gdzie każdy agent to wywołanie konkretnego LLM z dedykowanym promptem. Wejście do warstwy l to: (1) oryginalne zapytanie użytkownika x, (2) konkatenacja wszystkich odpowiedzi z warstwy l-1: y_{l-1} = [y_{l-1,1}, ..., y_{l-1,n}]. Każdy agent A_{l,i} otrzymuje prompt typu „Oto zapytanie x i propozycje z poprzedniej warstwy y_{l-1}. Wygeneruj ulepszoną odpowiedź” i produkuje y_{l,i}. Wszystkie propozycje y_{l,1}, ..., y_{l,n} są niezależne (równoległe wywołania). Warstwa końcowa L zawiera pojedynczego agregatora, który otrzymuje propozycje z warstwy L-1 i generuje finalną odpowiedź. Wybór modeli kieruje się dwoma kryteriami: (a) performance — silniejsze modele na danym typie zadania jako agregatory, (b) diversity — proposerzy z różnych rodzin modeli (heterogeniczność profili błędów). Together MoA referencyjnie używa 4 warstw z 6 agentami w każdej.

Rozwiązany problem

Pojedynczy model LLM, nawet najsilniejszy, jest ograniczony swoim treningiem, biasami i lukami w wiedzy. Klasyczne ensembling LLM (np. self-consistency, majority voting) skaluje się słabo, bo wszystkie głosy pochodzą z tego samego modelu lub modeli o podobnym profilu błędów. Z drugiej strony, samodzielne wywołania różnych modeli LLM (zero-shot multi-model voting) nie wykorzystują potencjału ich wzajemnej komplementarności. MoA rozwiązuje to przez strukturalną kompozycję: agenci z różnych modeli widzą wzajemnie swoje propozycje i mogą je krytykować, ulepszać i syntezować. Pozwala to wykorzystać efekt komplementarności mocnych stron różnych modeli (np. matematyka, kodowanie, język) bez treningu, fine-tuningu ani zewnętrznej infrastruktury.

Kluczowe mechanizmy

Warstwowa struktura L warstw, gdzie każda warstwa zawiera n agentów-LLM
Równoległe generowanie propozycji w obrębie jednej warstwy (parallel fan-out)
Konkatenacja propozycji z warstwy l jako kontekst wejściowy warstwy l+1
Aggregate-and-Synthesize prompt instruujący agentów, jak krytycznie ocenić i ulepszyć propozycje poprzedniej warstwy
Pojedynczy agregator w warstwie końcowej syntetyzuje finalną odpowiedź
Heterogeniczność modeli — proposerzy z różnych rodzin (Qwen, Llama, Mixtral, DBRX) zapewniają komplementarne profile błędów
Brak fine-tuningu — cała architektura zdefiniowana przez prompty i statyczną topologię
Collaborativeness effect — nawet słabsze modele jako proposerzy poprawiają jakość silniejszego agregatora
Static configuration — wybór modeli i topologia są ustalone z góry, bez runtime routing

Mocne strony i ograniczenia

Mocne strony
Osiąga jakość GPT-4-class używając wyłącznie modeli OSS — Together MoA 65,1% AlpacaEval 2.0 vs GPT-4 Omni 57,5%
Nie wymaga fine-tuningu ani treningu — czysty prompt engineering + orkiestracja
Wykorzystuje komplementarność modeli — diverse proposerzy łapią różne typy błędów
Łatwa implementacja — pojedyncza pętla po warstwach z parallel calls, ~100 LoC w referencyjnej implementacji
Skalowalność jakości — więcej warstw lub proposerów = wyższa jakość (z malejącymi zwrotami)
Kompozycyjność z innymi technikami — MoA + CoT, MoA + RAG, MoA + ReAct dają dodatkowe usprawnienia
Wykrywanie błędów przez peer-review — proposerzy oceniają wzajemnie swoje propozycje
Otwarty stack — kod referencyjny dostępny, modele OSS, brak vendor lock-in
Ograniczenia
Wysoki koszt tokenów — pełny MoA zużywa 20–100× tokenów pojedynczego zapytania
Wysoka latencja — sekwencyjne warstwy dają 30–120s na zapytanie (vs 5–15s single LLM)
Context bloat — konkatenacja n propozycji rośnie liniowo z liczbą proposerów
Wrażliwość na agregatora — słaby model finalny niweluje zysk z różnorodności proposerów
Echo chamber — proposerzy z podobnych rodzin modeli mogą wzajemnie utwierdzać błędy
Brak dynamicznego routingu — wszyscy proposerzy wywoływani dla każdego zapytania, nawet trywialnego
Trudność debugowania — błąd w finalnej odpowiedzi może pochodzić z dowolnej warstwy i dowolnego agenta
Wrażliwość na prompt — różne wersje Aggregate-and-Synthesize prompt dają 5–10 p.p. różnicy na benchmarkach
Brak gradient propagation — MoA jest zdefiniowane na poziomie inferencji, nie można go end-to-end trenować

Komponenty

Proposer Agent

Agent-LLM w warstwie l < L, który niezależnie generuje propozycję odpowiedzi na podstawie zapytania i propozycji z poprzedniej warstwy. Typowo n=6 proposerów na warstwę w referencyjnym Together MoA.

Aggregator Agent

Agent-LLM w warstwie końcowej L, który syntezuje propozycje z warstwy L-1 w jedną spójną odpowiedź. Wybierany jako najsilniejszy model dla danego zadania.

Layered Structure

Sekwencja L warstw, gdzie wyjścia warstwy l są konkatenowane i podawane jako kontekst warstwie l+1. Typowo L=4 w referencyjnej konfiguracji Together.

Aggregate-and-Synthesize Prompt

Specjalny prompt instruujący agenta, jak interpretować propozycje z poprzedniej warstwy: krytyczna ocena, identyfikacja błędów, synteza najlepszych elementów. Cała architektura jest zdefiniowana przez ten prompt + statyczną topologię.

Implementacja

Implementacje referencyjne
Pułapki implementacyjne
Wysoka

Każdy proposer w warstwie l otrzymuje konkatenację n propozycji z warstwy l-1. Dla L=4, n=6 i odpowiedzi po 500 tokenów: warstwa 4 dostaje ~3000 tokenów kontekstu pośredniego × 6 wywołań = ogromny narzut. Należy ustawić twarde limity max_tokens dla proposerów.

Średnia

Mimo równoległości wewnątrz warstwy, L warstw musi być wykonane sekwencyjnie. Pełny MoA może mieć latencję 30–120s vs 5–15s pojedynczego zapytania.

Średnia

Jeśli proposerzy są zbyt podobni (te same rodziny modeli, podobne training data), mogą wzajemnie utwierdzać błędy. Diversity w doborze modeli jest kluczowe.

Średnia

Słaby model jako agregator nie wykorzysta dobrze różnorodnych propozycji — agregator musi mieć wyższą zdolność rozumowania niż większość proposerów.

Niska

Aggregate-and-Synthesize prompt znacząco wpływa na wynik — wariacje sformułowania potrafią dawać różnice rzędu 5–10 p.p. na benchmarkach.

Ewolucja

Oryginalny paper · 2024 · arXiv:2406.04692
Mixture-of-Agents Enhances Large Language Model Capabilities
, , , ,
Wang i in. publikują „Mixture-of-Agents Enhances Large Language Model Capabilities” na arXiv (2406.04692). Razem z paperem Together AI udostępnia kod implementacji.
Together MoA osiąga 65,1% na AlpacaEval 2.0, wyprzedzając GPT-4 Omni (57,5%) — pierwszy raz konfiguracja OSS bije zamknięty frontier model na tym benchmarku.
Implementacje MoA pojawiają się w LangChain, LlamaIndex, CrewAI i innych frameworkach orkiestracji agentów.
Szczegóły techniczne

Hiperparametry (konfigurowalne osie)

Liczba warstw L

Typowe wartości: 2–6. Together MoA używa L=4. Większa głębokość = wyższa jakość, ale liniowo rosnący koszt i latencja.

Liczba proposerów n na warstwę

Typowe wartości: 3–6. Większe n = wyższa różnorodność, ale wykładniczo rosnący koszt tokenów (każdy proposer widzi konkatenację n propozycji).

Dobór modeli (performance vs diversity)

Trade-off między doborem najsilniejszych modeli (wszystkie GPT-4-class) a różnorodnością (heterogeniczność rodzin: Qwen + Llama + Mixtral + DBRX). Wang i in. zalecają diversity dla proposerów, performance dla agregatora.

Aggregate-and-Synthesize prompt

Wariant promptu używanego przez agentów do interpretacji propozycji poprzedniej warstwy — wpływa znacząco na jakość finalnej odpowiedzi.

Budżet tokenów / koszt

Pełny MoA (4 warstwy × 6 proposerów) vs MoA-Lite (3 warstwy z mniejszą liczbą proposerów). Lite osiąga 59,3% AlpacaEval przy znacznie niższym koszcie.

Złożoność obliczeniowa

Charakterystyki obliczeniowe
Liczba wywołań LLM: L × n + 1 (referencyjnie 4 × 6 + 1 = 25 wywołań na zapytanie)
Koszt tokenów: 20–100× kosztu pojedynczego wywołania, w zależności od L, n i długości propozycji
Latencja: sekwencyjność warstw = L × max(per-proposer latency), typowo 30–120s
Skalowanie pamięci: liniowe z n proposerów na warstwę (kontekst rośnie z n)
Hardware: agnostyczne — MoA to orkiestracja API calls, działa z dowolnym dostawcą LLM
Together MoA cost: ~$0.50–$2.00 za zapytanie (6 OSS modeli, 4 warstwy) vs ~$0.10–$0.50 GPT-4 single call
AlpacaEval 2.0: Together MoA 65,1%, GPT-4 Omni 57,5%, MoA-Lite 59,3% — MoA bije zamknięte modele frontier przy wyższym koszcie
Uwagi do benchmarku

MoA jest ewaluowane głównie na 3 benchmarkach. (1) AlpacaEval 2.0 (LC win rate): Together MoA 65,1%, MoA-Lite 59,3%, GPT-4 Omni 57,5%, GPT-4 Turbo 55,0%. Pierwszy przypadek, gdzie konfiguracja OSS bije frontier closed model na AlpacaEval. (2) MT-Bench: Together MoA 9,25, GPT-4 Turbo 9,32, GPT-4 Omni 9,19 — MoA porównywalne lub minimalnie poniżej zamkniętych modeli. (3) FLASK (fine-grained skill assessment): Together MoA przewyższa GPT-4 Omni w 10 z 12 wymiarów oceny, włącznie z robustness, correctness i efficiency. Caveats: koszt MoA jest 5–10× wyższy niż pojedynczy GPT-4o call; dla aplikacji wrażliwych na latencję (chat real-time) MoA może być nieakceptowalnie wolne (30–120s vs 5–15s). Benchmark Wang i in. nie obejmuje matematyki ani kodowania na poziomie HumanEval/MATH — domeny te wymagają oddzielnej walidacji.

Paradygmat wykonania

Tryb główny
always_on

Wszyscy agenci w warstwie są aktywowani dla każdego zapytania (parallel fan-out), ale wybór proposerów i agregatora jest input-independent — definiowany statycznie w konfiguracji architektury.

Wzorzec aktywacji
input_dependent
Mechanizm routingu

MoA nie używa dynamicznego routingu — każde zapytanie przechodzi przez wszystkich proposerów w każdej warstwie. Heterogeniczność wynika ze statycznego doboru różnych modeli, nie z runtime routing.

Równoległość

Poziom równoległości
highly_parallel

Wewnątrz pojedynczej warstwy MoA jest w pełni równoległy — n proposerów wywoływanych jednocześnie. Między warstwami: sekwencyjność wymuszona zależnością y_l → y_{l+1}.

Zakres
inferenceacross_devices
Ograniczenia
!Wszyscy proposerzy w warstwie l muszą zakończyć generowanie przed startem warstwy l+1 — bariera synchronizacji wprowadza latencję równą max(czas proposerów).
!Równoległe wywołania wielu LLM z różnych dostawców mogą napotykać throttling — wymagane jest staranne zarządzanie quotami.
!Konkatenacja propozycji z poprzedniej warstwy zwiększa kontekst kolejnej warstwy — przy n proposerów i długich odpowiedziach kontekst rośnie liniowo z n.