Toolformer (RO)

From Systems analysis Wiki
Jump to navigation Jump to search

Toolformer — este o abordare pentru crearea modelelor lingvistice de mari dimensiuni (LLM), care le permite să utilizeze în mod independent instrumente externe prin apeluri API[1]. Această metodă a fost propusă în 2023 de un grup de cercetători de la Meta AI Research în colaborare cu Universitatea Pompeu Fabra (Spania). În lucrarea lor «Toolformer: Language Models Can Teach Themselves to Use Tools» (Timo Schick et al., 2023), autorii subliniază un paradox: LLM-urile moderne demonstrează capacități impresionante de a rezolva sarcini noi și complexe pe baza unor exemple text, însă deseori nu sunt capabile să execute în mod fiabil operații de bază — de exemplu, calcule aritmetice sau căutarea unor fapte[1]. Pentru a depăși aceste limitări, echipa a dezvoltat modelul Toolformer, care se auto-antrenează să selecteze și să apeleze instrumente externe (precum motoare de căutare, calculatoare sau servicii de traducere) pentru a îmbunătăți calitatea executării diverselor sarcini[1]. În februarie 2023, acest model a fost prezentat sub forma unui preprint pe arXiv, iar ulterior a fost recunoscut și acceptat la conferința NeurIPS 2023[2].

Ideea de bază și capacitățile modelului

Toolformer reprezintă un model lingvistic ajustat prin fine-tuning, capabil să decidă ce instrument să apeleze, când anume să îl apeleze, ce parametri să transmită și cum să integreze rezultatul obținut în textul generat[3]. Antrenamentul este organizat în regim auto-supervizat (self-supervised) — modelul generează și evaluează el însuși exemple de utilizare a API-ului, necesitând doar un set redus de demonstrații (literalmente câteva exemple) pentru fiecare instrument[3]. Spre deosebire de abordările anterioare, nu sunt necesare adnotări extinse sau șabloane orientate spre intervenția umană pentru integrarea instrumentelor; modelul învață singur când și cum să aplice un anumit API, păstrându-și capacitățile lingvistice generale și fără a se limita la sarcini strict predefinite[1].

Autorii au integrat în Toolformer o gamă largă de instrumente accesibile prin apeluri API simple. În versiunea experimentală au fost utilizate următoarele utilitare[3]:

  • Calculator – pentru efectuarea calculelor aritmetice.
  • Sistemul «întrebare-răspuns» (Q&A) – pentru căutarea răspunsurilor la întrebări factuale într-o bază de cunoștințe.
  • Motoare de căutare (2 diferite) – pentru căutarea de informații actuale pe internet.
  • Sistem de traducere automată – pentru traducerea textelor între limbi.
  • Calendar – pentru obținerea de informații despre date și ore.

Fiecare instrument este reprezentat sub forma unui fragment text (o etichetă text specială), ceea ce permite modelului să insereze apelul API direct în textul pe care îl generează[4]. De exemplu, modelul poate insera o construcție de tipul `[Calculator(...)]` sau `[Search("interogare")]` în contextul curent, semnalând necesitatea unei apelări externe. În timpul generării răspunsului, Toolformer generează un simbol special (săgeată →), la care sistemul suspendă generarea și execută apelul API corespunzător; rezultatul obținut este inserat în text, după care continuă generarea fragmentului următor[4]. Acest mecanism permite modelului să atragă dinamic capacitățile serviciilor externe, rămânând în același timp un modul lingvistic unitar, fără modificări de arhitectură.

Antrenamentul modelului (metodologie)

Dezvoltatorii au descris procesul de antrenament al Toolformer în mai multe etape[4], utilizând tehnica învățării în context (in-context learning) pentru generarea datelor sintetice[1]:

  1. Generarea candidaților de apeluri API. Mai întâi, se preiau texte dintr-un corpus mare (de exemplu, articole sau pagini web) și în acestea se inserează artificial apeluri de instrumente care pot potențial contribui la continuarea sau completarea textului. Aceste inserții sunt generate de model însuși prin prompting cu N exemple, bazându-se pe câteva exemple de utilizare a fiecărui API definite manual[1]. De exemplu, modelul poate primi fragmentul: «În 2024, populația orașului era de [QA("Care este numărul de locuitori al acestui oraș?") → ...] de persoane», unde QA( ) este un apel al sistemului de întrebări-răspunsuri, care ar trebui să returneze datele lipsă. Pentru fiecare instrument sunt selectate contextele adecvate; astfel, pentru calculator, modelul alege propoziții care conțin mai multe numere și cuvinte precum «egal» sau «total»[4] — acolo unde un rezultat aritmetic va fi cu adevărat necesar.
  2. Executarea apelurilor API și completarea datelor. Ulterior, toate apelurile generate de model sunt efectiv executate — de exemplu, sunt trimise interogări la motorul de căutare sau sunt calculate expresii cu ajutorul calculatorului. Răspunsurile obținute sunt inserate înapoi în texte, formând variante complete ale propozițiilor cu inserții de tipul `{răspuns}`[4][4]. Simultan, se păstrează și variantele «goale» (fără substituirea răspunsului), precum și textele originale fără niciun apel — pentru comparație ulterioară.
  3. Filtrarea și autoevaluarea utilității. În această etapă, Toolformer evaluează în mod independent care dintre inserțiile API generate sunt cu adevărat utile pentru predicția continuării textului[4]. Se realizează o comparație a probabilității modelului lingvistic de a continua textul în trei scenarii: (a) fără niciun apel, (b) cu apelul instrumentului, dar fără substituirea rezultatului, (c) cu apelul și rezultatul substituit[4]. Dacă adăugarea unui anumit răspuns API crește probabilitatea modelului de a continua corect fraza (adică îl ajută cu adevărat pe model să prezică cuvintele următoare), atunci acel exemplu este considerat util. Doar inserțiile care aduc un câștig de probabilitate rămân în eșantion. Astfel sunt eliminate cazurile în care apelul unui instrument era redundant sau nu a adus informații noi. În final, modelul este ajustat prin fine-tuning pe setul de date filtrat obținut, care conține exemple reale de text cu apeluri API inserate optim[1]. Antrenamentul se realizează conform obiectivului standard de modelare lingvistică — predicția token-ului următor din secvență, inclusiv a token-urilor care desemnează rezultatele apelurilor de instrumente.

Este important de subliniat că pentru integrarea fiecărui instrument nou erau necesare doar câteva exemple manuale de utilizare a acestuia — ulterior, generarea datelor de antrenament se desfășura automat[3]. Datorită acestui fapt, abordarea Toolformer este practic independentă de existența unor corpusuri adnotate specializate și minimizează efortul de muncă pentru adnotarea datelor. Modelul învață singur formatul și oportunitatea apelurilor API și își păstrează în același timp universalitatea: utilizează instrumentele doar atunci când este cu adevărat necesar pentru rezolvarea sarcinii date[1].

Rezultate experimentale

Pentru verificarea experimentală a metodei, cercetătorii au utilizat modelul lingvistic existent GPT-J (6,7 miliarde de parametri) — un LLM open-source antrenat pe corpusul The Pile[4]. Acest model a fost ajustat prin fine-tuning conform procedurii descrise, obținând Toolformer pe baza GPT-J. Performanța noii abordări a fost evaluată în regim zero-shot (fără exemple) pe o serie de sarcini standard, inclusiv rezolvarea matematică a problemelor text, căutarea faptelor și răspunsul la întrebări de cunoaștere (QA), precum și traducerea și completarea lacunelor din text. Ca date de testare au fost utilizate, de exemplu, seturile de întrebări deschise Natural Questions, TriviaQA (pentru evaluarea cunoștințelor factuale) și seturile de probleme ASDiv, MAWPS, SVAMP (probleme text matematice de aritmetică), precum și benchmark-urile multilingve QA MLQA, LAMA[5].

Rezultatele au arătat că Toolformer depășește semnificativ modelul original de aceeași dimensiune la multe sarcini[1]. Mai mult, datorită conectării instrumentelor, modelul relativ compact (6,7 miliarde de parametri) a reușit, la unii indicatori, să depășească modelul GPT-3 mult mai mare (175 miliarde de parametri)[1][6]. De exemplu, la problemele text matematice care necesită calcule precise, Toolformer a demonstrat un progres deosebit de vizibil față de LLM-urile obișnuite, rezolvând astfel de probleme cu precizie datorită calculatorului, în timp ce chiar și GPT-3 comitea erori[1]. La testele de întrebări factuale (QA), Toolformer pe baza GPT-J a demonstrat, de asemenea, o calitate a răspunsului comparabilă sau mai bună decât a GPT-3, deoarece putea efectua o căutare pe internet pentru informații actuale[1]. Este important de menționat că noua abordare nu a deteriorat capacitățile generale ale modelului lingvistic, precum continuarea coerentă a textului pe date obișnuite: Toolformer a menținut nivelul de generare a limbajului natural fără instrumente la nivelul GPT-J original[3]. Cu alte cuvinte, adăugarea funcționalității de apelare API nu a «luat» modelului abilitățile sale de bază, ci le-a extins cu capacități suplimentare.

Semnificația lucrării și cercetările ulterioare

Dezvoltarea Toolformer a demonstrat posibilitatea de principiu de a antrena un model să utilizeze instrumente externe practic fără adnotare manuală, prin generarea de date sintetice și autoevaluarea utilității. Această realizare deschide calea spre modele lingvistice de mari dimensiuni mai eficiente și mai fiabile: în loc să acumuleze miliarde de parametri pentru memorarea faptelor sau a regulilor matematice, un model relativ compact poate atrage dinamic resurse externe (baze de cunoștințe, calculatoare, servicii) pentru a-și compensa propriile lacune[1]. O astfel de abordare permite reducerea numărului de «halucinații» (când modelul inventează informații inexistente), îmbunătățirea preciziei răspunsurilor și a actualității cunoștințelor fără o revizuire totală a întregului model. În esență, Toolformer atinge «ce e mai bun din ambele lumi» — combinând abilitățile lingvistice ale unui model mare cu precizia instrumentelor specializate[3].

Lucrarea lui Schick și a colegilor săi a fost una dintre primele care a demonstrat însușirea independentă de către LLM-uri a API-urilor externe și a generat un interes deosebit în comunitate. Au apărut cercetări ulterioare care dezvoltă această idee. De exemplu, în 2023 a fost propus modelul Graph-ToolFormer, care adaptează principiile Toolformer pentru lucrul cu date grafice. Bazându-se pe sugestii generate de ChatGPT, Graph-ToolFormer învață un model lingvistic să apeleze instrumente externe pentru rezolvarea sarcinilor de analiză a grafurilor (de exemplu, obținerea proprietăților unui graf, lucrul cu rețele de cunoștințe etc.)[7]. O altă dezvoltare notabilă este modelul Gorilla (Univ. of California, Berkeley, 2023), care se focusează pe utilizarea precisă a numeroase API-uri software terțe[8]. Gorilla reprezintă un model LLaMA ajustat prin fine-tuning pe un set extins de funcții documentate; este capabil să genereze apeluri API corecte pe baza descrierii sarcinii, și atât de cu succes, încât în experimente a depășit chiar și GPT-4 în privința preciziei formării apelurilor de biblioteci și servicii[8]. În Gorilla este implementată integrarea cu un mecanism de căutare în documentație, ceea ce permite actualizarea informațiilor despre modificările API și reduce semnificativ erorile și halucinațiile la utilizarea instrumentelor[8]. Aceste lucrări confirmă importanța direcției deschise de Toolformer: combinarea LLM-urilor cu instrumente externe este considerată o cale promițătoare spre crearea unor sisteme AI mai puternice și mai fiabile.

Se remarcă faptul că ideea integrării instrumentelor în modelele lingvistice se dezvoltă nu doar în cercetare, ci și în industrie. Astfel, în martie 2023, compania OpenAI a prezentat sistemul de plugin-uri pentru ChatGPT — o interfață specială care permite conectarea modelului la servicii externe (browser web, baze de cunoștințe, motoare de calcul etc.) pentru obținerea de informații actuale și efectuarea de calcule[9]. Utilizatorii solicitau de multă vreme o astfel de funcționalitate, iar apariția plugin-urilor implementează practic conceptul similar cu Toolformer: modelul este completat cu «instrumente» pentru extinderea capacităților sale în rezolvarea diverselor solicitări ale utilizatorilor[9]. Astfel, Toolformer se înscrie în tendința generală de dezvoltare a inteligenței artificiale, în care modelele lingvistice de mari dimensiuni devin o platformă capabilă să utilizeze, la cerere, cunoștințe și calcule externe. Cercetarea realizată de echipa Meta AI și UPF a pus o bază importantă pentru această direcție, arătând cum LLM-urile pot învăța să lucreze cu instrumente practic fără îndrumare manuală, apropiindu-se astfel de un asistent intelectual mai universal și mai sigur[1][3].

Referințe

  • Articolul original «Toolformer: Language Models Can Teach Themselves to Use Tools» pe arXiv
  • Recenzia Toolformer pe Synced Review
  • Pagina Toolformer pe OpenReview
  • Recenzia Toolformer pe Medium
  • Articolul despre modelul Gorilla pe arXiv
  • Pagina plugin-urilor ChatGPT pe site-ul OpenAI

Bibliografie

  • 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. 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]