Simple Science

Ciencia de vanguardia explicada de forma sencilla

# Informática# Computación y lenguaje# Inteligencia artificial

Mejorando las capacidades de LLM con código Python ejecutable

Un nuevo enfoque mejora los LLMs al integrar código Python ejecutable para manejar mejor las acciones.

― 4 minilectura


LLMs mejorados con códigoLLMs mejorados con códigoPythoncomplejas.rendimiento de los LLM para tareasIntegrar código de Python mejora el
Tabla de contenidos

Los Modelos de Lenguaje Grande (LLMs) están mejorando en hacer varias tareas, desde responder preguntas hasta controlar máquinas. Estos modelos pueden realizar muchas acciones que ayudan a resolver problemas del mundo real. Sin embargo, todavía hay algunas limitaciones en la forma en que manejan las acciones.

Desafíos con los Formatos de Acción Actuales

Actualmente, los agentes LLM suelen recibir instrucciones para producir acciones usando texto o formatos JSON. Aunque estos métodos funcionan, tienen algunos problemas. Los principales problemas incluyen un rango limitado de acciones y la dificultad de combinar múltiples acciones en una. Esto hace que sea complicado para los LLM adaptarse a nuevas situaciones o tareas.

Un Nuevo Enfoque: Usar Código Python Ejecutable

Proponemos una nueva forma de manejar acciones permitiendo que los agentes LLM generen y ejecuten código Python. Esto significa que pueden escribir código que realice acciones directamente en lugar de solo describirlas en texto. Este enfoque tiene varias ventajas:

  1. Mayor Rango de Acciones: Al usar Python, los LLM pueden acceder a muchos paquetes de software existentes, lo que les da más herramientas para trabajar.

  2. Ajustes Dinámicos: Cuando los LLM generan código, pueden reaccionar a nueva información y adaptar sus acciones al instante. Esto es crucial en Tareas Complejas donde las condiciones cambian a menudo.

  3. Mejor Control y Gestión de Datos: El código Python puede manejar datos y flujos de control mucho mejor que el texto o JSON. Esto permite que los LLM usen variables para almacenar información y tomar decisiones más complejas.

Probando el Nuevo Método

Realizamos pruebas usando 17 LLM diferentes para ver qué tal funcionaban con este nuevo enfoque. Usamos un conjunto especial de benchmarks para medir cuán efectivamente podían completar tareas. Los resultados fueron prometedores, mostrando que los LLM que usaban código ejecutable funcionaron significativamente mejor que los que dependían de texto o JSON.

Creando un Agente LLM de Código Abierto

Animados por estos resultados, estamos trabajando para crear un agente LLM de código abierto que utilice este enfoque. Este agente podrá interactuar con los usuarios en lenguaje natural mientras también ejecuta código Python para realizar tareas.

Construyendo un Conjunto de Datos para Ajuste de Instrucciones

Para entrenar a nuestro agente LLM de manera efectiva, recopilamos un gran conjunto de datos que consiste en varias interacciones de múltiples turnos. Este conjunto de datos incluye ejemplos donde los LLM mejoraron su rendimiento a través de la interacción. Al refinar cómo el agente aprende de estas interacciones, buscamos mejorar sus capacidades generales.

Comparando Diferentes Formatos de Acción

También comparamos qué tan bien funcionó el enfoque de código ejecutable frente a métodos tradicionales como texto y JSON. En tareas básicas, el nuevo método mostró un rendimiento comparable. Sin embargo, en escenarios más complejos, las ventajas de la ejecución de código se hicieron evidentes, con el nuevo enfoque llevando a tasas de éxito más altas y requiriendo menos intentos para llegar a una solución.

Aplicaciones en Tareas del Mundo Real

La capacidad de generar y ejecutar código Python permite a los LLM abordar tareas del mundo real de manera más efectiva. Ejemplos incluyen el uso de APIs para recuperación de datos, controlar robots o procesar datos complejos. Estas capacidades pueden mejorar enormemente la productividad en varios campos, desde la investigación hasta la ingeniería.

Desarrollos Futuros

De cara al futuro, planeamos centrarnos en refinar aún más el agente LLM para manejar tareas aún más complejas. También buscamos incorporar la retroalimentación de los usuarios para mejorar continuamente cómo funciona el agente. Asegurar que el agente siga siendo amigable para el usuario mientras es poderoso suficiente para ejecutar tareas de manera eficiente es una de nuestras principales prioridades.

Conclusión

La integración de código ejecutable en los agentes LLM marca un paso significativo en sus capacidades. Al permitir que estos modelos generen y ejecuten código Python, abrimos nuevas posibilidades sobre cómo pueden ayudar a los usuarios y resolver problemas de maneras innovadoras. Los resultados de nuestras pruebas y el desarrollo de un agente LLM de código abierto son solo el comienzo de lo que creemos será un camino fructífero hacia la construcción de modelos de lenguaje más efectivos y versátiles.

Fuente original

Título: Executable Code Actions Elicit Better LLM Agents

Resumen: 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.

Autores: Xingyao Wang, Yangyi Chen, Lifan Yuan, Yizhe Zhang, Yunzhu Li, Hao Peng, Heng Ji

Última actualización: 2024-06-06 00:00:00

Idioma: English

Fuente URL: https://arxiv.org/abs/2402.01030

Fuente PDF: https://arxiv.org/pdf/2402.01030

Licencia: https://creativecommons.org/licenses/by/4.0/

Cambios: Este resumen se ha elaborado con la ayuda de AI y puede contener imprecisiones. Para obtener información precisa, consulte los documentos originales enlazados aquí.

Gracias a arxiv por el uso de su interoperabilidad de acceso abierto.

Más de autores

Artículos similares