Toolformer (HU)

From Systems analysis Wiki
Jump to navigation Jump to search

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]:

  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.
  2. 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.
  3. 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. 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]
  2. Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». OpenReview. [2]
  3. 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. 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]
  5. «Toolformer: Language Models Can Teach Themselves to Use Tools». Papers With Code. [5]
  6. Brown, Tom B. et al. «Language Models are Few-Shot Learners». arXiv. [6]
  7. Zhang, Tingkai et al. «Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT». arXiv. [7]
  8. 8.0 8.1 8.2 Patil, Shishir G. et al. «Gorilla: Large Language Model Connected with Massive APIs». arXiv. [8]
  9. 9.0 9.1 «ChatGPT plugins». OpenAI. [9]