Verbesserung der LLM-Fähigkeiten mit ausführbarem Python-Code
Neuer Ansatz verbessert LLMs, indem ausführbarer Python-Code integriert wird, um besser mit Aktionen umzugehen.
― 4 min Lesedauer
Inhaltsverzeichnis
- Herausforderungen mit aktuellen Aktionsformaten
- Ein neuer Ansatz: Ausführbarer Python-Code
- Testen der neuen Methode
- Erstellung eines Open-Source-LLM-Agenten
- Erstellung eines Datensatzes für die Instruktionstuning
- Vergleich verschiedener Aktionsformate
- Anwendungen in realen Aufgaben
- Zukünftige Entwicklungen
- Fazit
- Originalquelle
- Referenz Links
Grosse Sprachmodelle (LLMs) werden immer besser darin, verschiedene Aufgaben zu erledigen, von Fragen beantworten bis hin zu Maschinen steuern. Diese Modelle können viele Aktionen ausführen, die helfen, echte Probleme zu lösen. Es gibt jedoch immer noch einige Einschränkungen, wenn es darum geht, wie sie mit Aktionen umgehen.
Herausforderungen mit aktuellen Aktionsformaten
Momentan werden LLM-Agenten oft angewiesen, Aktionen in Text- oder JSON-Formaten zu erstellen. Auch wenn diese Methoden funktionieren, haben sie einige Probleme. Die Hauptprobleme sind ein begrenzter Aktionsumfang und die Schwierigkeit, mehrere Aktionen zu einer zu kombinieren. Das macht es den LLMs schwer, sich an neue Situationen oder Aufgaben anzupassen.
Ein neuer Ansatz: Ausführbarer Python-Code
Wir schlagen einen neuen Weg vor, um mit Aktionen umzugehen, indem wir den LLM-Agenten erlauben, Python-Code zu generieren und auszuführen. Das bedeutet, sie können direkt Code schreiben, der Aktionen ausführt, anstatt sie nur in Text zu beschreiben. Dieser Ansatz hat mehrere Vorteile:
Grösserer Aktionsumfang: Durch die Verwendung von Python können LLMs auf viele vorhandene Softwarepakete zugreifen, was ihnen mehr Werkzeuge gibt.
Dynamische Anpassungen: Wenn LLMs Code generieren, können sie auf neue Informationen reagieren und ihre Aktionen spontan anpassen. Das ist entscheidend für Komplexe Aufgaben, bei denen sich die Bedingungen häufig ändern.
Bessere Kontrolle und Datenmanagement: Python-Code kann Daten und Steuerflüsse viel besser handhaben als Text oder JSON. Dadurch können LLMs Variablen verwenden, um Informationen zu speichern und komplexere Entscheidungen zu treffen.
Testen der neuen Methode
Wir haben Tests mit 17 verschiedenen LLMs durchgeführt, um zu sehen, wie gut sie mit diesem neuen Ansatz abschneiden. Wir haben ein spezielles Set von Benchmarks verwendet, um zu messen, wie effektiv sie Aufgaben abschliessen konnten. Die Ergebnisse waren vielversprechend und zeigten, dass LLMs, die ausführbaren Code verwenden, deutlich besser abschnitten als diejenigen, die sich auf Text oder JSON verliessen.
Erstellung eines Open-Source-LLM-Agenten
Ermutigt durch diese Ergebnisse arbeiten wir daran, einen Open-Source-LLM-Agenten zu erstellen, der diesen Ansatz nutzt. Dieser Agent wird in der Lage sein, mit Benutzern in natürlicher Sprache zu interagieren und gleichzeitig Python-Code auszuführen, um Aufgaben zu erledigen.
Erstellung eines Datensatzes für die Instruktionstuning
Um unseren LLM-Agenten effektiv zu trainieren, haben wir einen grossen Datensatz mit verschiedenen Multi-Turn-Interaktionen zusammengestellt. Dieser Datensatz enthält Beispiele, bei denen LLMs ihre Leistung durch Interaktion verbessert haben. Indem wir verfeinern, wie der Agent aus diesen Interaktionen lernt, wollen wir seine Gesamtfähigkeiten verbessern.
Vergleich verschiedener Aktionsformate
Wir haben auch verglichen, wie gut der ausführbare Codeansatz im Vergleich zu traditionellen Methoden wie Text und JSON abschneidet. Bei grundlegenden Aufgaben zeigte die neue Methode eine vergleichbare Leistung. In komplexeren Szenarien wurden jedoch die Vorteile der Codeausführung deutlich, wobei der neue Ansatz zu höheren Erfolgsquoten führte und weniger Versuche benötigte, um eine Lösung zu finden.
Anwendungen in realen Aufgaben
Die Fähigkeit, Python-Code zu generieren und auszuführen, ermöglicht es LLMs, reale Aufgaben effektiver anzugehen. Beispiele sind die Nutzung von APIs zur Datenabfrage, die Steuerung von Robotern oder die Verarbeitung komplexer Daten. Diese Fähigkeiten können die Produktivität in verschiedenen Bereichen, von Forschung bis Ingenieurwesen, erheblich steigern.
Zukünftige Entwicklungen
In Zukunft planen wir, uns darauf zu konzentrieren, den LLM-Agenten weiter zu verfeinern, um noch komplexere Aufgaben zu bewältigen. Wir wollen auch Benutzerfeedback einbeziehen, um ständig zu verbessern, wie der Agent funktioniert. Sicherzustellen, dass der Agent benutzerfreundlich bleibt und gleichzeitig leistungsfähig genug ist, um Aufgaben effizient auszuführen, hat oberste Priorität.
Fazit
Die Integration von ausführbarem Code in LLM-Agenten stellt einen bedeutenden Fortschritt in ihren Fähigkeiten dar. Indem wir diesen Modellen erlauben, Python-Code zu generieren und auszuführen, eröffnen wir neue Möglichkeiten, wie sie Benutzern helfen und Probleme auf innovative Weise lösen können. Die Ergebnisse unserer Tests und die Entwicklung eines Open-Source-LLM-Agenten sind nur der Anfang von dem, was wir für einen fruchtbaren Weg halten, um effektivere und vielseitigere Sprachmodelle zu entwickeln.
Titel: Executable Code Actions Elicit Better LLM Agents
Zusammenfassung: Large Language Model (LLM) agents, capable of performing a broad range of actions, such as invoking tools and controlling robots, show great potential in tackling real-world challenges. LLM agents are typically prompted to produce actions by generating JSON or text in a pre-defined format, which is usually limited by constrained action space (e.g., the scope of pre-defined tools) and restricted flexibility (e.g., inability to compose multiple tools). This work proposes to use executable Python code to consolidate LLM agents' actions into a unified action space (CodeAct). Integrated with a Python interpreter, CodeAct can execute code actions and dynamically revise prior actions or emit new actions upon new observations through multi-turn interactions. Our extensive analysis of 17 LLMs on API-Bank and a newly curated benchmark shows that CodeAct outperforms widely used alternatives (up to 20% higher success rate). The encouraging performance of CodeAct motivates us to build an open-source LLM agent that interacts with environments by executing interpretable code and collaborates with users using natural language. To this end, we collect an instruction-tuning dataset CodeActInstruct that consists of 7k multi-turn interactions using CodeAct. We show that it can be used with existing data to improve models in agent-oriented tasks without compromising their general capability. CodeActAgent, finetuned from Llama2 and Mistral, is integrated with Python interpreter and uniquely tailored to perform sophisticated tasks (e.g., model training) using existing libraries and autonomously self-debug.
Autoren: Xingyao Wang, Yangyi Chen, Lifan Yuan, Yizhe Zhang, Yunzhu Li, Hao Peng, Heng Ji
Letzte Aktualisierung: 2024-06-06 00:00:00
Sprache: English
Quell-URL: https://arxiv.org/abs/2402.01030
Quell-PDF: https://arxiv.org/pdf/2402.01030
Lizenz: https://creativecommons.org/licenses/by/4.0/
Änderungen: Diese Zusammenfassung wurde mit Unterstützung von AI erstellt und kann Ungenauigkeiten enthalten. Genaue Informationen entnehmen Sie bitte den hier verlinkten Originaldokumenten.
Vielen Dank an arxiv für die Nutzung seiner Open-Access-Interoperabilität.
Referenz Links
- https://pypi.org/
- https://docs.python.org/3/tutorial/errors.html
- https://chat.xwang.dev/r/Vqn108G
- https://docs.python.org/3/library/sqlite3.html
- https://pandas.pydata.org/
- https://beta.openai.com/
- https://www.anthropic.com/
- https://github.com/xingyaoww/code-act
- https://github.com/openai/openai-python/blob/release-v0.28.0/chatml.md
- https://tex.stackexchange.com/questions/17734/cannot-determine-size-of-graphic