Vicuna: En chatbot med öppen källkod som imponerar på GPT-4 med 90 %* ChatGPT-kvalitet
Översikt
Den snabba utvecklingen av stora språkmodeller (LLM) har revolutionerat chatbot-systemen, vilket resulterat i oöverträffade nivåer av intelligens som ses i OpenAI:s ChatGPT. Trots dess imponerande prestanda förblir tränings- och arkitekturdetaljerna för ChatGPT fortfarande oklara, vilket hindrar forskning och innovation med öppen källkod inom detta område. Inspirerade av Meta LLaMA och Stanford Alpaca-projektet introducerar vi Vicuna-13B, en chatbot med öppen källkod som backas upp av en förbättrad datauppsättning och en lättanvänd, skalbar infrastruktur. Genom att finjustera en LLaMA-basmodell på användardelade konversationer som samlats in från ShareGPT.com, har Vicuna-13B visat konkurrenskraftiga prestanda jämfört med andra modeller med öppen källkod som Stanford Alpaca. Det här blogginlägget ger en preliminär utvärdering av Vicuna-13B:s prestanda och beskriver dess tränings- och serviceinfrastruktur. Vi inbjuder också communityn att interagera med vår onlinedemo för att testa funktionerna hos denna chatbot.
Hur bra är Vicuna?
Efter att ha finjusterat Vicuna med 70 000 användardelade ChatGPT-konversationer upptäcker vi att Vicuna blir kapabel att generera mer detaljerade och välstrukturerade svar jämfört med Alpaca (se exempel nedan), med kvaliteten i nivå med ChatGPT.
Onlinedemo
Prova Vicuna-13B-demon här!
Utbildning
Vicuna skapas genom att finjustera en LLaMA-basmodell med hjälp av cirka 70 000 användardelade konversationer samlade från ShareGPT.com med offentliga API:er. För att säkerställa datakvalitet konverterar vi tillbaka HTML-koden till markdown och filtrerar bort några olämpliga eller lågkvalitativa prover. Dessutom delar vi upp långa konversationer i mindre segment som passar modellens maximala kontextlängd.
- Konversationer i flera svängar: Vi justerar träningsförlusten för att ta hänsyn till konversationer med flera svängar och beräknar finjusteringsförlusten enbart på chatbots utdata.
- Minnesoptimeringar: För att möjliggöra Vicunas förståelse av långa sammanhang utökar vi den maximala kontextlängden från 512 i alpacka till 2048, vilket avsevärt ökar GPU-minneskraven. Vi tar itu med minnestrycket genom att använda gradientcheckpointing och blixtuppmärksamhet.
- Kostnadsminskning via Spot Instance: Den 40x större datamängden och 4x sekvenslängden för träning utgör en avsevärd utmaning i utbildningskostnader. Vi använder SkyPilot managed spot för att minska kostnaderna genom att utnyttja de billigare spot-instanserna med automatisk återställning för preemptions och automatisk zonväxling. Denna lösning minskar kostnaderna för utbildning av 7B-modellen från cirka 140 och 13B-modellen från cirka 300.
Servering
Vi bygger ett serveringssystem som kan servera flera modeller med distribuerad arbetare. Den stöder flexibel plug-in för GPU-arbetare från både lokala kluster och molnet. Genom att använda en feltolerant styrenhet och hanterad punktfunktion i SkyPilot kan detta serversystem fungera bra med billigare spotinstanser från flera moln för att minska serveringskostnaderna. Det är för närvarande en lätt implementering och vi arbetar på att integrera mer av vår senaste forskning i den.
Hur man utvärderar en chatbot?
Att utvärdera AI-chatbotar är en utmanande uppgift, eftersom det kräver att man undersöker språkförståelse, resonemang, och sammanhangsmedvetenhet. Med AI-chatbotar som blir mer avancerade kanske nuvarande öppna benchmarks inte längre räcker. Till exempel kan utvärderingsdataset som används i Stanfords Alpaca, självinstruera, effektivt besvaras av SOTA chatbots, vilket gör det svårt för människor att urskilja skillnader i prestanda. Fler begränsningar inkluderar kontaminering av utbildnings-/testdata och den potentiellt höga kostnaden för att skapa nya riktmärken. För att ta itu med dessa problem föreslår vi ett utvärderingsramverk baserat på GPT-4 för att automatisera chatbots prestandabedömning.
Begränsningar
Vi har märkt att Vicuna, i likhet med andra stora språkmodeller, har vissa begränsningar. Till exempel är den inte bra på uppgifter som involverar resonemang eller matematik, och den kan ha begränsningar när det gäller att exakt identifiera sig själv eller säkerställa den faktiska riktigheten av dess utdata. Dessutom har den inte optimerats tillräckligt för att garantera säkerhet eller mildra potentiell toxicitet eller partiskhet. För att ta itu med säkerhetsproblemen använder vi OpenAI modererings-API för att filtrera bort olämpliga användarinmatningar i vår onlinedemo. Icke desto mindre förväntar vi oss att Vicuna kan fungera som en öppen startpunkt för framtida forskning för att ta itu med dessa begränsningar.
Release
I vår första release kommer vi att dela utbildnings-, serverings- och utvärderingskoden på en GitHub-repo: https://github.com/lm-sys/FastChat. Vi släppte även Vicuna-13B modellvikter. Det finns ingen plan att släppa datamängden. Gå med i vår Discord-server och följ vår Twitter för att få de senaste uppdateringarna.
Hur bra är Vicuna?
Efter att ha finjusterat Vicuna med 70 000 användardelade ChatGPT-konversationer upptäcker vi att Vicuna blir kapabel att generera mer detaljerade och välstrukturerade svar jämfört med Alpaca (se exempel nedan) ), med kvaliteten i nivå med ChatGPT.
Onlinedemo
Prova Vicuna-13B-demon
här< /a>!
Översikt
Den snabba utvecklingen av stora språkmodeller (LLMs) har revolutionerat chatbotsystem, vilket resulterat i oöverträffade nivåer av intelligens som kan ses i OpenAI:s ChatGPT. Trots dess imponerande prestanda förblir tränings- och arkitekturdetaljerna för ChatGPT fortfarande oklara, vilket hindrar forskning och innovation med öppen källkod inom detta område. Inspirerade av Meta LLaMA och Stanford Alpaca-projektet introducerar vi Vicuna-13B, en chatbot med öppen källkod som backas upp av en förbättrad datauppsättning och en lättanvänd, skalbar infrastruktur. Genom att finjustera en LLaMA-basmodell på användardelade konversationer som samlats in från ShareGPT.com, har Vicuna-13B visat konkurrenskraftiga prestanda jämfört med andra modeller med öppen källkod som Stanford Alpaca. Det här blogginlägget ger en preliminär utvärdering av Vicuna-13B:s prestanda och beskriver dess tränings- och serviceinfrastruktur. Vi inbjuder också communityn att interagera med vår onlinedemo för att testa funktionerna hos denna chatbot.
Träning
Vicuna skapas genom att finjustera en LLaMA-basmodell med cirka 70 000 användare- delade konversationer samlade från ShareGPT.com med offentliga API:er. För att säkerställa datakvalitet konverterar vi tillbaka HTML-koden till markdown och filtrerar bort några olämpliga eller lågkvalitativa prover. Dessutom delar vi upp långa konversationer i mindre segment som passar modellens maximala kontextlängd.
Betjäning
Vi bygger ett visningssystem som kan betjäna flera modeller med distribuerade arbetare. Den stöder flexibel plug-in för GPU-arbetare från både lokala kluster och molnet. Genom att använda en feltolerant styrenhet och hanterad punktfunktion i SkyPilot kan detta serversystem fungera bra med billigare spotinstanser från flera moln för att minska serveringskostnaderna. Det är för närvarande en lätt implementering och vi arbetar på att integrera mer av vår senaste
forskning
i den.
Hur Att utvärdera en chatbot?
Att utvärdera AI-chatbotar är en utmanande uppgift, eftersom det kräver att man undersöker språkförståelse, resonemang och sammanhangsmedvetenhet. Med AI-chatbotar som blir mer avancerade kanske nuvarande öppna benchmarks inte längre räcker. Till exempel kan utvärderingsdataset som används i Stanfords Alpaca,
self-instruct, effektivt besvaras av SOTA chatbots, vilket gör det svårt för människor att urskilja skillnader i prestanda. Fler begränsningar inkluderar kontaminering av utbildnings-/testdata och den potentiellt höga kostnaden för att skapa nya riktmärken. För att ta itu med dessa problem föreslår vi ett utvärderingsramverk baserat på GPT-4 för att automatisera chatbots prestandabedömning.
Begränsningar
Vi har märkt att Vicuna, i likhet med andra stora språkmodeller, har vissa begränsningar. Till exempel är den inte bra på uppgifter som involverar resonemang eller matematik, och den kan ha begränsningar när det gäller att exakt identifiera sig själv eller säkerställa den faktiska riktigheten av dess utdata. Dessutom har den inte optimerats tillräckligt för att garantera säkerhet eller mildra potentiell toxicitet eller partiskhet. För att ta itu med säkerhetsproblemen använder vi OpenAI
moderation
API för att filtrera bort olämpliga användarinmatningar i vår onlinedemo . Icke desto mindre räknar vi med att Vicuna kan fungera som en öppen utgångspunkt för framtida forskning för att ta itu med dessa begränsningar.