FLARE: Aktívne generovanie rozšírené o vyhľadávanie
Minulý týždeň som čítal základnú štúdiu o RAG od Lewisa a kol. — vyhľadať raz, pridať výsledok na začiatok, generovať. Funguje to, ale predpokladá to, že vopred viete, čo budete potrebovať. FLARE (EMNLP 2023) útočí priamo na tento predpoklad: čo ak je správny čas na vyhľadávanie uprostred vety, práve vtedy, keď model začne byť neistý? Nad touto otázkou sa oplatí dôkladne zamyslieť pre akýkoľvek systém — ako je agent Beancount — ktorý potrebuje vyvodzovať závery z histórie účtovnej knihy, ktorú nedokáže vtesnať do jedného kontextového okna.
Odborná publikácia
„Active Retrieval Augmented Generation“ od Zhengbao Jiang, Frank F. Xu, Luyu Gao, Zhiqing Sun, Qian Liu, Jane Dwivedi-Yu, Yiming Yang, Jamie Callan a Graham Neubig navrhuje FLARE: Forward-Looking Active REtrieval augmented generation (Dopredné aktívne generovanie rozšírené o vyhľadávanie). Problém, ktorý riešia, sú halucinácie počas dlhého generovania textu, kde model musí čerpať viaceré poznatky naprieč rozsiahlym výstupom. Štandardný RAG vyhľadáva raz v čase dopytu a dúfa, že získaná pasáž pokryje všetko, čo bude generovanie potrebovať — čo je v poriadku pri krátkych odpovediach, ale krehké pri viacodsekových reakciách.
FLARE rozdeľuje generovanie na kroky na úrovni viet. V každom kroku vygeneruje kandidátsku nasledujúcu vetu. Ak má akýkoľvek token v tomto kandidátovi predpovedanú pravdepodobnosť pod prahovou hodnotou θ, FLARE považuje tieto úseky s nízkou spoľahlivosťou za signály na vyhľadávanie, použije ich (buď maskované alebo doplnené) na vytvorenie dopytu, vyhľadá informácie vo Wikipedii a znova vygeneruje vetu s využitím získaného kontextu. Výsledkom je systém, ktorý vyhľadáva len vtedy a približne tam, kde je neistý — nezaťažuje vyhľadávanie vopred obsahom, ktorý nikdy nebude potrebovať. Všetky experimenty prebiehajú na GPT-3.5 (text-davinci-003) bez akéhokoľvek dodatočného ladenia.
Kľúčové myšlienky
- Spoľahlivosť ako spúšťač vyhľadávania: pravdepodobnosť tokenu pod θ signalizuje, že model pravdepodobne halucinuje; vyhľadávanie sa spúšťa len vtedy, nie predvolene. Autori zistili, že spúšťanie pri 40–80 % viet zvyčajne funguje najlepšie.
- Dopredné dopyty: namiesto používania iba toho, čo už bolo vygenerované, ako dopytu (prístup „predchádzajúceho okna“), FLARE používa predpovedanú nadchádzajúcu vetu — to, čo si model myslí, že povie — ako oveľa cielenejší dopyt na vyhľadávanie.
- Dva varianty: FLARE-instruct maskuje tokeny s nízkou spoľahlivosťou a používa maskovaný úsek ako dopyt; FLARE-direct používa celú predpovedanú vetu. Na 2WikiMultihopQA dosahuje variant direct 51,0 EM oproti 42,4 pri variante instruct.
- Zisky oproti jednorazovému vyhľadávaniu sú reálne, ale nerovnomerné: na 2WikiMultihopQA dosahuje FLARE-direct 51,0 EM oproti 39,4 pri jednorazovom vyhľadávaní a 28,2 bez vyhľadávania — čo je rozhodujúce zlepšenie. Na ASQA je rozdiel oveľa menší (41,3 vs. 40,0) a pri WikiAsp (UniEval 53,4 vs. 52,4) ide takmer o remízu.
- Explicitné prípady zlyhania: autori uvádzajú, že FLARE neprináša žiadny zisk pri Wizard of Wikipedia a ELI5, kde krátke výstupy znamenajú, že viac-krokové vyhľadávanie pridáva réžiu bez úžitku.
- Náklady: pretože sa generovanie a vyhľadávanie prelínajú, každý príklad môže spustiť viacero doplnení LM a volaní vyhľadávania. Kešovanie (caching) nie je jednoduché.
Čo obstojí — a čo nie
Dopredné rámcovanie je tá skutočne inteligentná časť. Použitie predpovedaného obsahu ako dopytu na vyhľadávanie je informatívnejšie než samotný prefix, najmä pri viac-krokových úlohách, kde prechodné závery určujú, aký fakt potrebujete ďalej. Rozdiel 51,0 vs. 39,4 EM na 2WikiMultihopQA to potvrdzuje.
Ale signál spoľahlivosti FLARE závisí výlučne od toho, ako dobre je model kalibrovaný. Pravdepodobnosti tokenov zo základného modelu, ako je text-davinci-003, celkom dobre korelujú s neistotou. To isté však neplatí pre modely vyladené na inštrukcie alebo pomocou RLHF, ktoré sú často príliš sebavedomé — vydávajú tokeny s vysokou pravdepodobnosťou aj vtedy, keď halucinujú. Štúdia z roku 2024, Unified Active Retrieval (UAR, arXiv:2406.12534), testuje FLARE na širšej sade rozhodnutí o vyhľadávaní a zisťuje, že dosahuje iba 56,50 % presnosť v rôznych scenároch v porovnaní s 85,32 % pri prístupe UAR založenom na klasifikátore. Problém kalibrácie nie je okrajový prípad; je to základný predpoklad, na ktorom metóda stojí.
Existuje tiež otázka granularity vyhľadávania, ktorú práca plne nerieši. Spúšťanie na úrovni viet je rozumná heuristika, ale niektoré fakty presahujú hranice klauzúl a iné sú lokalizované na meno jednej entity. Nízka pravdepodobnosť pri číselnom tokene (suma v dolároch, dátum) by pravdepodobne mala spustiť vyhľadávanie inak než nízka pravdepodobnosť pri spojovacom slove. Práca pristupuje ku všetkým tokenom s nízkou spoľahlivosťou symetricky.
Napokon, slučka „znova vygeneruj, ak si neistý“ zavádza latenciu. Autori to priznávajú, ale nekvantifikujú to voči rozpočtu latencie, čo je dôležité pre interaktívne aplikácie alebo aplikácie pracujúce takmer v reálnom čase.
Prečo je to dôležité pre finančnú AI
Agent Beancount sumarizujúci viacročnú hlavnú knihu nemôže vopred načítať všetky historické záznamy — kontext by pretiekol a väčšina z neho by bola irelevantná pre danú odpoveď. Dizajn FLARE sa k tomuto problému dobre hodí: vygenerujte prvý návrh komentára k odsúhlaseniu, všimnite si nízku spoľahlivosť pri zostatku konkrétneho dodávateľa, vyhľadajte iba relevantné transakcie a potom túto vetu znova vygenerujte. Tento vzorec je správny.
Problém kalibrácie je však vážnym problémom. Produkční finanční agenti takmer univerzálne používajú chatovacie modely vyladené na inštrukcie (GPT-4, Claude, Gemini), nie základné doplňovacie modely. Ak sú tieto modely príliš sebavedomé — čo pri číselných tvrdeniach často sú — vynechajú vyhľadávanie presne vtedy, keď by ho mali spustiť. Agent Beancount na zápis údajov, ktorý s vysokou istotou halucinuje dátum transakcie a nikdy ho neoverí vyhľadávaním, je horší ako nepoužiteľný.
Praktickým ponaučením je skombinovať konštrukciu dopredného dopytu FLARE so spúšťačom vyhľadávania, ktorý sa nespolieha výlučne na pravdepodobnosť tokenov. Signál spoľahlivosti by mohli doplniť explicitné značky neistoty (vyhýbavé frázy, zaokrúhlené čísla, pomenované entity, ktoré model v poslednom čase nevidel). Alebo použite prístup UAR: vytrénujte ľahký klasifikátor na skrytých stavoch modelu, ktorý je odolnejší voči zlej kalibrácii než surové logity.
Čo si prečítať ďalej
- IRCoT: „Interleaving Retrieval with Chain-of-Thought Reasoning for Knowledge-Intensive Multi-Step Questions“ (arXiv:2212.10509) — spája vyhľadávanie s krokmi CoT namiesto spoľahlivosti tokenov; oplatí sa priamo porovnať s FLARE pri viac-krokových úlohách.
- Unified Active Retrieval (UAR, arXiv:2406.12534) — priame pokračovanie, ktoré odhaľuje medzeru v kalibrácii FLARE a navrhuje rozhodovanie o vyhľadávaní na základe klasifikátora v štyroch scenároch vyhľadávania.
- „Adaptive Retrieval without Self-Knowledge? Bringing Uncertainty Back Home“ (arXiv:2501.12835) — štúdia z roku 2025, ktorá skúma, či je možné rehabilitovať spúšťače založené na pravdepodobnosti tokenov pomocou lepších kalibračných techník.
