API Pack: Un Nuevo Conjunto de Datos para Desarrolladores
API Pack simplifica la generación de llamadas API para modelos de lenguaje, ayudando mucho a los desarrolladores.
― 4 minilectura
Tabla de contenidos
API Pack es un conjunto de datos diseñado para ayudar a los grandes modelos de lenguaje (LLMs) a generar llamadas API en varios Lenguajes de programación. Contiene más de un millón de pares de Instrucciones y llamadas API. Nuestro objetivo es mejorar la forma en que estos modelos pueden generar código que interactúe con APIs, facilitando a los desarrolladores conseguir el código correcto que necesitan.
¿Por qué API Pack?
Los desarrolladores pasan mucho tiempo buscando ejemplos de API en la documentación o en varios sitios web. Encontrar información relevante puede ser lento y frustrante. API Pack busca simplificar esto permitiendo que los modelos generen rápidamente llamadas API basadas en indicaciones en lenguaje natural.
Características Clave de API Pack
- Gran Conjunto de Datos: Con más de un millón de instancias, API Pack es el conjunto de datos de código abierto más grande para este propósito.
- Multilingüe: Incluye ejemplos en diez lenguajes de programación, permitiendo a los desarrolladores trabajar con APIs en diferentes entornos.
- Enfoque en Llamadas API: El conjunto de datos está diseñado específicamente para enseñar a los modelos cómo identificar y generar las llamadas API correctas según las instrucciones del usuario.
Cómo Funciona API Pack
El conjunto de datos consiste en pares de instrucciones de usuario y llamadas API correspondientes. Las instrucciones están escritas en un formato de lenguaje natural, mientras que las llamadas API son fragmentos de código en varios lenguajes de programación. Por ejemplo, un usuario podría preguntar cómo usar una API específica, y el modelo respondería con el código apropiado.
Etapas de Creación
- Recolección de datos: Recolectamos información de API de múltiples fuentes que proporcionan archivos de especificación OpenAPI.
- Filtrado: Filtramos datos de baja calidad para asegurar que el conjunto de datos esté compuesto solo por llamadas API válidas.
- Generación de Instrucciones: Usando varias plantillas, creamos instrucciones que explican cómo usar cada llamada API.
- Validación: Cada par de instrucciones y llamadas API fue revisado por calidad para asegurarnos de que fueran precisos y útiles.
Experimentación y Resultados
Realizamos varios experimentos para probar la efectividad de API Pack. Aquí van algunos hallazgos clave:
- Ajuste Fino con Datos Limitados: Ajustamos un modelo llamado CodeLlama-13B usando solo 20,000 ejemplos y descubrimos que superó a otros modelos como GPT-3.5 y GPT-4 en la generación de llamadas API para nuevas APIs.
- Efecto del Tamaño del Conjunto de Datos: Aumentar el tamaño del conjunto de datos a 100,000 instancias mejoró la capacidad del modelo para manejar nuevas APIs que no había visto durante el entrenamiento.
- Rendimiento Multilingüe: El modelo pudo generar llamadas API en múltiples lenguajes sin necesitar grandes cantidades de datos de cada uno. Una menor cantidad de datos de varios idiomas funcionó bien.
Aspectos Destacados de los Experimentos
- CodeLlama-13B mostró más del 10% de precisión mejor que GPT-3.5 y más del 5% mejor que GPT-4 al generar llamadas API no vistas.
- Usar 100,000 ejemplos mejoró significativamente el rendimiento del modelo en nuevas APIs.
- La generación cruzada de idiomas fue exitosa, requiriendo principalmente un idioma principal y un poco de datos de otros.
Conjuntos de datos Existentes
Trabajando conTambién probamos qué tan bien funciona API Pack cuando se combina con otros conjuntos de datos de instrucciones. Los resultados mostraron que integrar API Pack mejoró la generación de llamadas API sin afectar negativamente las tareas de codificación generales.
Conclusión
API Pack es un recurso valioso para aumentar la capacidad de los modelos de lenguaje en la generación de llamadas API. Al usar este conjunto de datos, los modelos pueden responder mejor a las necesidades de los desarrolladores, acelerando el proceso de recuperación y uso de APIs.
Trabajo Futuro
Planeamos explorar más mejoras, como:
- Clasificación de API Más Amplia: Hacer más fácil para los modelos interpretar consultas incompletas sin necesidad del nombre exacto de la API.
- Inclusión de Argumentos: Añadir APIs que incluyan argumentos para ejemplos de código más realistas.
- Escenarios de Múltiples Pasos: Incluir secuencias complejas de múltiples llamadas API para mejorar la comprensión del modelo sobre aplicaciones del mundo real.
API Pack tiene potencial para mejorar la productividad en el desarrollo de software, pero necesitamos abordar los desafíos que enfrenta para maximizar su potencial.
Título: API Pack: A Massive Multi-Programming Language Dataset for API Call Generation
Resumen: We introduce API Pack, a massive multi-programming language dataset containing more than 1 million instruction-API call pairs to improve the API call generation capabilities of large language models. By fine-tuning CodeLlama-13B on 20,000 Python instances from API Pack, we enable it to outperform GPT-3.5 and GPT-4 in generating unseen API calls. Fine-tuning on API Pack also facilitates cross-programming language generalization by leveraging a large amount of data in one language and small amounts of data from other languages. Scaling the training data to 1 million instances further improves the model's ability to generalize to new APIs not used in training. To facilitate further research, we open-source the API Pack dataset, trained model, and associated source code at https://github.com/zguo0525/API-Pack.
Autores: Zhen Guo, Adriana Meza Soria, Wei Sun, Yikang Shen, Rameswar Panda
Última actualización: 2024-06-03 00:00:00
Idioma: English
Fuente URL: https://arxiv.org/abs/2402.09615
Fuente PDF: https://arxiv.org/pdf/2402.09615
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.
Enlaces de referencia
- https://rapidapi.com/categories
- https://apis.guru/
- https://app.swaggerhub.com/search
- https://www.npmjs.com/package/openapi-snippet
- https://github.com/swagger-api/swagger-codegen
- https://www.sphinx-doc.org/en/master/
- https://github.com/dotnet/docfx
- https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2
- https://paltest.adyen.com/pal/servlet/BinLookup/v40/get3dsAvailability
- https://github.com/thunlp/UltraChat
- https://ctan.org/pkg/amssymb
- https://ctan.org/pkg/pifont
- https://www.github.com/
- https://github.com/zguo0525/API-Pack