Toolformer (SV)
Toolformer — detta är ett tillvägagångssätt för att skapa stora språkmodeller (LLM), som gör det möjligt för dem att självständigt använda externa verktyg via API-anrop[1]. Metoden föreslogs år 2023 av en forskargrupp från Meta AI Research tillsammans med Pompeu Fabra-universitetet (Spanien). I sitt arbete «Toolformer: Language Models Can Teach Themselves to Use Tools» (Timo Schick et al., 2023) påpekar författarna en paradox: moderna LLM uppvisar imponerande förmåga att lösa komplexa nya uppgifter utifrån textexempel, men är samtidigt ofta oförmögna att tillförlitligt utföra grundläggande operationer – till exempel räkning eller faktasökning[1]. För att övervinna dessa begränsningar utvecklade teamet modellen Toolformer, som självlär sig att välja och anropa externa verktyg (såsom sökmotorer, kalkylatorer eller översättningstjänster) för att förbättra kvaliteten på utförandet av varierande uppgifter[1]. I februari 2023 presenterades denna modell som en preprint på arXiv, och fick senare erkännande och accepterades till konferensen NeurIPS 2023[2].
Grundläggande idé och modellens möjligheter
Toolformer är en fine-tunad språkmodell som kan avgöra vilket verktyg som ska anropas, exakt när det ska anropas, vilka parametrar som ska skickas och hur det erhållna resultatet ska integreras i den genererade texten[3]. Träningen är organiserad i ett self-supervised läge — modellen genererar och utvärderar själv exempel på API-användning och kräver bara ett litet antal demonstrationer (bokstavligen några exempel) för varje verktyg[3]. Till skillnad från tidigare tillvägagångssätt krävs inga omfattande annoteringar eller manuellt utformade mallar för integration av verktyg; modellen lär sig själv när och hur den ska använda ett visst API, och bevarar sina allmänna språkliga förmågor utan att begränsas till snävt definierade uppgifter[1].
Författarna integrerade ett brett spektrum av verktyg i Toolformer, tillgängliga via enkla API-anrop. I den experimentella versionen användes följande verktyg[3]:
- Kalkylator – för att utföra aritmetiska beräkningar.
- Systemet «fråga-svar» (Q&A) – för att söka svar på faktabaserade frågor mot en kunskapsbas.
- Sökmotorer (2 olika) – för att söka aktuell information på internet.
- Systemet för maskinöversättning – för att översätta texter mellan språk.
- Kalender – för att hämta information om datum och tid.
Varje verktyg representeras i form av ett textfragment (en speciell textetikett), vilket gör det möjligt för modellen att bädda in API-anropet direkt i den text den genererar[4]. Till exempel kan modellen infoga en konstruktion av typen `[Calculator(...)]` eller `[Search("sökfråga")]` i det aktuella sammanhanget, vilket signalerar behovet av ett externt anrop. Under generering av svar genererar Toolformer ett speciellt tecken (en pil →), vid vilket systemet pausar genereringen och utför motsvarande API-anrop; det erhållna resultatet infogas i texten, varefter genereringen av nästa fragment fortsätter[4]. Denna mekanism gör det möjligt för modellen att dynamiskt utnyttja externa tjänsters möjligheter, och förblir samtidigt en enhetlig språkmodul utan ändringar i arkitekturen.
Modellträning (metodik)
Utvecklarna beskrev träningsprocessen för Toolformer i flera steg[4], med tekniken in-context learning för att generera syntetiska data[1]:
- Generering av kandidater för API-anrop. Först hämtas texter från ett stort korpus (till exempel artiklar eller webbsidor) och artificiellt infogas anrop till verktyg som potentiellt kan hjälpa till att fortsätta eller komplettera texten. Dessa infogningar genererar modellen själv med hjälp av N-shot-promptning, baserat på några manuellt angivna exempel på användning av varje API[1]. Till exempel kan modellen få ett fragment: «År 2024 uppgick stadens befolkning till [QA("Hur stor är stadens befolkning?") → ...] personer», där QA( ) är ett anrop till fråga-svar-systemet som förväntas returnera saknade data. För varje verktyg väljs lämpliga sammanhang ut; för kalkylatorn väljer modellen till exempel meningar som innehåller flera tal och ord som «är lika med» eller «totalt»[4] — där ett aritmetiskt resultat verkligen behövs.
- Utförande av API-anrop och komplettering av data. Därefter verkställs alla anrop som genererats av modellen – till exempel skickas sökförfrågningar till en sökmotor eller beräknas uttryck i kalkylatorn. De erhållna svaren infogas tillbaka i texterna och bildar kompletta versioner av meningarna med infogningar av typen `{svar}`[4][4]. Samtidigt sparas även «tomma» versioner (utan infogat svar), liksom ursprungstexter utan några anrop – för efterföljande jämförelse.
- Filtrering och självutvärdering av nytta. I detta steg utvärderar Toolformer självständigt vilka av de genererade API-infogningarna som verkligen är användbara för att förutsäga fortsättningen av texten[4]. En jämförelse görs av språkmodellens sannolikhet att fortsätta texten i tre scenarier: (a) utan något anrop alls, (b) med ett verktygsan rop utan infogat resultat, (c) med ett anrop och infogat resultat[4]. Om tillägget av ett specifikt API-svar ökar modellens sannolikhet för korrekt fortsättning av frasen (det vill säga verkligen hjälper modellen att förutsäga efterföljande ord), betraktas ett sådant exempel som användbart. Endast infogningar som ger en sannolikhetsvinst behålls i urvalet. På så sätt filtreras fall bort där verktygsan ropet var överflödigt eller inte tillförde ny information. Slutligen fine-tunas modellen (fine-tuning) på det erhållna filtrerade datasetet, som innehåller verkliga textexempel med optimalt infogade API-anrop[1]. Träningen utförs enligt det standardmässiga målet för språkmodellering – att förutsäga nästa token i sekvensen, inklusive tokens som betecknar resultaten av verktygsan rop.
Det är viktigt att understryka att för att introducera varje nytt verktyg krävdes bara ett fåtal manuella exempel på dess användning – därefter skedde genereringen av träningsdata automatiskt[3]. Tack vare detta är Toolformers tillvägagångssätt praktiskt taget oberoende av tillgången på specialiserade annoterade korpusar och minimerar arbetsinsatsen för dataannotering. Modellen lär sig själv formatet och lämpligheten hos API-anrop och bevarar samtidigt sin mångsidighet: den använder verktyg bara när det verkligen behövs för att lösa den ställda uppgiften[1].
Experimentella resultat
För att experimentellt verifiera metoden använde forskarna den redan befintliga språkmodellen GPT-J (6,7 miljarder parametrar) – en öppen LLM tränad på korpuset The Pile[4]. Denna modell fine-tunades enligt den beskrivna proceduren och resulterade i Toolformer baserad på GPT-J. Det nya tillvägagångssättets prestanda utvärderades i zero-shot-läge (utan exempel) på ett antal standarduppgifter, inklusive matematisk lösning av textuppgifter, faktasökning och faktafrågor (QA), samt översättning och ifyllande av luckor i text. Som testdata användes till exempel de öppna frågesamlingarna Natural Questions, TriviaQA (för utvärdering av faktakunskaper) och uppgiftssamlingarna ASDiv, MAWPS, SVAMP (matematiska textuppgifter i aritmetik), samt flerspråkiga QA-benchmark MLQA, LAMA[5].
Resultaten visade att Toolformer avsevärt överträffar ursprungsmodellen av samma storlek på många uppgifter[1]. Dessutom kunde den relativt lilla modellen (6,7 miljarder parametrar), tack vare anslutningen av verktyg, i flera avseenden slå den mycket större modellen GPT-3 (175 miljarder parametrar)[1][6]. Till exempel i matematiska textuppgifter med krav på exakta beräkningar visade Toolformer särskilt märkbara framsteg jämfört med vanliga LLM, och löste sådana uppgifter korrekt tack vare kalkylatorn, medan även GPT-3 begick fel[1]. I tester med faktabaserade frågor (QA) visade Toolformer baserad på GPT-J också en svarskvalitet som var jämförbar med eller bättre än GPT-3:s, eftersom den kunde utföra internetsökning efter aktuell information[1]. Viktigt är att det nya tillvägagångssättet inte försämrade språkmodellens allmänna förmågor, såsom sammanhängande textgenerering på vanliga data: Toolformer bevarade nivån på naturlig språkgenerering utan verktyg på nivån hos ursprungliga GPT-J[3]. Med andra ord «tog» tillägget av API-anropsfunktionalitet inte ifrån modellen dess grundläggande färdigheter, utan utvidgade dem med ytterligare möjligheter.
Arbetets betydelse och fortsatt forskning
Utvecklingen av Toolformer demonstrerade den principiella möjligheten att träna en modell att använda externa verktyg nästan utan manuell annotering, genom generering av syntetiska data och självutvärdering av nytta. Detta framsteg öppnar vägen mot mer effektiva och tillförlitliga stora språkmodeller: i stället för att öka miljardtals parametrar för att memorera fakta eller matematiska regler kan en relativt kompakt modell dynamiskt utnyttja externa resurser (kunskapsdatabaser, kalkylatorer, tjänster) för att fylla i sina egna luckor[1]. Detta tillvägagångssätt gör det möjligt att minska antalet «hallucinationer» (när modellen hittar på icke-existerande information), öka svarsprecisionen och kunskapernas aktualitet utan total omarbetning av hela modellen. I grund och botten uppnår Toolformer «det bästa av två världar» — genom att kombinera en stor modells språkliga färdigheter med precisionen hos specialiserade verktyg[3].
Arbetet av Schick och kollegor var ett av de första som demonstrerade att LLM självständigt kan tillägna sig externa API:er, och väckte stort intresse i gemenskapen. Vidare forskning som utvecklar denna idé har uppstått. Till exempel föreslogs år 2023 modellen Graph-ToolFormer, som anpassar Toolformers principer för arbete med grafdata. Med stöd av ledtrådar genererade av ChatGPT lär Graph-ToolFormer en språkmodell att anropa externa verktyg för att lösa uppgifter inom grafanalys (till exempel att hämta grafegenskaper, arbeta med kunskapsnätverk osv.)[7]. En annan anmärkningsvärd utveckling är modellen Gorilla (Univ. of California, Berkeley, 2023), som fokuserar på korrekt användning av ett stort antal tredjeparts-API:er[8]. Gorilla är en LLaMA-modell fine-tunad på en omfattande samling dokumenterade funktioner; den kan generera korrekta API-anrop utifrån en uppgiftsbeskrivning, och gör det så framgångsrikt att den i experiment till och med överträffade GPT-4 i precision vid formering av anrop till bibliotek och tjänster[8]. I Gorilla är integration med en dokumentationssökningsmekanism implementerad, vilket gör det möjligt att aktualisera information om API-förändringar och avsevärt minskar fel och hallucinationer vid användning av verktyg[8]. Dessa arbeten bekräftar betydelsen av det område som öppnades av Toolformer: kombinationen av LLM med externa verktyg betraktas som en lovande väg mot skapandet av mer kraftfulla och tillförlitliga AI-system.
Det bör noteras att idén om integration av verktyg i språkmodeller utvecklas inte bara inom forskning, utan även inom industrin. I mars 2023 presenterade OpenAI till exempel systemet med plugins för ChatGPT – ett speciellt gränssnitt som gör det möjligt att ansluta modellen till externa tjänster (webbläsare, kunskapsbaser, beräkningsmotorer m.m.) för att hämta aktuell information och utföra beräkningar[9]. Användare har länge efterfrågat sådan funktionalitet, och framkomsten av plugins realiserar i praktiken ett koncept som liknar Toolformer: modellen kompletteras med «verktyg» för att utöka sina möjligheter vid hantering av varierande användarförfrågningar[9]. Toolformer passar således in i den allmänna trenden inom AI-utveckling, där stora språkmodeller blir en plattform som på begäran kan utnyttja externa kunskaper och beräkningar. Forskningen som utfördes av teamet vid Meta AI och UPF lade en viktig grund för detta område och visade hur LLM kan lära sig att arbeta med verktyg nästan utan manuell handledning, och därmed närma sig en mer universell och säker intelligent assistent[1][3].
Källor
- Originalartikeln «Toolformer: Language Models Can Teach Themselves to Use Tools» på arXiv
- Översikt av Toolformer på Synced Review
- Toolformers sida på OpenReview
- Översikt av Toolformer på Medium
- Artikel om modellen Gorilla på arXiv
- Sidan för ChatGPT-plugins på OpenAI:s webbplats
Litteratur
- 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.
Noter
- ↑ 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]