Vicuna: un chatbot open source che impressiona GPT-4 con una qualità ChatGPT del 90%*
Panoramica
Il rapido avanzamento dei modelli linguistici di grandi dimensioni (LLM) ha rivoluzionato i sistemi di chatbot, dando vita a soluzioni senza precedenti livelli di intelligenza visti nel ChatGPT di OpenAI. Tuttavia, nonostante le sue prestazioni impressionanti, i dettagli sulla formazione e sull’architettura di ChatGPT rimangono poco chiari, ostacolando la ricerca e l’innovazione open source in questo campo. Ispirandoci al progetto Meta LLaMA e Stanford Alpaca, presentiamo Vicuna-13B, un chatbot open source supportato da un set di dati avanzato e da un'infrastruttura scalabile e facile da usare. Perfezionando un modello base LLaMA sulle conversazioni condivise dagli utenti raccolte da ShareGPT.com, Vicuna-13B ha dimostrato prestazioni competitive rispetto ad altri modelli open source come Stanford Alpaca. Questo post del blog fornisce una valutazione preliminare delle prestazioni di Vicuna-13B e ne descrive l'addestramento e l'infrastruttura di servizio. Invitiamo inoltre la community a interagire con la nostra demo online per testare le capacità di questo chatbot.
Quanto è buono Vicuna?
Dopo aver perfezionato Vicuna con 70.000 conversazioni ChatGPT condivise dagli utenti, scopriamo che Vicuna diventa capace di generare risposte più dettagliate e ben strutturate rispetto ad Alpaca (vedi esempi sotto), con una qualità pari a ChatGPT.
Demo online
Prova qui la demo di Vicuna-13B!
Formazione
Vicuna viene creata mettendo a punto un modello base LLaMA utilizzando circa 70.000 conversazioni condivise dagli utenti raccolte da ShareGPT.com con API pubbliche. Per garantire la qualità dei dati, riconvertiamo l'HTML in markdown e filtriamo alcuni campioni inappropriati o di bassa qualità. Inoltre, dividiamo le conversazioni lunghe in segmenti più piccoli che si adattano alla lunghezza massima del contesto del modello.
- Conversazioni a più turni: adattiamo la perdita di addestramento per tenere conto delle conversazioni a più turni e calcoliamo la perdita di regolazione esclusivamente sul output del chatbot.
- Ottimizzazioni della memoria: per consentire la comprensione di Vicuna del contesto lungo, espandiamo la lunghezza massima del contesto da 512 in alpaca a 2048, il che aumenta sostanzialmente i requisiti di memoria della GPU. Affrontiamo la pressione della memoria utilizzando il checkpoint gradiente e l'attenzione flash.
- Riduzione dei costi tramite istanza Spot: il set di dati 40 volte più grande e la lunghezza della sequenza 4 volte superiore per la formazione rappresentano una sfida considerevole in termini di spese di formazione. Utilizziamo lo spot gestito da SkyPilot per ridurre i costi sfruttando le istanze spot più economiche con ripristino automatico per prelazioni e cambio automatico di zona. Questa soluzione riduce i costi di formazione del modello 7B da circa 140 e del modello 13B da circa 300.
Serving
Costruiamo un sistema di serveggio in grado di servire più modelli con distribuzione distribuita lavoratori. Supporta il plug-in flessibile dei GPU Worker sia dai cluster on-premise che dal cloud. Utilizzando un controller con tolleranza agli errori e una funzionalità spot gestita in SkyPilot, questo sistema di servizio può funzionare bene con istanze spot più economiche da più cloud per ridurre i costi di servizio. Attualmente si tratta di un'implementazione leggera e stiamo lavorando per integrare al suo interno le nostre ultime ricerche.
Come valutare un chatbot?
Valutare i chatbot IA è un compito impegnativo, poiché richiede l'esame della comprensione del linguaggio, del ragionamento, e consapevolezza del contesto. Con i chatbot IA sempre più avanzati, gli attuali benchmark aperti potrebbero non essere più sufficienti. Ad esempio, il set di dati di valutazione utilizzato nell’Alpaca di Stanford, auto-istruito, può ricevere una risposta efficace dai chatbot SOTA, rendendo difficile per gli esseri umani discernere le differenze nelle prestazioni. Ulteriori limitazioni includono la contaminazione dei dati di formazione/test e il costo potenzialmente elevato della creazione di nuovi benchmark. Per affrontare questi problemi, proponiamo un quadro di valutazione basato su GPT-4 per automatizzare la valutazione delle prestazioni dei chatbot.
Limitazioni
Abbiamo notato che, analogamente ad altri modelli linguistici di grandi dimensioni, Vicuna presenta alcune limitazioni. Ad esempio, non è bravo in compiti che coinvolgono il ragionamento o la matematica e potrebbe avere limitazioni nell’identificarsi accuratamente o nel garantire l’accuratezza fattuale dei suoi risultati. Inoltre, non è stato sufficientemente ottimizzato per garantire la sicurezza o mitigare potenziali tossicità o bias. Per risolvere i problemi di sicurezza, utilizziamo l'API di moderazione OpenAI per filtrare gli input inappropriati degli utenti nella nostra demo online. Ciononostante, prevediamo che Vicuna possa fungere da punto di partenza aperto per la ricerca futura volta ad affrontare queste limitazioni.
Rilascio
Nel nostro primo rilascio, condivideremo il codice di formazione, pubblicazione e valutazione su un repository GitHub: https://github.com/lm-sys/FastChat. Abbiamo anche rilasciato i pesi del modello Vicuna-13B. Non è previsto il rilascio del set di dati. Unisciti al nostro server Discord e segui il nostro Twitter per ricevere gli ultimi aggiornamenti.
Quanto è buona Vicuna?
Dopo aver perfezionato Vicuna con 70.000 conversazioni ChatGPT condivise dagli utenti, scopriamo che Vicuna diventa in grado di generare risposte più dettagliate e ben strutturate rispetto ad Alpaca (vedi esempi di seguito ), con una qualità paragonabile a ChatGPT.
Demo online
Prova la demo di Vicuna-13B
qui< /a>!
Panoramica
Il rapido progresso dei modelli linguistici di grandi dimensioni (LLM) ha rivoluzionato i sistemi di chatbot, determinando livelli di intelligenza senza precedenti, come osservato nel ChatGPT di OpenAI. Tuttavia, nonostante le sue prestazioni impressionanti, i dettagli sulla formazione e sull’architettura di ChatGPT rimangono poco chiari, ostacolando la ricerca e l’innovazione open source in questo campo. Ispirandoci al progetto Meta LLaMA e Stanford Alpaca, presentiamo Vicuna-13B, un chatbot open source supportato da un set di dati avanzato e da un'infrastruttura scalabile e facile da usare. Perfezionando un modello base LLaMA sulle conversazioni condivise dagli utenti raccolte da ShareGPT.com, Vicuna-13B ha dimostrato prestazioni competitive rispetto ad altri modelli open source come Stanford Alpaca. Questo post del blog fornisce una valutazione preliminare delle prestazioni di Vicuna-13B e ne descrive l'addestramento e l'infrastruttura di servizio. Invitiamo inoltre la community a interagire con la nostra demo online per testare le capacità di questo chatbot.
Formazione
Vicuna viene creato mettendo a punto un modello base LLaMA utilizzando circa 70.000 utenti. conversazioni condivise raccolte da ShareGPT.com con API pubbliche. Per garantire la qualità dei dati, riconvertiamo l'HTML in markdown e filtriamo alcuni campioni inappropriati o di bassa qualità. Inoltre, dividiamo le conversazioni lunghe in segmenti più piccoli che si adattano alla lunghezza massima del contesto del modello.
Servizio
Costruiamo un sistema di servizio in grado di servire più modelli con lavoratori distribuiti. Supporta il plug-in flessibile dei GPU Worker sia dai cluster on-premise che dal cloud. Utilizzando un controller con tolleranza agli errori e una funzionalità spot gestita in SkyPilot, questo sistema di servizio può funzionare bene con istanze spot più economiche da più cloud per ridurre i costi di servizio. Attualmente si tratta di un'implementazione leggera e stiamo lavorando per integrare al suo interno ulteriori
ricerche
più recenti.
Come Valutare un chatbot?
Valutare i chatbot IA è un compito impegnativo, poiché richiede l'esame della comprensione del linguaggio, del ragionamento e della consapevolezza del contesto. Con i chatbot IA sempre più avanzati, gli attuali benchmark aperti potrebbero non essere più sufficienti. Ad esempio, al set di dati di valutazione utilizzato nell'Alpaca di Stanford,
auto-istruzione, si può rispondere in modo efficace tramite SOTA chatbot, rendendo difficile per gli esseri umani discernere le differenze nelle prestazioni. Ulteriori limitazioni includono la contaminazione dei dati di formazione/test e il costo potenzialmente elevato della creazione di nuovi benchmark. Per affrontare questi problemi, proponiamo un quadro di valutazione basato su GPT-4 per automatizzare la valutazione delle prestazioni dei chatbot.
Limitazioni
Abbiamo notato che, analogamente ad altri grandi modelli linguistici, Vicuna ha alcune limitazioni. Ad esempio, non è bravo in compiti che coinvolgono il ragionamento o la matematica e potrebbe avere limitazioni nell’identificarsi accuratamente o nel garantire l’accuratezza fattuale dei suoi risultati. Inoltre, non è stato sufficientemente ottimizzato per garantire la sicurezza o mitigare potenziali tossicità o bias. Per risolvere i problemi di sicurezza, utilizziamo l'API di
moderazione
OpenAI per filtrare gli input inappropriati degli utenti nella nostra demo online . Ciononostante, prevediamo che Vicuna possa fungere da punto di partenza aperto per la ricerca futura volta ad affrontare queste limitazioni.