Vicuna: een open-source chatbot die indruk maakt op GPT-4 met 90%* ChatGPT-kwaliteit
Overzicht
De snelle vooruitgang van grote taalmodellen (LLM's) heeft een revolutie teweeggebracht in chatbotsystemen, resulterend in ongekende niveaus van intelligentie zoals te zien in OpenAI's ChatGPT. Ondanks de indrukwekkende prestaties blijven de trainings- en architectuurdetails van ChatGPT echter onduidelijk, wat onderzoek en open-source-innovatie op dit gebied belemmert. Geïnspireerd door het Meta LLaMA- en Stanford Alpaca-project introduceren we Vicuna-13B, een open-source chatbot ondersteund door een verbeterde dataset en een eenvoudig te gebruiken, schaalbare infrastructuur. Door een LLaMA-basismodel te verfijnen op basis van door gebruikers gedeelde gesprekken verzameld via ShareGPT.com, heeft Vicuna-13B concurrerende prestaties laten zien in vergelijking met andere open-sourcemodellen zoals Stanford Alpaca. Deze blogpost geeft een voorlopige evaluatie van de prestaties van Vicuna-13B en beschrijft de trainings- en bedieningsinfrastructuur. We nodigen de community ook uit om te communiceren met onze online demo om de mogelijkheden van deze chatbot te testen.
Hoe goed is Vicuna?
Na het verfijnen van Vicuna met 70.000 door gebruikers gedeelde ChatGPT-gesprekken, ontdekken we dat Vicuna capabel wordt van het genereren van meer gedetailleerde en goed gestructureerde antwoorden vergeleken met Alpaca (zie voorbeelden hieronder), met een kwaliteit die vergelijkbaar is met die van ChatGPT.
Online demo
Probeer hier de Vicuna-13B demo!
Training
Vicuna is gemaakt door het verfijnen van een LLaMA-basismodel met behulp van ongeveer 70.000 door gebruikers gedeelde gesprekken verzameld via ShareGPT.com met openbare API's. Om de gegevenskwaliteit te garanderen, converteren we de HTML terug naar markdown en filteren we enkele ongepaste voorbeelden of voorbeelden van lage kwaliteit eruit. Daarnaast verdelen we lange gesprekken in kleinere segmenten die passen bij de maximale contextlengte van het model.
- Multi-turn-gesprekken: we passen het trainingsverlies aan om rekening te houden met multi-turn-gesprekken en berekenen het fine-tuning-verlies uitsluitend op de output van de chatbot.
- Geheugenoptimalisaties: Om Vicuna's begrip van lange context mogelijk te maken, breiden we de maximale contextlengte uit van 512 in alpaca naar 2048, waardoor de GPU-geheugenvereisten aanzienlijk toenemen. We pakken de geheugendruk aan door gebruik te maken van gradiëntcontrolepunten en flash-aandacht.
- Kostenreductie via Spot Instance: De 40x grotere dataset en 4x reekslengte voor training vormen een aanzienlijke uitdaging op het gebied van trainingskosten. We maken gebruik van door SkyPilot beheerde spot om de kosten te verlagen door gebruik te maken van de goedkopere spotinstances met automatisch herstel voor voorrang en automatische zonewisseling. Deze oplossing verlaagt de kosten voor het trainen van het 7B-model van ongeveer 140 en het 13B-model van ongeveer 300.
Serveren
We bouwen een serveersysteem dat meerdere modellen kan bedienen met gedistribueerde werknemers. Het ondersteunt een flexibele plug-in van GPU-werknemers uit zowel lokale clusters als de cloud. Door gebruik te maken van een fouttolerante controller en beheerde spotfunctie in SkyPilot, kan dit serveersysteem goed werken met goedkopere spotinstances uit meerdere clouds om de servicekosten te verlagen. Het is momenteel een lichtgewicht implementatie en we werken eraan om meer van ons laatste onderzoek erin te integreren.
Hoe evalueer je een chatbot?
Het evalueren van AI-chatbots is een uitdagende taak, omdat het onderzoek naar taalbegrip, redenering en en contextbewustzijn. Nu AI-chatbots geavanceerder worden, volstaan de huidige open benchmarks mogelijk niet langer. De evaluatiedataset die wordt gebruikt in Stanford's Alpaca, zelfinstructie, kan bijvoorbeeld effectief worden beantwoord door SOTA-chatbots, waardoor het voor mensen moeilijk wordt om verschillen in prestaties te onderscheiden. Andere beperkingen zijn onder meer de besmetting van trainings-/testgegevens en de potentieel hoge kosten van het creëren van nieuwe benchmarks. Om deze problemen aan te pakken, stellen we een evaluatiekader voor op basis van GPT-4 om de prestatiebeoordeling van chatbots te automatiseren.
Beperkingen
We hebben gemerkt dat Vicuna, net als andere grote taalmodellen, bepaalde beperkingen heeft. Het is bijvoorbeeld niet goed in taken die verband houden met redeneren of wiskunde, en het kan beperkingen hebben bij het nauwkeurig identificeren van zichzelf of het garanderen van de feitelijke juistheid van zijn resultaten. Bovendien is het niet voldoende geoptimaliseerd om de veiligheid te garanderen of potentiële toxiciteit of vertekening te verminderen. Om de veiligheidsproblemen aan te pakken, gebruiken we de OpenAI-moderatie-API om ongepaste gebruikersinvoer uit onze online demo te filteren. Desalniettemin verwachten we dat Vicuna kan dienen als een open startpunt voor toekomstig onderzoek om deze beperkingen aan te pakken.
Release
In onze eerste release zullen we de trainings-, presentatie- en evaluatiecode delen op een GitHub-opslagplaats: https://github.com/lm-sys/FastChat. We hebben ook de Vicuna-13B-modelgewichten uitgebracht. Er is geen plan om de dataset vrij te geven. Word lid van onze Discord-server en volg onze Twitter om de laatste updates te ontvangen.
Hoe goed is Vicuna?
Na het verfijnen van Vicuna met 70.000 door gebruikers gedeelde ChatGPT-gesprekken, ontdekken we dat Vicuna in staat wordt om meer gedetailleerde en goed gestructureerde antwoorden te genereren vergeleken met Alpaca (zie voorbeelden hieronder ), met een kwaliteit die vergelijkbaar is met ChatGPT.
Online demo
Probeer de Vicuna-13B demo
hier< /a>!
Overzicht
De snelle vooruitgang van grote taalmodellen (LLM's) heeft een revolutie teweeggebracht in chatbotsystemen, wat heeft geresulteerd in ongekende intelligentieniveaus zoals te zien in OpenAI's ChatGPT. Ondanks de indrukwekkende prestaties blijven de trainings- en architectuurdetails van ChatGPT echter onduidelijk, wat onderzoek en open-source-innovatie op dit gebied belemmert. Geïnspireerd door het Meta LLaMA- en Stanford Alpaca-project introduceren we Vicuna-13B, een open-source chatbot ondersteund door een verbeterde dataset en een eenvoudig te gebruiken, schaalbare infrastructuur. Door een LLaMA-basismodel te verfijnen op basis van door gebruikers gedeelde gesprekken verzameld via ShareGPT.com, heeft Vicuna-13B concurrerende prestaties laten zien in vergelijking met andere open-sourcemodellen zoals Stanford Alpaca. Deze blogpost geeft een voorlopige evaluatie van de prestaties van Vicuna-13B en beschrijft de trainings- en bedieningsinfrastructuur. We nodigen de community ook uit om te communiceren met onze online demo om de mogelijkheden van deze chatbot te testen.
Training
Vicuna wordt gecreëerd door het verfijnen van een LLaMA-basismodel met behulp van ongeveer 70.000 gebruikers gedeelde gesprekken verzameld van ShareGPT.com met openbare API's. Om de gegevenskwaliteit te garanderen, converteren we de HTML terug naar markdown en filteren we enkele ongepaste voorbeelden of voorbeelden van lage kwaliteit eruit. Daarnaast verdelen we lange gesprekken in kleinere segmenten die passen bij de maximale contextlengte van het model.
Weergave
We bouwen een weergavesysteem dat meerdere modellen kan bedienen met gedistribueerde werkers. Het ondersteunt een flexibele plug-in van GPU-werknemers uit zowel lokale clusters als de cloud. Door gebruik te maken van een fouttolerante controller en beheerde spotfunctie in SkyPilot, kan dit serveersysteem goed werken met goedkopere spotinstances uit meerdere clouds om de servicekosten te verlagen. Het is momenteel een lichtgewicht implementatie en we werken eraan om meer van ons laatste
onderzoek
erin te integreren.
Hoe Een chatbot evalueren?
Het evalueren van AI-chatbots is een uitdagende taak, omdat het onderzoek naar taalbegrip, redenering en contextbewustzijn vereist. Nu AI-chatbots geavanceerder worden, volstaan de huidige open benchmarks mogelijk niet langer. De evaluatiedataset die wordt gebruikt in Stanford's Alpaca,
zelfinstructie, kan bijvoorbeeld effectief worden beantwoord door SOTA-chatbots, waardoor het voor mensen moeilijk wordt om prestatieverschillen te onderscheiden. Andere beperkingen zijn onder meer de besmetting van trainings-/testgegevens en de potentieel hoge kosten van het creëren van nieuwe benchmarks. Om deze problemen aan te pakken, stellen we een evaluatiekader voor op basis van GPT-4 om de prestatiebeoordeling van chatbots te automatiseren.
Beperkingen
We hebben gemerkt dat Vicuna, net als andere grote taalmodellen, bepaalde beperkingen. Het is bijvoorbeeld niet goed in taken die verband houden met redeneren of wiskunde, en het kan beperkingen hebben bij het nauwkeurig identificeren van zichzelf of het garanderen van de feitelijke juistheid van zijn resultaten. Bovendien is het niet voldoende geoptimaliseerd om de veiligheid te garanderen of potentiële toxiciteit of vertekening te verminderen. Om de veiligheidsproblemen aan te pakken, gebruiken we de OpenAI
moderation
API om ongepaste gebruikersinvoer uit te filteren in onze online demo . Niettemin verwachten we dat Vicuna kan dienen als een open startpunt voor toekomstig onderzoek om deze beperkingen aan te pakken.