Skip to content
TinyAgent: Llamada de funciones en el borde para modelos pequeños
Source: bair.berkeley.edu

TinyAgent: Llamada de funciones en el borde para modelos pequeños

Sources: http://bair.berkeley.edu/blog/2024/05/29/tiny-agent, bair.berkeley.edu

TL;DR

  • TinyAgent demuestra que los modelos de lenguaje pequeños (SLMs) pueden realizar llamadas de función precisas y orquestar herramientas para ejecución en el borde, sin depender de la inferencia en la nube.
  • El enfoque utiliza un conjunto de datos de alta calidad, curado específicamente, y ajuste fino para enseñar al modelo a planificar y ejecutar llamadas de función en lugar de memorizar conocimientos generales.
  • Un nuevo método Tool RAG (recuperación-augmented generation) mejora aún la eficiencia y el rendimiento, permitiendo respuestas en tiempo real en el borde.
  • TinyAgent-1B funciona con Whisper-v3 en un MacBook M3 Pro, y el proyecto es de código abierto en el repositorio de GitHub de los autores.
  • El conjunto de datos comprende 80.000 ejemplos de entrenamiento, más 1.000 de validación y 1.000 de pruebas, con un costo estimado de alrededor de 500 USD.

Contexto y antecedentes

Los grandes modelos de lenguaje han mostrado que las órdenes en lenguaje natural pueden activar herramientas para realizar tareas. Esto ha impulsado sistemas de agentes que encadenan APIs y scripts. Sin embargo, los modelos más grandes, a menudo alojados en la nube, presentan retos de privacidad, conectividad y latencia. Enviar datos a la nube puede plantear preocupaciones de privacidad y depender de cloud/Wi‑Fi puede ser problemático para implementaciones reales. La ejecución en borde ofrece IA privada y receptiva, pero los modelos grandes actuales son demasiado pesados para ejecutarse localmente. Parte del problema es que gran parte del tamaño del modelo se debe a la memorización de conocimiento general, lo cual no siempre es necesario para tareas especializadas. ¿Puede un modelo pequeño aprender a llamar funciones y orquestar tareas sin depender de una memoria amplia del mundo? Esta investigación propone que sí, al centrarse en la llamada de funciones como capacidad principal. TinyAgent El trabajo también se enfoca en sistemas semánticos donde el objetivo es entender la consulta del usuario y orquestar scripts y APIs predefinidos para lograr la tarea, en lugar de generar respuestas textuales tipo ChatGPT. TinyAgent

Novedades y detalles de implementación

  • TinyAgent-1B es un asistente capaz de interactuar con 16 funciones diferentes en macOS, que pueden manipular aplicaciones mediante scripts de Apple predefinidos y APIs. El modelo debe aprender a generar un plan de llamadas y a proporcionar los argumentos correctos, respetando las dependencias entre tareas. TinyAgent
  • El estudio demuestra que modelos pequeños listos para usar (p. ej., TinyLLaMA-1.1B) tienen dificultades para generar planes correctos. La solución consiste en curar un conjunto de datos de alta calidad para llamadas de función y planificación y luego ajustar finamente el modelo, con el potencial de superar a modelos más grandes en esta tarea. TinyAgent
  • La generación de datos utiliza un LLM poderoso (GPT-4-Turbo) para crear consultas de usuario realistas condicionadas a un conjunto de funciones, junto con el plan de llamadas y los argumentos. Se realizan comprobaciones de coherencia para garantizar que el plan sea factible y que los nombres de las funciones y los tipos de entrada sean correctos. El conjunto resultante es de 80,000 entrenamientos, 1,000 validaciones y 1,000 pruebas, con un costo de alrededor de US$500. TinyAgent
  • Tool RAG es un método para mejorar la eficiencia y el rendimiento de las implementaciones en borde, permitiendo respuestas en tiempo real. TinyAgent
  • Una demostración muestra TinyAgent-1B y Whisper-v3 funcionando localmente en un MacBook M3 Pro. El marco es de código abierto y está disponible en https://github.com/SqueezeAILab/TinyAgent. TinyAgent

Detalles técnicos o implementación

  • Arquitectura: la idea central es que el LLM emita un plan de llamadas de funciones, enumerando qué funciones invocar, sus argumentos y las dependencias entre ellas. El plan se analiza y se ejecuta en el orden correcto según las dependencias. Las funciones y APIs son predefinidas en el dispositivo anfitrión; el modelo no necesita generar definiciones de función. TinyAgent
  • Modelo y estrategia de datos: los modelos pequeños listos para usar muestran capacidades limitadas para generar planes de llamadas. Se aborda esto mediante una recopilación de datos centrada en la tarea y un ajuste fino para aprender a generar planes precisos. TinyAgent
  • Generación y validación de datos: los datos se generan pidiendo a un LLM (GPT-4-Turbo) que cree consultas de usuario realistas condicionadas a un conjunto de funciones, junto con el plan de llamadas y argumentos. Se aplican chequeos de coherencia. El conjunto citado incluye 80,000 entrenamientos, 1,000 validaciones y 1,000 pruebas, con un costo de ~US$500. TinyAgent
  • Tool RAG: método de recuperación-para-generación para mejorar la eficiencia en bordes. TinyAgent
  • Demostración: TinyAgent-1B y Whisper-v3 funcionando localmente en un MacBook M3 Pro. El proyecto es de código abierto y disponible en https://github.com/SqueezeAILab/TinyAgent. TinyAgent

Tabla de dataset (divisiones)

DivisiónTamaño
Entrenamiento80,000
Validación1,000
Pruebas1,000
  • La métrica Graph Isomorphism Success Rate evalúa si el grafo de dependencias generado es isomorfo al grafo de referencia. TinyAgent

Puntos clave

  • Los modelos de lenguaje pequeños pueden ser guiados para realizar llamadas de función complejas con datos específicos de tarea y ajuste fino.
  • Planificación y orquestación basadas en tareas permiten que SLMs compitan con modelos más grandes en la tarea de llamada de función en entornos en borde.
  • Un pipeline de datos sólido, verificaciones de coherencia y una evaluación basada en grafos son cruciales para agentes confiables en borde.
  • Métodos como Tool RAG pueden mejorar la eficiencia y permitir respuestas en tiempo real en el dispositivo.
  • El proyecto TinyAgent es de código abierto y pensado para despliegues prácticos en hardware de consumo. TinyAgent

FAQ

Referencias

More news