Pacote de API: Um Novo Conjunto de Dados para Desenvolvedores
O API Pack facilita a geração de chamadas de API para modelos de linguagem, ajudando muito os desenvolvedores.
― 4 min ler
Índice
API Pack é um conjunto de dados feito pra ajudar modelos de linguagem grandes (LLMs) a gerar Chamadas de API em várias Linguagens de Programação. Ele tem mais de um milhão de pares de Instruções e chamadas de API. Nossa meta é melhorar a forma como esses modelos conseguem gerar código que interage com APIs, facilitando pra galera de desenvolvimento encontrar o código certo que eles precisam.
Por que API Pack?
Os desenvolvedores gastam muito tempo procurando exemplos de API na documentação ou em vários sites. Encontrar informações relevantes pode ser demorado e frustrante. O API Pack tem a intenção de simplificar tudo isso, permitindo que os modelos gerem chamadas de API rapidamente com base em comandos em linguagem natural.
Principais Funcionalidades do API Pack
- Conjunto de Dados Grande: Com mais de um milhão de instâncias, o API Pack é o maior conjunto de dados open-source pra esse propósito.
- Multilíngue: Inclui exemplos em dez linguagens de programação, permitindo que os desenvolvedores trabalhem com APIs em diferentes ambientes.
- Foco nas Chamadas de API: O conjunto de dados é feito especificamente para ensinar os modelos a identificar e gerar as chamadas de API corretas baseadas nas instruções do usuário.
Como Funciona o API Pack
O conjunto de dados consiste em pares de instruções do usuário e chamadas de API correspondentes. As instruções são escritas em um formato de linguagem natural, enquanto as chamadas de API são trechos de código em várias linguagens de programação. Por exemplo, um usuário pode perguntar como usar uma API específica, e o modelo responderia com o código apropriado.
Etapas de Criação
- Coleta de Dados: Nós reunimos informações de API de várias fontes que fornecem arquivos de especificação OpenAPI.
- Filtragem: Filtramos os dados de baixa qualidade pra garantir que o conjunto só tenha chamadas de API válidas.
- Geração de Instruções: Usando vários templates, criamos instruções que explicam como usar cada chamada de API.
- Validação: Cada par de instrução e chamada de API foi checado pela qualidade pra garantir que eram precisos e úteis.
Experimentação e Resultados
Fizemos várias experiências pra testar a eficácia do API Pack. Aqui estão alguns achados chave:
- Ajuste Fino com Dados Limitados: Nós ajustamos um modelo chamado CodeLlama-13B usando só 20.000 exemplos e percebemos que ele superou outros modelos como GPT-3.5 e GPT-4 na geração de chamadas de API pra novas APIs.
- Efeito do Tamanho do Conjunto de Dados: Aumentar o tamanho do conjunto pra 100.000 instâncias melhorou a capacidade do modelo de lidar com novas APIs que não foram vistas durante o treinamento.
- Desempenho Interlinguagem: O modelo conseguiu gerar chamadas de API em várias linguagens sem precisar de grandes quantidades de dados pra cada uma. Uma quantidade menor de dados de várias línguas funcionou bem.
Destaques das Experiências
- O CodeLlama-13B mostrou mais de 10% de precisão a mais que o GPT-3.5 e mais de 5% a mais que o GPT-4 ao gerar chamadas de API não vistas.
- Usar 100.000 exemplos melhorou significativamente o desempenho do modelo em novas APIs.
- A geração cross-lingual foi bem-sucedida, precisando principalmente de uma língua principal e um pouco de dados de outras.
Conjuntos de dados Existentes
Trabalhando comTambém testamos como o API Pack se sai quando combinado com outros conjuntos de dados de instrução. Os resultados mostraram que integrar o API Pack melhorou a geração de chamadas de API sem afetar negativamente as tarefas gerais de codificação.
Conclusão
O API Pack é um recurso valioso pra aumentar a capacidade dos modelos de linguagem em gerar chamadas de API. Usando esse conjunto de dados, os modelos conseguem responder melhor às necessidades dos desenvolvedores, acelerando o processo de encontrar e usar APIs.
Trabalho Futuro
A gente planeja explorar melhorias adicionais, como:
- Classificação de API Mais Ampla: Facilitando a interpretação de consultas incompletas pelos modelos sem precisar do nome exato da API.
- Inclusão de Argumentos: Adicionando APIs que incluem argumentos pra exemplos de código mais realistas.
- Cenários Multi-Etapas: Incluindo sequências complexas de múltiplas chamadas de API pra melhorar a compreensão do modelo em aplicações do mundo real.
O API Pack tem potencial pra melhorar a produtividade no desenvolvimento de software, mas precisamos enfrentar os desafios que ele enfrenta pra maximizar seu potencial.
Título: API Pack: A Massive Multi-Programming Language Dataset for API Call Generation
Resumo: 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 atualização: 2024-06-03 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2402.09615
Fonte PDF: https://arxiv.org/pdf/2402.09615
Licença: https://creativecommons.org/licenses/by/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.
Ligações de referência
- 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