Toolformer (NL)
Toolformer — dit is een aanpak voor het ontwikkelen van grote taalmodellen (LLM), waarmee deze zelfstandig externe tools kunnen gebruiken via API-aanroepen[1]. Deze methode werd in 2023 voorgesteld door een groep onderzoekers van Meta AI Research in samenwerking met de Universitat Pompeu Fabra (Spanje). In hun paper «Toolformer: Language Models Can Teach Themselves to Use Tools» (Timo Schick et al., 2023) wijzen de auteurs op een paradox: moderne LLM's tonen indrukwekkende vermogens om complexe nieuwe taken op te lossen aan de hand van tekstvoorbeelden, maar zijn tegelijkertijd vaak niet in staat om basisbewerkingen betrouwbaar uit te voeren — zoals rekenen of het opzoeken van feiten[1]. Om deze beperkingen te overwinnen ontwikkelde het team het Toolformer-model, dat zichzelf leert externe tools te kiezen en aan te roepen (zoals zoekmachines, rekenmachines of vertaaldiensten) om de kwaliteit van de uitvoering van uiteenlopende taken te verbeteren[1]. In februari 2023 werd dit model gepresenteerd als preprint op arXiv en later erkend en geaccepteerd op de NeurIPS 2023-conferentie[2].
Basisidee en mogelijkheden van het model
Toolformer is een fijngestemd taalmodel dat in staat is te bepalen welk hulpmiddel aangeroepen moet worden, wanneer precies, welke parameters doorgegeven moeten worden en hoe het verkregen resultaat in de gegenereerde tekst ingevoegd moet worden[3]. Het leerproces is georganiseerd in een self-supervised modus — het model genereert en evalueert zelf voorbeelden van API-gebruik, waarbij slechts een kleine set demonstraties (letterlijk enkele voorbeelden) per tool nodig is[3]. In tegenstelling tot eerdere benaderingen zijn er geen uitgebreide annotaties of menselijk ontworpen sjablonen nodig voor de integratie van tools; het model leert zelf wanneer en hoe een bepaalde API toe te passen, waarbij het zijn algemene taalvaardigheden behoudt en niet beperkt wordt tot smal gedefinieerde taken[1].
De auteurs hebben een breed scala aan tools geïntegreerd in Toolformer, toegankelijk via eenvoudige API-aanroepen. In de experimentele versie werden de volgende hulpmiddelen ingezet[3]:
- Rekenmachine – voor het uitvoeren van rekenkundige berekeningen.
- Een systeem voor vraag en antwoord (Q&A) – voor het vinden van antwoorden op feitelijke vragen via een kennisbank.
- Zoekmachines (2 verschillende) – voor het zoeken naar actuele informatie op het internet.
- Een systeem voor machinevertaling – voor het vertalen van teksten tussen talen.
- Kalender – voor het opvragen van informatie over data en tijden.
Elk hulpmiddel is weergegeven in de vorm van een tekstfragment (een speciale tekstmarkering), waardoor het model een API-aanroep direct in de door hem gegenereerde tekst kan inbedden[4]. Het model kan bijvoorbeeld een constructie als `[Calculator(...)]` of `[Search("query")]` in de huidige context invoegen als signaal dat een externe aanroep nodig is. Tijdens het genereren van een antwoord produceert Toolformer een speciaal teken (pijl →), waarop het systeem de generatie onderbreekt en de bijbehorende API-aanroep uitvoert; het verkregen resultaat wordt in de tekst ingevoegd, waarna de generatie van het volgende fragment wordt hervat[4]. Dit mechanisme stelt het model in staat om dynamisch de mogelijkheden van externe diensten te benutten, terwijl het één samenhangend taalmodule blijft zonder wijzigingen in de architectuur.
Training van het model (methodologie)
De ontwikkelaars beschreven het trainingsproces van Toolformer in meerdere stappen[4], waarbij de techniek van in-context learning werd gebruikt voor het genereren van synthetische gegevens[1]:
- Genereren van kandidaat-API-aanroepen. Eerst worden teksten uit een groot corpus genomen (bijvoorbeeld artikelen of webpagina's) en worden er kunstmatig aanroepen van tools ingevoegd die potentieel kunnen helpen de tekst te vervolgen of aan te vullen. Deze invoegingen genereert het model zelf met behulp van N-shot prompting, gebaseerd op een paar handmatig opgegeven voorbeelden van het gebruik van elke API[1]. Het model kan bijvoorbeeld het fragment ontvangen: «In 2024 bedroeg de bevolking van de stad [QA("Wat is het inwoneraantal van deze stad?") → ...] personen», waarbij QA( ) een aanroep van het vraag-antwoordsysteem is dat de ontbrekende gegevens moet retourneren. Voor elk hulpmiddel worden geschikte contexten geselecteerd; zo selecteert het model voor de rekenmachine zinnen die meerdere getallen bevatten en woorden zoals «is gelijk aan» of «totaal»[4] — daar waar een rekenkundig resultaat daadwerkelijk nodig zal zijn.
- Uitvoeren van API-aanroepen en aanvulling van gegevens. Vervolgens worden alle door het model gegenereerde aanroepen daadwerkelijk uitgevoerd — er worden bijvoorbeeld zoekopdrachten naar de zoekmachine verzonden of uitdrukkingen op de rekenmachine berekend. De verkregen antwoorden worden teruggeplaatst in de teksten, waardoor voltooide varianten van zinnen ontstaan met invoegingen van de vorm `{antwoord}`[4][4]. Tegelijkertijd worden ook de «lege» varianten (zonder vervanging van het antwoord) bewaard, evenals de originele teksten zonder enige aanroepen — voor latere vergelijking.
- Filtering en zelfbeoordeling van bruikbaarheid. In deze fase beoordeelt Toolformer zelfstandig welke van de gegenereerde API-invoegingen werkelijk nuttig zijn voor het voorspellen van de vervolgtekst[4]. Er wordt een vergelijking gemaakt van de waarschijnlijkheid van het taalmodel om de tekst voort te zetten in drie scenario's: (a) zonder enige aanroep, (b) met een tool-aanroep zonder het ingevoegde resultaat, (c) met een aanroep en het ingevoegde resultaat[4]. Als het toevoegen van een specifiek API-antwoord de modelkans op een correcte voortzetting van de zin vergroot (dat wil zeggen het model daadwerkelijk helpt bij het voorspellen van de volgende woorden), wordt dat voorbeeld als nuttig beschouwd. Alleen invoegingen die een kanswinst opleveren blijven in de selectie. Op deze manier worden gevallen gefilterd waarbij de tool-aanroep overbodig was of geen nieuwe informatie toevoegde. Ten slotte wordt het model fijngestemd (fine-tuning) op de verkregen gefilterde dataset, die echte tekstvoorbeelden bevat met optimaal ingevoegde API-aanroepen[1]. De training wordt uitgevoerd op basis van de standaard taalmodelleerdoelstelling — het voorspellen van het volgende token in de reeks, inclusief tokens die de resultaten van tool-aanroepen aanduiden.
Het is belangrijk te benadrukken dat voor de introductie van elk nieuw hulpmiddel slechts enkele handmatige voorbeelden van het gebruik ervan nodig waren — daarna verliep het genereren van trainingsgegevens automatisch[3]. Hierdoor is de Toolformer-aanpak vrijwel onafhankelijk van de beschikbaarheid van gespecialiseerde geannoteerde corpora en minimaliseert het de inspanning voor data-annotatie. Het model leert zelf het formaat en de relevantie van API-aanroepen en behoudt daarbij zijn universaliteit: het maakt alleen gebruik van tools wanneer dit daadwerkelijk nodig is voor het oplossen van de gestelde taak[1].
Experimentele resultaten
Voor de experimentele verificatie van de methode namen de onderzoekers het bestaande taalmodel GPT-J (6,7 miljard parameters) — een open-source LLM getraind op het The Pile-corpus[4]. Dit model werd fijngestemd volgens de beschreven procedure, waardoor Toolformer op basis van GPT-J ontstond. De prestaties van de nieuwe aanpak werden geëvalueerd in zero-shot modus (zonder voorbeelden) op een aantal standaardtaken, waaronder het wiskundig oplossen van tekstopgaven, het opzoeken van feiten en het beantwoorden van kennisgerichte vragen (QA), alsmede vertaling en het invullen van lacunes in tekst. Als testgegevens werden onder andere de open vragensets Natural Questions, TriviaQA (voor de evaluatie van feitelijke kennis) en de taaksets ASDiv, MAWPS, SVAMP (wiskundige tekstopgaven over rekenkunde) gebruikt, evenals de meertalige QA-benchmarks MLQA en LAMA[5].
De resultaten toonden aan dat Toolformer het oorspronkelijke model van dezelfde omvang op veel taken aanzienlijk overtreft[1]. Bovendien slaagde het relatief kleine model (6,7 miljard parameters) dankzij de integratie van tools er op een aantal maatstaven in om het veel grotere GPT-3 (175 miljard parameters) te overtreffen[1][6]. Bij wiskundige tekstopgaven die precieze berekeningen vereisten, vertoonde Toolformer bijvoorbeeld bijzonder merkbare vooruitgang ten opzichte van gewone LLM's door zulke taken nauwkeurig op te lossen dankzij de rekenmachine, terwijl zelfs GPT-3 fouten maakte[1]. Bij tests over feitelijke vragen (QA) behaalde Toolformer op basis van GPT-J ook kwaliteit die vergelijkbaar of beter was dan die van GPT-3, omdat het een internetzoekactie kon uitvoeren voor actuele informatie[1]. Daarbij is het belangrijk dat de nieuwe aanpak de algemene taalvaardigheden van het model niet heeft verslechterd, zoals het vloeiend voortzetten van tekst op gewone gegevens: Toolformer handhaafde het niveau van het genereren van natuurlijke taal zonder tools op hetzelfde niveau als het oorspronkelijke GPT-J[3]. Met andere woorden, het toevoegen van de API-aanroepfunctionaliteit heeft de basisvaardigheden van het model niet «weggenomen», maar heeft deze uitgebreid met extra mogelijkheden.
Betekenis van het werk en vervolgonderzoek
De ontwikkeling van Toolformer toonde de principiële mogelijkheid aan om een model te trainen externe tools te gebruiken zonder nagenoeg handmatige annotatie, door middel van het genereren van synthetische gegevens en zelfbeoordeling van bruikbaarheid. Deze prestatie opent de weg naar efficiëntere en betrouwbaardere grote taalmodellen: in plaats van miljarden parameters toe te voegen om feiten of wiskundige regels te onthouden, kan een relatief compact model dynamisch externe bronnen aanspreken (kennisdatabanken, rekenmachines, diensten) om de eigen lacunes op te vullen[1]. Deze aanpak maakt het mogelijk het aantal «hallucinaties» te verminderen (waarbij het model niet-bestaande informatie verzint), de nauwkeurigheid van antwoorden te verhogen en de actualiteit van kennis te verbeteren zonder het volledige model te herwerken. In wezen bereikt Toolformer het «beste van twee werelden» — door de taalvaardigheden van een groot model te combineren met de nauwkeurigheid van gespecialiseerde tools[3].
Het werk van Schick en collega's was een van de eerste dat aantoonde dat LLM's zelfstandig externe API's kunnen leren gebruiken, en wekte grote belangstelling in de gemeenschap. Er zijn verdere onderzoeken verschenen die dit idee uitwerken. In 2023 werd bijvoorbeeld het model Graph-ToolFormer voorgesteld, dat de principes van Toolformer aanpast voor het werken met grafiekgegevens. Op basis van aanwijzingen gegenereerd door ChatGPT leert Graph-ToolFormer een taalmodel externe tools aan te roepen voor het oplossen van grafiekanalysetaken (zoals het opvragen van eigenschappen van grafieken, het werken met kennisnetwerken, enzovoort)[7]. Een andere opmerkelijke ontwikkeling is het model Gorilla (Univ. of California, Berkeley, 2023), dat zich richt op het nauwkeurig gebruiken van een groot aantal externe programma-API's[8]. Gorilla is een LLaMA-model dat is fijngestemd op een uitgebreide set gedocumenteerde functies; het is in staat om correcte API-aanroepen te genereren op basis van een taakbeschrijving, en wel zo succesvol dat het in experimenten zelfs GPT-4 overtrof in de nauwkeurigheid van het samenstellen van aanroepen naar bibliotheken en diensten[8]. In Gorilla is een integratie met een documentatiezoekingsmechanisme geïmplementeerd, waardoor informatie over API-wijzigingen geactualiseerd kan worden en fouten en hallucinaties bij het gebruik van tools aanzienlijk worden verminderd[8]. Deze werken bevestigen het belang van de richting die door Toolformer is ingeslagen: de combinatie van LLM's met externe tools wordt beschouwd als een veelbelovende weg naar de ontwikkeling van krachtigere en betrouwbaardere AI-systemen.
Opgemerkt wordt dat het idee van de integratie van tools in taalmodellen zich niet alleen in onderzoek, maar ook in de industrie ontwikkelt. Zo presenteerde het bedrijf OpenAI in maart 2023 het systeem van plug-ins voor ChatGPT — een speciale interface waarmee het model verbonden kan worden met externe diensten (webbrowser, kennisdatabanken, rekenengines, enzovoort) voor het verkrijgen van actuele informatie en het uitvoeren van berekeningen[9]. Gebruikers vroegen al lang om dergelijke functionaliteit, en de komst van plug-ins realiseert in de praktijk een concept dat vergelijkbaar is met Toolformer: het model wordt aangevuld met «tools» om zijn mogelijkheden uit te breiden bij het behandelen van uiteenlopende gebruikersverzoeken[9]. Toolformer past zo in de algemene trend van AI-ontwikkeling, waarbij grote taalmodellen een platform worden dat op verzoek externe kennis en berekeningen kan inzetten. Het onderzoek uitgevoerd door het team van Meta AI en UPF heeft een belangrijke basis gelegd voor deze richting, door te laten zien hoe LLM's kunnen leren met tools te werken zonder nagenoeg handmatige begeleiding, en daarmee dichter te komen bij een universeler en veiliger intelligente assistent[1][3].
Verwijzingen
- Origineel artikel «Toolformer: Language Models Can Teach Themselves to Use Tools» op arXiv
- Overzicht van Toolformer op Synced Review
- Pagina van Toolformer op OpenReview
- Overzicht van Toolformer op Medium
- Artikel over het Gorilla-model op arXiv
- Pagina van ChatGPT-plug-ins op de website van OpenAI
Literatuur
- 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.
Noten
- ↑ 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]