API Pack: Un Nuovo Dataset per Sviluppatori
API Pack semplifica la generazione di chiamate API per i modelli di linguaggio, aiutando notevolmente gli sviluppatori.
― 4 leggere min
Indice
API Pack è un dataset progettato per aiutare i grandi modelli linguistici (LLM) a generare Chiamate API in diversi Linguaggi di programmazione. Contiene oltre un milione di coppie di Istruzioni e chiamate API. Il nostro obiettivo è migliorare il modo in cui questi modelli possono generare codice che interagisce con le API, rendendo più facile per gli sviluppatori ottenere il codice corretto di cui hanno bisogno.
Perché API Pack?
Gli sviluppatori passano molto tempo a cercare esempi di API nella documentazione o su vari siti web. Trovare informazioni rilevanti può essere lento e frustrante. API Pack punta a semplificare tutto questo permettendo ai modelli di generare rapidamente chiamate API basate su richieste in linguaggio naturale.
Caratteristiche principali di API Pack
- Dataset Grande: Con oltre un milione di istanze, API Pack è il più grande dataset open-source per questo scopo.
- Multilingue: Include esempi in dieci linguaggi di programmazione, permettendo agli sviluppatori di lavorare con le API in diversi ambienti.
- Focus sulle Chiamate API: Il dataset è progettato specificamente per insegnare ai modelli come identificare e generare le chiamate API corrette basate sulle istruzioni degli utenti.
Come funziona API Pack
Il dataset consiste in coppie di istruzioni degli utenti e relative chiamate API. Le istruzioni sono scritte in un formato di linguaggio naturale, mentre le chiamate API sono frammenti di codice in vari linguaggi di programmazione. Per esempio, un utente potrebbe chiedere come usare una specifica API, e il modello risponderebbe con il codice appropriato.
Fasi di Creazione
- Raccolta Dati: Abbiamo raccolto informazioni sulle API da diverse fonti che forniscono file di specifiche OpenAPI.
- Filtraggio: Abbiamo filtrato i dati di bassa qualità per assicurarci che il dataset fosse composto solo da chiamate API valide.
- Generazione Istruzioni: Utilizzando vari modelli, abbiamo creato istruzioni che spiegano come usare ogni chiamata API.
- Validazione: Ogni coppia di istruzione e chiamata API è stata controllata per qualità per assicurarci che fossero accurate e utili.
Sperimentazione e Risultati
Abbiamo condotto diversi esperimenti per testare l'efficacia di API Pack. Ecco alcuni risultati chiave:
- Fine-Tuning con Dati Limitati: Abbiamo affilato un modello chiamato CodeLlama-13B usando solo 20.000 esempi e abbiamo scoperto che ha superato altri modelli come GPT-3.5 e GPT-4 nella generazione di chiamate API per nuove API.
- Effetto della Dimensione del Dataset: Aumentare la dimensione del dataset a 100.000 istanze ha migliorato la capacità del modello di gestire nuove API non viste durante l'addestramento.
- Performance Cross-Lingua: Il modello ha potuto generare chiamate API in più lingue senza bisogno di grandi quantità di dati per ciascuna. Una quantità minore di dati da diverse lingue ha funzionato bene.
Punti Salienti dagli Esperimenti
- CodeLlama-13B ha mostrato oltre il 10% di precisione in più rispetto a GPT-3.5 e più del 5% in più rispetto a GPT-4 nella generazione di chiamate API non viste.
- Usare 100.000 esempi ha migliorato significativamente le performance del modello su nuove API.
- La generazione cross-lingua è stata un successo, richiedendo per lo più una lingua principale e un po' di dati da altre.
Lavorare con Dataset Esistenti
Abbiamo anche testato quanto bene API Pack performi quando combinato con altri dataset di istruzioni. I risultati hanno mostrato che integrare API Pack migliorava la generazione di chiamate API senza influire negativamente sulle attività generali di codifica.
Conclusione
API Pack è una risorsa preziosa per migliorare le capacità dei modelli linguistici nella generazione di chiamate API. Usando questo dataset, i modelli possono rispondere meglio alle esigenze degli sviluppatori, accelerando il processo di recupero e utilizzo delle API.
Lavori Futuri
Puntiamo a esplorare ulteriori miglioramenti, come:
- Classificazione API Più Ampia: Rendere più semplice per i modelli interpretare query incomplete senza bisogno del nome esatto dell'API.
- Inclusione di Argomenti: Aggiungere API che includono argomenti per esempi di codice più realistici.
- Scenari Multi-Step: Includere sequenze complesse di più chiamate API per migliorare la comprensione del modello sulle applicazioni reali.
API Pack ha un grande potenziale per migliorare la produttività nello sviluppo software, ma dobbiamo affrontare le sfide che incontra per massimizzarne il potenziale.
Titolo: API Pack: A Massive Multi-Programming Language Dataset for API Call Generation
Estratto: 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.
Autori: Zhen Guo, Adriana Meza Soria, Wei Sun, Yikang Shen, Rameswar Panda
Ultimo aggiornamento: 2024-06-03 00:00:00
Lingua: English
URL di origine: https://arxiv.org/abs/2402.09615
Fonte PDF: https://arxiv.org/pdf/2402.09615
Licenza: https://creativecommons.org/licenses/by/4.0/
Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.
Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.
Link di riferimento
- 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