MoA
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
Mocne strony i ograniczenia
Komponenty
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.
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.
Sekwencja L warstw, gdzie wyjścia warstwy l są konkatenowane i podawane jako kontekst warstwie l+1. Typowo L=4 w referencyjnej konfiguracji Together.
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
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.
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.
Jeśli proposerzy są zbyt podobni (te same rodziny modeli, podobne training data), mogą wzajemnie utwierdzać błędy. Diversity w doborze modeli jest kluczowe.
Słaby model jako agregator nie wykorzysta dobrze różnorodnych propozycji — agregator musi mieć wyższą zdolność rozumowania niż większość proposerów.
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
Szczegóły techniczne
Hiperparametry (konfigurowalne osie)
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.
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).
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.
Wariant promptu używanego przez agentów do interpretacji propozycji poprzedniej warstwy — wpływa znacząco na jakość finalnej odpowiedzi.
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
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
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.
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ść
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}.