Reflexion: Jazykoví agenti, ktorí sa učia z chýb bez opätovného trénovania
Premýšľal som o tom, čo by bolo potrebné na vybudovanie agenta pre účtovnú knihu Beancount, ktorý sa časom zlepšuje bez toho, aby musel byť znova trénovaný pri každej chybe. Práca Shinna a kol. „Reflexion: Language Agents with Verbal Reinforcement Learning“ (NeurIPS 2023) priamo odpovedá na túto otázku a odpoveď je sľubná, no zároveň obmedzenejšia, než naznačujú hlavné titulky.
Odborný článok
Reflexion (Shinn, Cassano, Berman, Gopinath, Narasimhan, Yao; NeurIPS 2023) navrhuje, že namiesto upravovania váh modelu prostredníctvom nákladného posilňovaného učenia môžete agenta vylepšiť tým, že ho necháte napísať vlastnú analýzu zlyhania v prirodzenom jazyku. Po každom pokuse model Self-Reflection prečíta trajektóriu a signál odmeny, vytvorí verbálnu analýzu (post-mortem) a pridá ju do epizodickej pamäte. Pri ďalšom pokuse si Actor prečíta nahromadené reflexie predtým, než začne konať. Nepočíta sa žiadny gradient. Žiadny model sa neladí (fine-tuning). „Učenie“ prebieha výhradne v kontextovom okne.
Architektúra s tromi komponentmi – Actor (Aktér), Evaluator (Evaluátor) a Self-Reflection (Sebareflexia) – je dostatočne modulárna na to, aby zvládla rôzne typy úloh. Evaluátorom môže byť binárny výsledok unit testu, LLM sudca alebo heuristika špecifická pre danú úlohu. Práve táto flexibilita robí tento článok zaujímavým aj mimo kódovacích benchmarkov.
Kľúčové myšlienky
- V pass@1 HumanEval Python dosahuje Reflexion + GPT-4 91 %, čo je nárast oproti 80 % základu GPT-4 – ide o skutočný a veľký rozdiel. V Leetcode Hard je skok 7,5 % → 15 %, čo je pokrok, ale aj pripomienka toho, aké ťažké tieto problémy zostávajú.
- V AlfWorld (textové plánovanie domácnosti) rieši Reflexion 130/134 úloh po 12 pokusoch v porovnaní so 108/134 pri modeli ReAct – čo je najpresvedčivejší výsledok rozhodovania v článku.
- V HotpotQA (multi-hop QA) stúpa CoT + Reflexion zo 61 % na 75 % presnej zhody na 100 vybraných otázkach.
- V MBPP (druhý Python benchmark) Reflexion mierne škodí výkonu: 80,1 % → 77,1 %. Článok tento fakt uvádza len okrajovo.
- Vo WebShop-e Reflexion nepomáha. Autori to pripisujú tomu, že úloha vyžaduje „významnú diverzitu a prieskum“ – agent píše neužitočné reflexie, ktoré sa nedajú zovšeobecniť na iné vyhľadávania produktov.
- Pamäť je obmedzená na 1–3 uložené skúsenosti. Je to pragmatické vzhľadom na dĺžku kontextu, ale znamená to, že agent nemôže hromadiť poznatky počas dlhodobého nasadenia.
Čo funguje a čo nie
Hlavné tvrdenie je rozumné: verbálna reflexia zlepšuje výkon v úlohách s jasnou, overiteľnou spätnou väzbou. Ak viete, či kód prešiel unit testmi, reflexný modul má o čom konkrétne uvažovať. Výsledky AlfWorld a HumanEval sú skutočné a významné.
Zlyhanie vo WebShop-e je však poučné a článok ho trochu podceňuje. Reflexia funguje vtedy, keď evaluátor dokáže vyprodukovať jasný, akcieschopný signál. Keď je režimom zlyhania to, že „agent preskúmal nesprávnu časť veľkého vyhľadávacieho priestoru“, pokyn „nabudúce skús iné hľadané výrazy“ nevedie ku konvergencii. Ide o štrukturálne obmedzenie: verbálne posilňovanie nie je náhradou za stratégie prieskumu.
Experimenty s kódovaním majú tiež istú cyklickosť, ktorú autori priznávajú vo svojom blogovom príspevku: agent generuje vlastné unit testy na vyhodnotenie vlastného kódu. Chybná sada testov produkuje falošne pozitívne výsledky. Číslo 91 % v HumanEval platí, pretože HumanEval poskytuje referenčné testy (ground-truth), ale slučka sebahodnotenia agenta je menej spoľahlivá pri nových problémoch, kde neexistuje žiadne externé orákulum.
Reprodukovateľnosť je reálnym problémom. Všetky hlavné výsledky využívajú GPT-4 a experimenty so starchat-beta neukazujú žiadne zlepšenie oproti základu, čo znamená, že technika je podmienená schopnosťami modelu. Tímy používajúce menšie modely alebo modely s otvorenými váhami by nemali očakávať rovnaké zisky.
Prečo je to dôležité pre finančnú AI
Prípad použitia s Beancount má presne tú vlastnosť, vďaka ktorej Reflexion funguje dobre: jasný evaluátor. Ak agent nesprávne kategorizuje transakciu, kontrola zostatku v účtovnej knihe alebo krok odsúhlasenia (reconciliation) môže vyprodukovať binárny signál – účty sedia alebo nesedia. To je oveľa lepšia plocha pre spätnú väzbu než nejednoznačná odmena za vyhľadávanie produktov vo WebShop-e.
Konkrétne si viem predstaviť agenta na zápis do Beancount, ktorý po neúspešnom pokuse o zaúčtovanie (neplatný účet, nesprávna mena, zlyhanie asercie) vygeneruje verbálnu reflexiu: „Použil som Expenses:Meals, ale tento účet vyžaduje podkategóriu. Nabudúce pred zaúčtovaním skontrolujem hierarchiu účtov.“ Táto reflexia sa uloží a vyvolá pri ďalšej podobnej transakcii. Agent si tak efektívne vytvára pravidlá špecifické pre danú reláciu zo svojich vlastných chýb.
Hlavnou architektonickou výzvou je obmedzenie pamäte. Vyrovnávacia pamäť na 1–3 skúsenosti je v poriadku pre jednu reláciu, ale nasadený účtovný agent sa potrebuje učiť z tisícok transakcií a týždňov prevádzky. Rozšírenie Reflexion na dlhodobú pamäť – možno sumarizáciou alebo indexovaním reflexií – je otvorený problém. Tento článok ho nerieši.
Čo si prečítať ďalej
- Language Agent Tree Search (LATS) (Zhou et al., arXiv:2310.04406; ICML 2024) – rozširuje Reflexion obalením Monte Carlo Tree Search okolo slučky reflexia-opakovaný pokus, čo agentom umožňuje skúmať viaceré vetvy uvažovania namiesto toho, aby sa držali jednej trajektórie. S GPT-4 dosahuje 92,7 % v HumanEval.
- Retroformer (Yao et al., arXiv:2308.02151; ICLR 2024) – namiesto spoliehania sa na ten istý LLM pri sebareflexii, Retroformer trénuje samostatný ľahký retrospektívny model pomocou policy gradient, vďaka čomu je proces reflexie naučiteľný naprieč úlohami. Je to principiálnejšie, ale vyžaduje si to jemné doladenie (fine-tuning).
- Self-Reflection in LLM Agents: Effects on Problem-Solving Performance (arXiv:2405.06682, 2024) – empirická štúdia, ktorá skúma kedy a prečo reflexia pomáha, s analýzou rôznych typov úloh. Užitočné na kalibráciu toho, kedy použiť Reflexion a kedy iné stratégie korekcie.
