Toolformer (DE)
Toolformer ist ein Ansatz zur Erstellung von großen Sprachmodellen (LLM), der es ihnen ermöglicht, selbstständig externe Tools über API-Aufrufe zu nutzen[1]. Diese Methode wurde 2023 von einer Forschergruppe von Meta AI Research in Zusammenarbeit mit der Universität Pompeu Fabra (Spanien) vorgestellt. In ihrer Arbeit „Toolformer: Language Models Can Teach Themselves to Use Tools“ (Timo Schick et al., 2023) weisen die Autoren auf ein Paradoxon hin: Moderne LLMs zeigen beeindruckende Fähigkeiten bei der Lösung komplexer neuer Aufgaben anhand von Textbeispielen, sind aber oft nicht in der Lage, grundlegende Operationen wie Rechnen oder die Suche nach Fakten zuverlässig auszuführen[1]. Um diese Einschränkungen zu überwinden, entwickelte das Team das Toolformer-Modell, das selbstständig lernt, externe Tools auszuwählen und aufzurufen (wie Suchmaschinen, Taschenrechner oder Übersetzungsdienste), um die Leistung bei einer Vielzahl von Aufgaben zu verbessern[1]. Im Februar 2023 wurde dieses Modell als Preprint auf arXiv veröffentlicht und später anerkannt und auf der NeurIPS 2023 Konferenz angenommen[2].
Grundidee und Fähigkeiten des Modells
Toolformer ist ein feingetuntes Sprachmodell, das in der Lage ist zu entscheiden, welches Tool aufgerufen werden soll, wann es aufgerufen werden soll, welche Parameter übergeben werden müssen und wie das Ergebnis in den generierten Text integriert werden kann[3]. Das Training erfolgt im selbstüberwachten Modus (self-supervised) – das Modell generiert und bewertet selbstständig Beispiele für die API-Nutzung und benötigt nur eine kleine Anzahl von Demonstrationen (buchstäblich einige wenige Beispiele) für jedes Tool[3]. Im Gegensatz zu früheren Ansätzen sind keine umfangreichen Annotationen oder auf Menschen ausgerichtete Vorlagen zur Integration von Tools erforderlich; das Modell lernt selbst, wann und wie eine bestimmte API anzuwenden ist, wobei es seine allgemeinen sprachlichen Fähigkeiten beibehält und nicht auf eng definierte Aufgaben beschränkt ist[1].
Die Autoren haben eine breite Palette von Tools in Toolformer integriert, die über einfache API-Aufrufe verfügbar sind. In der experimentellen Version wurden die folgenden Dienstprogramme verwendet[3]:
- Rechner – zur Durchführung arithmetischer Berechnungen.
- Ein Frage-Antwort-System (Q&A) – zur Suche nach Antworten auf Faktenfragen in einer Wissensdatenbank.
- Suchmaschinen (2 verschiedene) – zur Suche nach aktuellen Informationen im Internet.
- Ein maschinelles Übersetzungssystem – zur Übersetzung von Texten zwischen Sprachen.
- Ein Kalender – zum Abrufen von Datums- und Zeitinformationen.
Jedes Tool wird in Form eines Textfragments (einer speziellen Textmarkierung) dargestellt, was es dem Modell ermöglicht, den API-Aufruf direkt in den von ihm generierten Text einzubetten[4]. Das Modell kann beispielsweise eine Konstruktion wie `[Calculator(...)]` oder `[Search("Suchanfrage")]` in den aktuellen Kontext einfügen, was die Notwendigkeit eines externen Aufrufs signalisiert. Während der Generierung einer Antwort erzeugt Toolformer ein spezielles Symbol (einen Pfeil →), woraufhin das System die Generierung unterbricht und den entsprechenden API-Aufruf ausführt. Das Ergebnis wird in den Text eingefügt, und die Generierung des nächsten Fragments wird fortgesetzt[4]. Dieser Mechanismus ermöglicht es dem Modell, die Fähigkeiten externer Dienste dynamisch zu nutzen, während es ein einheitliches Sprachmodul ohne Architekturänderungen bleibt.
Modelltraining (Methodologie)
Die Entwickler beschrieben den Trainingsprozess von Toolformer in mehreren Schritten[4], wobei sie die Technik des In-Context-Learnings zur Generierung synthetischer Daten nutzten[1]:
- Generierung von Kandidaten für API-Aufrufe. Zunächst werden Texte aus einem großen Korpus (z. B. Artikel oder Webseiten) verwendet, in die künstlich Aufrufe von Tools eingefügt werden, die potenziell helfen könnten, den Text fortzusetzen oder zu ergänzen. Diese Einfügungen generiert das Modell selbst mithilfe von N-Shot-Prompting, basierend auf einigen manuell erstellten Beispielen für die Nutzung jeder API[1]. Zum Beispiel könnte das Modell ein Fragment erhalten wie: „Im Jahr 2024 betrug die Einwohnerzahl der Stadt [QA("Wie hoch ist die Einwohnerzahl dieser Stadt?") → ...] Personen“, wobei QA() ein Aufruf an das Frage-Antwort-System ist, das die fehlenden Daten liefern soll. Für jedes Tool werden passende Kontexte ausgewählt; so wählt das Modell für den Rechner Sätze aus, die mehrere Zahlen und Wörter wie „gleich“ oder „insgesamt“ enthalten[4] – also dort, wo ein arithmetisches Ergebnis tatsächlich nützlich wäre.
- Ausführung der API-Aufrufe und Anreicherung der Daten. Anschließend werden alle vom Modell generierten Aufrufe tatsächlich ausgeführt – zum Beispiel werden Anfragen an eine Suchmaschine gesendet oder Ausdrücke mit dem Rechner berechnet. Die erhaltenen Antworten werden wieder in die Texte eingefügt, sodass vollständige Satzvarianten mit Einfügungen der Form `{Antwort}` entstehen[4][4]. Gleichzeitig werden auch „leere“ Varianten (ohne eingefügte Antwort) sowie die ursprünglichen Texte ohne jegliche Aufrufe für einen späteren Vergleich gespeichert.
- Filterung und Selbstbewertung der Nützlichkeit. In diesem Schritt bewertet Toolformer selbstständig, welche der generierten API-Einfügungen tatsächlich nützlich sind, um die Fortsetzung des Textes vorherzusagen[4]. Es wird die Wahrscheinlichkeit verglichen, mit der das Sprachmodell den Text in drei Szenarien fortsetzt: (a) ohne jeglichen Aufruf, (b) mit einem Tool-Aufruf ohne eingefügtes Ergebnis und (c) mit einem Aufruf und dem eingefügten Ergebnis[4]. Wenn das Hinzufügen einer bestimmten API-Antwort die Modellwahrscheinlichkeit für die korrekte Fortsetzung der Phrase erhöht (d.h. dem Modell wirklich hilft, die folgenden Wörter vorherzusagen), wird dieses Beispiel als nützlich erachtet. Nur Einfügungen, die einen Wahrscheinlichkeitsgewinn bringen, verbleiben im Datensatz. Dadurch werden Fälle ausgesondert, in denen der Tool-Aufruf überflüssig war oder keine neuen Informationen lieferte. Schließlich wird das Modell auf dem resultierenden gefilterten Datensatz, der reale Textbeispiele mit optimal eingefügten API-Aufrufen enthält, feingetunt (fine-tuning)[1]. Das Training erfolgt nach dem Standardziel der Sprachmodellierung – die Vorhersage des nächsten Tokens in einer Sequenz, einschließlich der Tokens, die die Ergebnisse der Tool-Aufrufe repräsentieren.
Wichtig ist, dass für die Integration jedes neuen Tools nur wenige manuelle Beispiele seiner Verwendung erforderlich waren – danach erfolgte die Generierung der Trainingsdaten automatisch[3]. Dadurch ist der Toolformer-Ansatz praktisch unabhängig von der Verfügbarkeit spezialisierter, annotierter Korpora und minimiert den Arbeitsaufwand für die Datenannotation. Das Modell lernt selbstständig das Format und die Angemessenheit von API-Aufrufen und behält dabei seine Universalität: Es setzt Tools nur dann ein, wenn dies zur Lösung der gestellten Aufgabe wirklich erforderlich ist[1].
Experimentelle Ergebnisse
Zur experimentellen Überprüfung der Methode nutzten die Forscher das bereits existierende Sprachmodell GPT-J (6,7 Milliarden Parameter) – ein offenes LLM, das auf dem The Pile-Korpus trainiert wurde[4]. Dieses Modell wurde nach dem beschriebenen Verfahren feingetunt, um Toolformer auf Basis von GPT-J zu erhalten. Die Leistung des neuen Ansatzes wurde im Zero-Shot-Modus (ohne Beispiele) auf einer Reihe von Standardaufgaben bewertet, darunter das Lösen mathematischer Textaufgaben, die Fakten- und Wissenssuche (QA) sowie die Übersetzung und das Füllen von Lücken im Text. Als Testdaten wurden beispielsweise die offenen Datensätze Natural Questions, TriviaQA (zur Bewertung des Faktenwissens) und die Datensätze ASDiv, MAWPS, SVAMP (mathematische Textaufgaben zur Arithmetik) sowie die mehrsprachigen QA-Benchmarks MLQA und LAMA verwendet[5].
Die Ergebnisse zeigten, dass Toolformer das ursprüngliche Modell gleicher Größe bei vielen Aufgaben deutlich übertrifft[1]. Darüber hinaus konnte das relativ kleine Modell (6,7 Mrd. Parameter) durch die Einbindung von Tools in mehreren Kennzahlen das wesentlich größere GPT-3-Modell (175 Mrd. Parameter) übertreffen[1][6]. Beispielsweise zeigte Toolformer bei mathematischen Textaufgaben, die exakte Berechnungen erfordern, einen besonders deutlichen Fortschritt im Vergleich zu herkömmlichen LLMs, da es solche Aufgaben dank des Rechners präzise löste, während selbst GPT-3 Fehler machte[1]. In Tests zu faktenbasierten Fragen (QA) erreichte Toolformer auf Basis von GPT-J ebenfalls eine vergleichbare oder bessere Antwortqualität als GPT-3, da es für aktuelle Informationen eine Internetsuche durchführen konnte[1]. Wichtig ist dabei, dass der neue Ansatz die allgemeinen Fähigkeiten des Sprachmodells nicht beeinträchtigte, wie etwa die kohärente Fortsetzung von Texten auf normalen Daten: Toolformer behielt das Niveau der Generierung natürlicher Sprache ohne Tools bei, das dem ursprünglichen GPT-J entsprach[3]. Mit anderen Worten, das Hinzufügen der API-Aufruffunktionalität hat dem Modell seine grundlegenden Fähigkeiten nicht „genommen“, sondern sie um zusätzliche Möglichkeiten erweitert.
Bedeutung der Arbeit und weitere Forschung
Die Entwicklung von Toolformer hat die grundsätzliche Möglichkeit gezeigt, ein Modell darin zu trainieren, externe Tools praktisch ohne manuelle Annotation zu verwenden, indem synthetische Daten generiert und deren Nützlichkeit selbst bewertet wird. Diese Errungenschaft ebnet den Weg zu effizienteren und zuverlässigeren großen Sprachmodellen: Anstatt Milliarden von Parametern anzuhäufen, um Fakten oder mathematische Regeln zu speichern, kann ein relativ kompaktes Modell dynamisch externe Ressourcen (Wissensdatenbanken, Rechner, Dienste) heranziehen, um seine eigenen Lücken zu füllen[1]. Ein solcher Ansatz ermöglicht es, die Anzahl der „Halluzinationen“ (wenn das Modell nicht existierende Informationen erfindet) zu reduzieren, die Genauigkeit der Antworten und die Aktualität des Wissens zu erhöhen, ohne das gesamte Modell grundlegend überarbeiten zu müssen. Im Wesentlichen erreicht Toolformer das „Beste aus zwei Welten“ – es kombiniert die sprachlichen Fähigkeiten eines großen Modells mit der Präzision spezialisierter Tools[3].
Die Arbeit von Schick und Kollegen war eine der ersten, die die selbstständige Beherrschung externer APIs durch LLMs demonstrierte und stieß auf großes Interesse in der Community. Es folgten weitere Forschungsarbeiten, die diese Idee weiterentwickelten. So wurde beispielsweise 2023 das Modell Graph-ToolFormer vorgestellt, das die Prinzipien von Toolformer für die Arbeit mit Graphendaten adaptiert. Basierend auf Hinweisen, die von ChatGPT generiert wurden, lehrt Graph-ToolFormer ein Sprachmodell, externe Tools zur Lösung von Graphenanalyseaufgaben aufzurufen (z. B. zum Abrufen von Grapheneigenschaften, zur Arbeit mit Wissensnetzen usw.)[7]. Eine weitere bemerkenswerte Entwicklung ist das Modell Gorilla (Univ. of California, Berkeley, 2023), das sich auf die präzise Nutzung einer Vielzahl von Drittanbieter-Software-APIs konzentriert[8]. Gorilla ist ein LLaMA-Modell, das auf einem umfangreichen Datensatz dokumentierter Funktionen feingetunt wurde; es ist in der Lage, korrekte API-Aufrufe aus einer Aufgabenbeschreibung zu generieren, und das so erfolgreich, dass es in Experimenten sogar GPT-4 bei der Genauigkeit der Erstellung von Aufrufen für Bibliotheken und Dienste übertraf[8]. In Gorilla ist eine Integration mit einem Suchmechanismus für Dokumentationen implementiert, der es ermöglicht, Informationen über API-Änderungen zu aktualisieren und Fehler sowie Halluzinationen bei der Nutzung von Tools erheblich zu reduzieren[8]. Diese Arbeiten bestätigen die Bedeutung der von Toolformer eröffneten Richtung: Die Kombination von LLMs mit externen Tools wird als vielversprechender Weg zur Schaffung leistungsfähigerer und zuverlässigerer KI-Systeme angesehen.
Es wird darauf hingewiesen, dass die Idee der Integration von Tools in Sprachmodelle nicht nur in der Forschung, sondern auch in der Industrie vorangetrieben wird. So stellte OpenAI im März 2023 das System der Plugins für ChatGPT vor – eine spezielle Schnittstelle, die es ermöglicht, das Modell mit externen Diensten (Webbrowser, Wissensdatenbanken, Rechenengines usw.) zu verbinden, um aktuelle Informationen zu erhalten und Berechnungen durchzuführen[9]. Benutzer hatten eine solche Funktionalität schon lange gefordert, und die Einführung von Plugins setzt praktisch ein Konzept um, das dem von Toolformer ähnelt: Das Modell wird durch „Tools“ ergänzt, um seine Fähigkeiten bei der Lösung verschiedenster Benutzeranfragen zu erweitern[9]. Somit fügt sich Toolformer in den allgemeinen Trend der KI-Entwicklung ein, bei dem große Sprachmodelle zu einer Plattform werden, die auf Anfrage externes Wissen und Berechnungen nutzen kann. Die von dem Team von Meta AI und UPF durchgeführte Forschung hat ein wichtiges Fundament für diese Richtung gelegt, indem sie zeigte, wie LLMs lernen können, mit Tools praktisch ohne manuelle Anleitung zu arbeiten, und sich damit einem universelleren und sichereren intelligenten Assistenten annähern[1][3].
Weblinks
- Originalartikel „Toolformer: Language Models Can Teach Themselves to Use Tools“ auf arXiv
- Überblick zu Toolformer auf Synced Review
- Toolformer-Seite auf OpenReview
- Überblick zu Toolformer auf Medium
- Artikel über das Gorilla-Modell auf arXiv
- Seite zu den ChatGPT-Plugins auf der OpenAI-Website
Literatur
- 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.
Anmerkungen
- ↑ 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]