Toolformer (IT)
Toolformer — è un approccio alla creazione di grandi modelli linguistici (LLM), che consente loro di utilizzare autonomamente strumenti esterni tramite chiamate API[1]. Questo metodo è stato proposto nel 2023 da un gruppo di ricercatori di Meta AI Research in collaborazione con l'Università Pompeu Fabra (Spagna). Nel loro lavoro «Toolformer: Language Models Can Teach Themselves to Use Tools» (Timo Schick et al., 2023), gli autori evidenziano un paradosso: gli LLM moderni dimostrano capacità straordinarie nel risolvere nuovi compiti complessi a partire da esempi testuali, ma spesso non riescono a svolgere in modo affidabile operazioni di base — come il conteggio o la ricerca di fatti[1]. Per superare questi limiti, il team ha sviluppato il modello Toolformer, che impara autonomamente a selezionare e invocare strumenti esterni (come motori di ricerca, calcolatrici o servizi di traduzione) per migliorare la qualità nell'esecuzione di svariati compiti[1]. Nel febbraio 2023 questo modello è stato presentato come preprint su arXiv, e in seguito è stato accettato alla conferenza NeurIPS 2023[2].
Idea principale e capacità del modello
Toolformer è un modello linguistico sottoposto a fine-tuning, in grado di decidere quale strumento invocare, quando invocarlo, quali parametri passare e come incorporare il risultato ottenuto nel testo generato[3]. L'addestramento è organizzato in modalità self-supervised — il modello genera e valuta autonomamente esempi di utilizzo delle API, richiedendo solo un piccolo insieme di dimostrazioni (letteralmente pochi esempi) per ciascuno strumento[3]. A differenza degli approcci precedenti, non sono necessarie annotazioni estese né template progettati manualmente per l'integrazione degli strumenti; il modello impara da solo quando e come applicare una determinata API, mantenendo le capacità linguistiche generali senza essere limitato a compiti definiti in modo ristretto[1].
Gli autori hanno integrato in Toolformer un ampio spettro di strumenti accessibili tramite semplici chiamate API. Nella versione sperimentale sono stati impiegati i seguenti strumenti[3]:
- Calcolatrice – per eseguire calcoli aritmetici.
- Sistema di domande e risposte (Q&A) – per trovare risposte a domande fattuali attingendo a una base di conoscenza.
- Motori di ricerca (2 diversi) – per cercare informazioni aggiornate in rete.
- Sistema di traduzione automatica – per tradurre testi tra lingue diverse.
- Calendario – per ottenere informazioni su date e orari.
Ciascuno strumento è rappresentato nel formato di un frammento testuale (uno speciale marcatore testuale), il che consente al modello di incorporare la chiamata API direttamente nel testo che genera[4]. Ad esempio, il modello può inserire una costruzione del tipo `[Calculator(...)]` o `[Search("query")]` nel contesto corrente, segnalando la necessità di un'operazione esterna. Durante la generazione della risposta, Toolformer produce un simbolo speciale (la freccia →), in corrispondenza del quale il sistema sospende la generazione ed esegue la relativa chiamata API; il risultato ottenuto viene inserito nel testo, dopodiché la generazione del frammento successivo riprende[4]. Tale meccanismo permette al modello di coinvolgere dinamicamente le capacità di servizi esterni, restando al contempo un unico modulo linguistico senza modifiche all'architettura.
Addestramento del modello (metodologia)
Gli sviluppatori hanno descritto il processo di addestramento di Toolformer in più fasi[4], utilizzando la tecnica dell'apprendimento in contesto (in-context learning) per la generazione di dati sintetici[1]:
- Generazione di candidati per le chiamate API. In primo luogo si prendono testi da un grande corpus (ad esempio articoli o pagine web) e vi vengono artificialmente inserite chiamate a strumenti che potrebbero potenzialmente aiutare a continuare o completare il testo. Queste inserzioni vengono generate dal modello stesso tramite prompting con N esempi, basandosi su pochi campioni di utilizzo di ciascuna API definiti manualmente[1]. Ad esempio, il modello può ricevere un frammento come: «Nel 2024 la popolazione della città era [QA("Qual è la popolazione di questa città?") → ...] abitanti», dove QA( ) è una chiamata al sistema di domande e risposte, che deve restituire i dati mancanti. Per ciascuno strumento vengono selezionati i contesti appropriati; ad esempio, per la calcolatrice il modello seleziona frasi contenenti più numeri e parole come «uguale» o «totale»[4] — laddove un risultato aritmetico sarà effettivamente necessario.
- Esecuzione delle chiamate API e arricchimento dei dati. Successivamente, tutte le chiamate generate dal modello vengono effettivamente eseguite — ad esempio, vengono inviati interrogazioni al motore di ricerca o calcolate espressioni sulla calcolatrice. Le risposte ottenute vengono reinserite nei testi, formando varianti complete di frasi con inserzioni del tipo `{risposta}`[4][4]. Contemporaneamente vengono conservate anche le varianti «vuote» (senza la sostituzione della risposta), nonché i testi originali privi di qualsiasi chiamata — per il successivo confronto.
- Filtraggio e autovalutazione dell'utilità. In questa fase Toolformer valuta autonomamente quali delle inserzioni API generate siano effettivamente utili per predire il proseguimento del testo[4]. Viene confrontata la probabilità del modello linguistico di continuare il testo in tre scenari: (a) senza alcuna chiamata, (b) con la chiamata allo strumento ma senza il risultato sostituito, (c) con la chiamata e il risultato sostituito[4]. Se l'aggiunta di una specifica risposta API aumenta la probabilità del modello di continuare correttamente la frase (cioè aiuta davvero il modello a predire le parole successive), tale esempio viene considerato utile. Solo le inserzioni che apportano un guadagno in termini di probabilità rimangono nel campione. In questo modo vengono scartati i casi in cui la chiamata allo strumento era ridondante o non ha fornito nuove informazioni. Infine, il modello viene sottoposto a fine-tuning sull'insieme di dati filtrati ottenuto, contenente esempi reali di testo con chiamate API inserite in modo ottimale[1]. L'addestramento viene eseguito secondo l'obiettivo standard del modello linguistico — predire il token successivo della sequenza, inclusi i token che designano i risultati delle chiamate agli strumenti.
È importante sottolineare che per introdurre ogni nuovo strumento erano necessari solo pochi esempi manuali del suo utilizzo — dopodiché la generazione dei dati di addestramento avveniva automaticamente[3]. Grazie a ciò, l'approccio Toolformer è praticamente indipendente dalla disponibilità di corpus specializzati annotati e minimizza il lavoro richiesto per l'annotazione dei dati. Il modello impara da solo il formato e l'appropriatezza delle chiamate API, mantenendo al contempo la propria universalità: utilizza gli strumenti solo quando è davvero necessario per risolvere il compito assegnato[1].
Risultati sperimentali
Per la verifica sperimentale del metodo, i ricercatori hanno preso un modello linguistico già esistente, GPT-J (6,7 miliardi di parametri) — un LLM open-source addestrato sul corpus The Pile[4]. Questo modello è stato sottoposto a fine-tuning secondo la procedura descritta, ottenendo Toolformer basato su GPT-J. Le prestazioni del nuovo approccio sono state valutate in modalità zero-shot (senza esempi) su una serie di compiti standard, tra cui la risoluzione matematica di problemi testuali, la ricerca di fatti e le domande di conoscenza (QA), oltre alla traduzione e al completamento di lacune nel testo. Come dati di test sono stati utilizzati, ad esempio, gli insiemi aperti di domande Natural Questions, TriviaQA (per la valutazione delle conoscenze fattuali) e gli insiemi di problemi ASDiv, MAWPS, SVAMP (problemi matematici testuali di aritmetica), nonché i benchmark multilingue di QA MLQA e LAMA[5].
I risultati hanno mostrato che Toolformer supera significativamente il modello originale della stessa dimensione su molti compiti[1]. Inoltre, grazie al collegamento degli strumenti, il modello relativamente compatto (6,7 miliardi di parametri) è riuscito in alcuni indicatori a superare il ben più grande modello GPT-3 (175 miliardi di parametri)[1][6]. Ad esempio, nei problemi matematici testuali che richiedono calcoli precisi, Toolformer ha dimostrato un progresso particolarmente evidente rispetto ai normali LLM, risolvendo tali problemi con precisione grazie alla calcolatrice, mentre anche GPT-3 commetteva errori[1]. Nei test su domande fattuali (QA), Toolformer basato su GPT-J ha mostrato una qualità di risposta paragonabile o migliore rispetto a GPT-3, potendo eseguire una ricerca in rete per informazioni aggiornate[1]. È importante notare che il nuovo approccio non ha peggiorato le capacità linguistiche generali del modello, come la continuazione coerente del testo su dati comuni: Toolformer ha mantenuto il livello di generazione del linguaggio naturale senza strumenti al pari del GPT-J originale[3]. In altre parole, l'aggiunta della funzionalità di chiamata API non ha «sottratto» al modello le sue competenze di base, bensì le ha ampliate con capacità aggiuntive.
Significato del lavoro e ricerche successive
Lo sviluppo di Toolformer ha dimostrato la possibilità concreta di addestrare un modello a utilizzare strumenti esterni praticamente senza annotazione manuale, grazie alla generazione di dati sintetici e all'autovalutazione dell'utilità. Questo risultato apre la strada a grandi modelli linguistici più efficienti e affidabili: invece di accumulare miliardi di parametri per memorizzare fatti o regole matematiche, un modello relativamente compatto può coinvolgere dinamicamente risorse esterne (basi di conoscenza, calcolatrici, servizi) per colmare le proprie lacune[1]. Tale approccio permette di ridurre le «allucinazioni» (quando il modello inventa informazioni inesistenti), aumentare la precisione delle risposte e l'aggiornamento delle conoscenze senza dover rielaborare completamente l'intero modello. In sostanza, Toolformer raggiunge il «meglio di due mondi» — combinando le capacità linguistiche di un grande modello con la precisione degli strumenti specializzati[3].
Il lavoro di Schick e colleghi è stato uno dei primi a dimostrare l'acquisizione autonoma da parte degli LLM di API esterne, suscitando grande interesse nella comunità. Sono emerse ricerche successive che sviluppano questa idea. Ad esempio, nel 2023 è stato proposto il modello Graph-ToolFormer, che adatta i principi di Toolformer per lavorare con dati grafici. Basandosi su suggerimenti generati da ChatGPT, Graph-ToolFormer insegna al modello linguistico a invocare strumenti esterni per risolvere compiti di analisi grafica (come l'ottenimento di proprietà del grafo, il lavoro con reti di conoscenza ecc.)[7]. Un altro sviluppo degno di nota è il modello Gorilla (Univ. of California, Berkeley, 2023), che si concentra sull'utilizzo preciso di numerose API di software di terze parti[8]. Gorilla è un modello LLaMA sottoposto a fine-tuning su un ampio insieme di funzioni documentate; è in grado di generare chiamate API corrette a partire dalla descrizione del compito, con risultati talmente validi che negli esperimenti ha superato persino GPT-4 in termini di precisione nella generazione di chiamate a librerie e servizi[8]. In Gorilla è stata realizzata l'integrazione con un meccanismo di ricerca nella documentazione, il che consente di aggiornare le informazioni sulle modifiche alle API e riduce significativamente gli errori e le allucinazioni nell'uso degli strumenti[8]. Questi lavori confermano l'importanza del filone aperto da Toolformer: la combinazione di LLM con strumenti esterni è considerata un percorso promettente verso la creazione di sistemi AI più potenti e affidabili.
Si osserva che l'idea di integrare strumenti nei modelli linguistici si sviluppa non solo nella ricerca, ma anche nell'industria. Così, nel marzo 2023 OpenAI ha presentato il sistema di plugin per ChatGPT — un'interfaccia speciale che consente di collegare il modello a servizi esterni (browser web, basi di conoscenza, motori di calcolo ecc.) per ottenere informazioni aggiornate ed eseguire calcoli[9]. Gli utenti richiedevano da tempo questa funzionalità, e la comparsa dei plugin mette in pratica un concetto simile a Toolformer: il modello viene integrato con «strumenti» per ampliare le proprie capacità nel rispondere a svariate richieste degli utenti[9]. Toolformer si inserisce dunque nella tendenza generale dello sviluppo dell'AI, in cui i grandi modelli linguistici diventano una piattaforma capace di sfruttare su richiesta conoscenze esterne e capacità di calcolo. La ricerca condotta dal team di Meta AI e UPF ha posto un'importante base per questo filone, mostrando come gli LLM possano imparare a lavorare con gli strumenti praticamente senza supervisione manuale, avvicinandosi così a un assistente intelligente più universale e affidabile[1][3].
Collegamenti esterni
- Articolo originale «Toolformer: Language Models Can Teach Themselves to Use Tools» su arXiv
- Rassegna di Toolformer su Synced Review
- Pagina di Toolformer su OpenReview
- Rassegna di Toolformer su Medium
- Articolo sul modello Gorilla su arXiv
- Pagina dei plugin di ChatGPT sul sito di OpenAI
Bibliografia
- 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.
Note
- ↑ 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]