Toolformer (HU)
Toolformer — egy megközelítés nagy nyelvi modellek (LLM) létrehozásához, amely lehetővé teszi számukra, hogy önállóan használjanak külső eszközöket API-hívásokon keresztül[1]. Ezt a módszert 2023-ban a Meta AI Research kutatócsoportja javasolta a Pompeu Fabra Egyetemmel (Spanyolország) együttműködve. A «Toolformer: Language Models Can Teach Themselves to Use Tools» (Timo Schick és mtsai., 2023) című munkájukban a szerzők egy paradoxonra hívják fel a figyelmet: a modern LLM-ek lenyűgöző képességeket mutatnak összetett, új feladatok szöveges példák alapján történő megoldásában, azonban gyakran képtelenek megbízhatóan elvégezni alapvető műveleteket – például számolást vagy tények keresését[1]. E korlátok leküzdésére a csapat kifejlesztette a Toolformer modellt, amely önállóan tanulja meg kiválasztani és meghívni a külső eszközöket (mint keresőmotorok, kalkulátorok vagy fordítási szolgáltatások), hogy javítsa a különféle feladatok végrehajtásának minőségét[1]. 2023 februárjában a modell előnyomtatott formában jelent meg az arXiv-on, majd később elismerést szerzett és elfogadták a NeurIPS 2023 konferenciára[2].
Alapgondolat és a modell képességei
A Toolformer egy finomhangolt nyelvi modell, amely képes eldönteni, melyik eszközt hívja meg, mikor hívja meg, milyen paramétereket adjon át, és hogyan illessze be a kapott eredményt a generált szövegbe[3]. A tanítás önfelügyelt (self-supervised) módon szervezett — a modell maga generálja és értékeli az API-használati példákat, és csupán egy kis bemutatókészletet igényel (szó szerint néhány példát) az egyes eszközökhöz[3]. A korábbi megközelítésekkel ellentétben nincs szükség kiterjedt annotációkra vagy emberi kézi sablonokon alapuló integrációra; a modell maga tanulja meg, mikor és hogyan alkalmazza az adott API-t, megőrizve általános nyelvi képességeit és nem korlátozódva szűken meghatározott feladatokra[1].
A szerzők a Toolformerbe egyszerű API-hívásokon keresztül elérhető eszközök széles skáláját integrálták. A kísérleti verzióban a következő segédeszközöket alkalmazták[3]:
- Kalkulátor – aritmetikai számítások elvégzéséhez.
- Kérdés-válasz (Q&A) rendszer – tudásbázison alapuló ténykérdések megválaszolásához.
- Keresőmotorok (2 különböző) – aktuális információk internetes kereséséhez.
- Gépi fordítás rendszer – szövegek nyelvek közötti fordításához.
- Naptár – dátumokra és időre vonatkozó adatok lekéréséhez.
Minden eszköz szöveges töredék (speciális szöveges jelölő) formájában van reprezentálva, ami lehetővé teszi a modell számára, hogy az API-hívást közvetlenül a generált szövegbe ágyazza[4]. Például a modell beilleszthet egy `[Calculator(...)]` vagy `[Search("lekérdezés")]` szerkezetű konstrukciót az aktuális kontextusba, jelezve a külső hívás szükségességét. A válasz generálásakor a Toolformer egy speciális szimbólumot (→ nyíl) generál, amelynek hatására a rendszer szünetelteti a generálást és végrehajtja a megfelelő API-hívást; a kapott eredményt beilleszti a szövegbe, majd folytatódik a következő szövegrész generálása[4]. Ez a mechanizmus lehetővé teszi a modell számára, hogy dinamikusan vonja be a külső szolgáltatások képességeit, miközben egyetlen nyelvi modulként működik, architektúraváltoztatás nélkül.
A modell tanítása (módszertan)
A fejlesztők a Toolformer tanítási folyamatát több lépésben írták le[4], felhasználva az in-context learning technikát szintetikus adatok generálásához[1]:
- API-hívásjelöltek generálása. Először egy nagy korpuszból (például cikkekből vagy weboldalakból) vett szövegekbe mesterségesen illesztenek be eszközhívásokat, amelyek potenciálisan segíthetnek a szöveg folytatásában vagy kiegészítésében. Ezeket a beillesztéseket maga a modell generálja N-példás promptolással, néhány kézzel megadott API-használati mintára támaszkodva[1]. Például a modell megkaphatja a következő töredéket: «2024-ben a város lakossága [QA("Mekkora e város népessége?") → ...] fő volt», ahol a QA( ) a kérdés-válasz rendszer hívása, amelynek vissza kell adnia a hiányzó adatokat. Minden eszközhöz megfelelő kontextusokat választanak ki; így a kalkulátornál a modell olyan mondatokat választ, amelyek több számot és olyan szavakat tartalmaznak, mint «egyenlő» vagy «összesen»[4] — ahol az aritmetikai eredményre valóban szükség lesz.
- API-hívások végrehajtása és adatkiegészítés. Ezután az összes modell által generált hívást ténylegesen végrehajtják — például keresési lekérdezéseket küldenek vagy kifejezéseket számolnak ki a kalkulátorral. A kapott válaszokat visszaillesztik a szövegekbe, `{válasz}` típusú beillesztésekkel rendelkező befejezett mondatváltozatokat alkotva[4][4]. Egyidejűleg megőrzik az «üres» változatokat is (válasz beillesztése nélkül), valamint az eredeti szövegeket hívások nélkül — a későbbi összehasonlításhoz.
- Szűrés és a hasznosság önértékelése. Ebben a lépésben a Toolformer önállóan értékeli, hogy a generált API-beillesztések közül melyek valóban hasznosak a szövegfolytatás előrejelzéséhez[4]. A nyelvi modell háromféle forgatókönyv esetén összehasonlítja a szöveg folytatásának valószínűségét: (a) hívás nélkül, (b) az eszközhívással, de beillesztett eredmény nélkül, (c) hívással és beillesztett eredménnyel[4]. Ha egy konkrét API-válasz hozzáadása növeli a mondat helyes folytatásának modellalapú valószínűségét (azaz valóban segít a modellnek megjósolni a következő szavakat), akkor az ilyen példát hasznosnak tekintik. Csak a valószínűségi nyereséget hozó beillesztések maradnak a mintában. Így kiszűrik azokat az eseteket, amikor az eszközhívás felesleges volt vagy nem hozott új információt. Végül a modellt finomhangolják (fine-tuning) a kapott szűrt dataseten, amely a szöveg valós példáit tartalmazza optimálisan beillesztett API-hívásokkal[1]. A tanítás standard nyelvi modellezési céllal történik – a sorozat következő tokenjének előrejelzése, beleértve az eszközhívások eredményeit jelölő tokeneket is.
Fontos hangsúlyozni, hogy minden új eszköz bevezetéséhez csupán néhány kézi példára volt szükség a használatából — a tanítóadatok generálása ezután automatikusan ment[3]. Ennek köszönhetően a Toolformer megközelítés gyakorlatilag független a specializált annotált korpuszok meglététől, és minimalizálja az adatannotálás munkaterheit. A modell maga tanulja meg az API-hívások formátumát és célszerűségét, miközben megőrzi univerzalitását: az eszközöket csak akkor alkalmazza, ha az valóban szükséges a kitűzött feladat megoldásához[1].
Kísérleti eredmények
A módszer kísérleti ellenőrzéséhez a kutatók a már meglévő GPT-J nyelvi modellt (6,7 milliárd paraméter) vették alapul — egy nyílt LLM-et, amelyet a The Pile korpuszon tanítottak[4]. Ezt a modellt a leírt eljárással finomhangolták, így létrehozva a GPT-J alapú Toolformert. Az új megközelítés teljesítményét zero-shot (példák nélküli) módban értékelték számos standard feladaton, beleértve a matematikai szöveges feladatok megoldását, tények keresését és tudásalapú kérdés-megválaszolást (QA), valamint fordítást és szövegkiegészítést. Tesztadatként például a Natural Questions, TriviaQA nyílt kérdéshalmazokat (a ténybeli tudás értékelésére), az ASDiv, MAWPS, SVAMP feladathalmazokat (aritmetikai matematikai szöveges feladatok), valamint a többnyelvű QA-benchmarkokat: MLQA, LAMA[5] használták.
Az eredmények azt mutatták, hogy a Toolformer jelentősen felülmúlja az azonos méretű eredeti modellt számos feladaton[1]. Sőt, az eszközök csatlakoztatásának köszönhetően a viszonylag kis modell (6,7 milliárd paraméter) egyes mutatók tekintetében képes volt felülmúlni a sokkal nagyobb GPT-3 modellt (175 milliárd paraméter)[1][6]. Például a pontos számításokat igénylő matematikai szöveges feladatokban a Toolformer különösen látványos előrelépést mutatott az egyszerű LLM-ekhez képest, pontosan oldva meg az ilyen feladatokat a kalkulátor segítségével, miközben még a GPT-3 is hibázott[1]. A ténybeli kérdések (QA) tesztjeiben a GPT-J alapú Toolformer szintén a GPT-3-mal összehasonlítható vagy annál jobb válaszminőséget mutatott, mivel aktuális adatokért internetes keresést tudott végezni[1]. Fontos, hogy az új megközelítés nem rontotta a nyelvi modell általános képességeit, mint például a szöveg összefüggő folytatása szokásos adatokon: a Toolformer megőrizte az eszközök nélküli természetes nyelvi generálás szintjét az eredeti GPT-J szintjén[3]. Más szóval az API-hívási funkció hozzáadása nem «vette el» a modelltől alapvető képességeit, hanem kiegészítette azokat további lehetőségekkel.
A munka jelentősége és a további kutatások
A Toolformer fejlesztése bebizonyította annak elvi lehetőségét, hogy egy modellt szinte kézi annotáció nélkül meg lehet tanítani külső eszközök használatára, szintetikus adatok generálásával és a hasznosság önértékelésével. Ez az eredmény utat nyit a nagyobb hatékonyságú és megbízhatóbb nagy nyelvi modellek felé: ahelyett, hogy milliárdnyi paramétert növelnének tények vagy matematikai szabályok memorizálásához, egy viszonylag kompakt modell dinamikusan vonhat be külső erőforrásokat (tudásbázisokat, kalkulátorokat, szolgáltatásokat) saját hiányosságainak pótlásához[1]. Ez a megközelítés lehetővé teszi a «hallucinációk» számának csökkentését (amikor a modell nem létező információt talál ki), a válaszok pontosságának és a tudás aktualitásának növelését a teljes modell átdolgozása nélkül. Lényegében a Toolformer eléri a «két világ legjobbját» — ötvözve a nagy modell nyelvi képességeit a szűk eszközök pontosságával[3].
Schick és kollégáinak munkája az elsők egyike volt, amely bemutatta, hogy az LLM-ek önállóan sajátíthatják el a külső API-k használatát, és nagy érdeklődést keltett a közösségben. Számos további kutatás jelent meg, amely ezt az ötletet fejleszti tovább. Például 2023-ban bemutatták a Graph-ToolFormer modellt, amely a Toolformer elveit gráfadatokkal való munkához igazítja. ChatGPT által generált promptokra támaszkodva a Graph-ToolFormer megtanítja a nyelvi modellt külső eszközök meghívására gráfelemzési feladatok megoldásához (például gráf-tulajdonságok lekéréséhez, tudáshálózatokkal való munkához stb.)[7]. Egy másik figyelemre méltó fejlesztés a Gorilla modell (Univ. of California, Berkeley, 2023), amely számos külső szoftveres API pontos használatára összpontosít[8]. A Gorilla egy LLaMA-modell, amelyet dokumentált függvények kiterjedt halmazán finomhangoltak; képes helyes API-hívásokat generálni feladatleírás alapján, oly sikeresen, hogy a kísérletekben még a GPT-4-et is felülmúlta a könyvtárak és szolgáltatások hívásainak kialakításában[8]. A Gorillában megvalósul a dokumentáció keresőmechanizmusával való integráció, ami lehetővé teszi az API-változásokra vonatkozó információk aktualizálását, és jelentősen csökkenti az eszközhasználatból adódó hibákat és hallucinációkat[8]. Ezek a munkák megerősítik a Toolformer által megnyitott irány jelentőségét: az LLM-ek és külső eszközök kombinálása ígéretes útként tekintendő erősebb és megbízhatóbb AI-rendszerek létrehozásához.
Megjegyzendő, hogy az eszközök nyelvi modellekbe való integrálásának ötlete nemcsak a kutatásban, hanem az iparban is fejlődik. Így 2023 márciusában az OpenAI bemutatta a ChatGPT-bővítmények rendszerét – egy speciális interfészt, amely lehetővé teszi a modell csatlakoztatását külső szolgáltatásokhoz (webböngésző, tudásbázisok, számítási motorok stb.) aktuális információk megszerzéséhez és számítások elvégzéséhez[9]. A felhasználók régóta igényeltek ilyen funkcionalitást, és a bővítmények megjelenése a gyakorlatban megvalósítja a Toolformerhez hasonló koncepciót: a modell «eszközökkel» egészül ki, hogy bővítse képességeit a különféle felhasználói kérések megoldásában[9]. Így a Toolformer illeszkedik az AI fejlődésének általános trendjébe, ahol a nagy nyelvi modellek platformmá válnak, amely képes igény szerint bevonni külső tudást és számításokat. A Meta AI és az UPF csapata által elvégzett kutatás fontos alapot fektetett le ezen irány számára, megmutatva, hogyan tanulhatnak meg az LLM-ek eszközökkel dolgozni szinte kézi útmutatás nélkül, és ezáltal közelebb kerülve egy univerzálisabb és biztonságosabb intelligens asszisztenshez[1][3].
Hivatkozások
- Az eredeti «Toolformer: Language Models Can Teach Themselves to Use Tools» cikk az arXiv-on
- A Toolformer áttekintése a Synced Review-n
- A Toolformer oldala az OpenReview-n
- A Toolformer áttekintése a Mediumon
- A Gorilla modellről szóló cikk az arXiv-on
- A ChatGPT-bővítmények oldala az OpenAI weboldalán
Irodalom
- Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
- Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. NeurIPS 2023. OpenReview.
- Li, M. et al. (2023). API-Bank: A Comprehensive Benchmark for Tool-Augmented LLMs. arXiv:2304.08244.
- Zhang, T. et al. (2023). Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT. arXiv:2304.11116.
- Patil, S. G. et al. (2023). Gorilla: Large Language Model Connected with Massive APIs. arXiv:2305.15334.
- Qin, Y. et al. (2023). ToolLLM: Facilitating Large Language Models to Master 16 000+ Real-World APIs. arXiv:2307.16789.
- Li, Y. et al. (2024). Tool Learning with Large Language Models: A Survey. arXiv:2405.17935.
- OpenAI (2023). ChatGPT Plugins. OpenAI Blog.
- Brown, T. B. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
- Schick, T. et al. (2023). Meta AI & UPF's Toolformer: Enabling Language Models to Teach Themselves to Use External Tools. Synced Review.
Jegyzetek
- ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 Schick, T. et al. «Meta AI & UPF's Toolformer: Enabling Language Models to Teach Themselves to Use External Tools». Synced. [1]
- ↑ Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». OpenReview. [2]
- ↑ 3.0 3.1 3.2 3.3 3.4 3.5 3.6 Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». arXiv. [3]
- ↑ 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 OXEN AI. «Arxiv Dives Toolformer: Language models can teach themselves to use tools». Medium. [4]
- ↑ «Toolformer: Language Models Can Teach Themselves to Use Tools». Papers With Code. [5]
- ↑ Brown, Tom B. et al. «Language Models are Few-Shot Learners». arXiv. [6]
- ↑ Zhang, Tingkai et al. «Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT». arXiv. [7]
- ↑ 8.0 8.1 8.2 Patil, Shishir G. et al. «Gorilla: Large Language Model Connected with Massive APIs». arXiv. [8]
- ↑ 9.0 9.1 «ChatGPT plugins». OpenAI. [9]