Vicuna: Ein Open-Source-Chatbot, der GPT-4 mit 90 %* ChatGPT-Qualität beeindruckt
Überblick
Die rasante Weiterentwicklung großer Sprachmodelle (LLMs) hat Chatbot-Systeme revolutioniert und zu beispiellosen Ergebnissen geführt Intelligenzniveaus, wie sie im ChatGPT von OpenAI zu sehen sind. Doch trotz seiner beeindruckenden Leistung bleiben die Trainings- und Architekturdetails von ChatGPT unklar, was die Forschung und Open-Source-Innovation in diesem Bereich behindert. Inspiriert durch das Projekt Meta LLaMA und Stanford Alpaca stellen wir Vicuna-13B vor, einen Open-Source-Chatbot, der auf einem erweiterten Datensatz und einer benutzerfreundlichen, skalierbaren Infrastruktur basiert. Durch die Feinabstimmung eines LLaMA-Basismodells auf der Grundlage von von ShareGPT.com gesammelten von Benutzern geteilten Gesprächen hat Vicuna-13B im Vergleich zu anderen Open-Source-Modellen wie Stanford Alpaca eine wettbewerbsfähige Leistung gezeigt. Dieser Blogbeitrag bietet eine vorläufige Bewertung der Leistung von Vicuna-13B und beschreibt seine Trainings- und Serviceinfrastruktur. Wir laden die Community außerdem ein, mit unserer Online-Demo zu interagieren, um die Fähigkeiten dieses Chatbots zu testen.
Wie gut ist Vicuna?
Nach der Feinabstimmung von Vicuna mit 70.000 von Benutzern geteilten ChatGPT-Gesprächen stellen wir fest, dass Vicuna leistungsfähiger wird im Vergleich zu Alpaca (siehe Beispiele unten) detailliertere und besser strukturierte Antworten zu generieren, mit einer Qualität, die mit ChatGPT vergleichbar ist.
Online-Demo
Probieren Sie hier die Vicuna-13B-Demo aus!
Training
Vicuna entsteht durch die Feinabstimmung eines LLaMA-Basismodells unter Verwendung von etwa 70.000 von Benutzern geteilten Konversationen, die von ShareGPT.com mit öffentlichen APIs gesammelt wurden. Um die Datenqualität sicherzustellen, konvertieren wir den HTML-Code zurück in Markdown und filtern einige ungeeignete oder minderwertige Beispiele heraus. Darüber hinaus unterteilen wir längere Konversationen in kleinere Segmente, die zur maximalen Kontextlänge des Modells passen.
- Multi-Turn-Konversationen: Wir passen den Trainingsverlust an, um Multi-Runden-Konversationen zu berücksichtigen, und berechnen den Feinabstimmungsverlust ausschließlich anhand der Ausgabe des Chatbots.
- Speicheroptimierungen: Um Vicunas Verständnis von langen Kontexten zu ermöglichen, erweitern wir die maximale Kontextlänge von 512 in Alpaca auf 2048, was den GPU-Speicherbedarf erheblich erhöht. Wir bekämpfen den Speicherdruck durch den Einsatz von Gradient Checkpointing und Flash Attention.
- Kostenreduzierung durch Spot-Instanz: Der 40-mal größere Datensatz und die 4-fache Sequenzlänge für das Training stellen eine erhebliche Herausforderung bei den Trainingskosten dar. Wir nutzen den von SkyPilot verwalteten Spot, um die Kosten zu senken, indem wir die günstigeren Spot-Instanzen mit automatischer Wiederherstellung für vorzeitige Unterbrechungen und automatischem Zonenwechsel nutzen. Diese Lösung senkt die Kosten für das Training des 7B-Modells von etwa 140 und des 13B-Modells von etwa 300.
Serving
Wir bauen ein Serving-System auf, das in der Lage ist, mehrere Modelle verteilt zu bedienen Arbeiter. Es unterstützt das flexible Plug-in von GPU-Workern sowohl aus lokalen Clustern als auch aus der Cloud. Durch die Verwendung eines fehlertoleranten Controllers und einer verwalteten Spot-Funktion in SkyPilot kann dieses Bereitstellungssystem gut mit günstigeren Spot-Instanzen aus mehreren Clouds zusammenarbeiten, um die Bereitstellungskosten zu senken. Es handelt sich derzeit um eine leichtgewichtige Implementierung und wir arbeiten daran, weitere unserer neuesten Forschungsergebnisse darin zu integrieren.
Wie bewertet man einen Chatbot?
Die Bewertung von KI-Chatbots ist eine herausfordernde Aufgabe, da sie die Prüfung des Sprachverständnisses, des logischen Denkens und der Argumentation erfordert. und Kontextbewusstsein. Da KI-Chatbots immer fortschrittlicher werden, reichen die aktuellen offenen Benchmarks möglicherweise nicht mehr aus. Beispielsweise kann der in Stanfords Alpaca, self-instruct, verwendete Bewertungsdatensatz effektiv von SOTA-Chatbots beantwortet werden, was es für Menschen schwierig macht, Leistungsunterschiede zu erkennen. Weitere Einschränkungen umfassen die Kontamination von Trainings-/Testdaten und die potenziell hohen Kosten für die Erstellung neuer Benchmarks. Um diese Probleme anzugehen, schlagen wir ein auf GPT-4 basierendes Bewertungsframework vor, um die Bewertung der Chatbot-Leistung zu automatisieren.
Einschränkungen
Wir haben festgestellt, dass Vicuna, ähnlich wie andere große Sprachmodelle, bestimmte Einschränkungen aufweist. Es ist beispielsweise nicht gut bei Aufgaben, die logisches Denken oder Mathematik erfordern, und es kann Einschränkungen bei der genauen Identifizierung seiner selbst oder der Sicherstellung der sachlichen Richtigkeit seiner Ergebnisse haben. Darüber hinaus wurde es nicht ausreichend optimiert, um die Sicherheit zu gewährleisten oder potenzielle Toxizität oder Verzerrungen abzuschwächen. Um die Sicherheitsbedenken auszuräumen, verwenden wir die OpenAI-Moderations-API, um unangemessene Benutzereingaben in unserer Online-Demo herauszufiltern. Dennoch gehen wir davon aus, dass Vicuna als offener Ausgangspunkt für zukünftige Forschungen zur Beseitigung dieser Einschränkungen dienen kann.
Veröffentlichung
In unserer ersten Veröffentlichung werden wir den Trainings-, Bereitstellungs- und Evaluierungscode in einem GitHub-Repo teilen: https://github.com/lm-sys/FastChat. Wir haben auch die Modellgewichte Vicuna-13B herausgebracht. Eine Veröffentlichung des Datensatzes ist nicht geplant. Treten Sie unserem Discord-Server bei und folgen Sie unserem Twitter, um die neuesten Updates zu erhalten.
Wie gut ist Vicuna?
Nach der Feinabstimmung von Vicuna mit 70.000 von Benutzern geteilten ChatGPT-Gesprächen stellen wir fest, dass Vicuna im Vergleich zu Alpaca detailliertere und besser strukturierte Antworten generieren kann (siehe Beispiele unten). ), mit einer Qualität, die mit ChatGPT vergleichbar ist.
Online-Demo
Probieren Sie die Vicuna-13B-Demo
hier< aus /a>!
Überblick
Die rasante Weiterentwicklung großer Sprachmodelle (LLMs) hat Chatbot-Systeme revolutioniert und zu einem beispiellosen Maß an Intelligenz geführt, wie im ChatGPT von OpenAI zu sehen ist. Doch trotz seiner beeindruckenden Leistung bleiben die Trainings- und Architekturdetails von ChatGPT unklar, was die Forschung und Open-Source-Innovation in diesem Bereich behindert. Inspiriert durch das Projekt Meta LLaMA und Stanford Alpaca stellen wir Vicuna-13B vor, einen Open-Source-Chatbot, der auf einem erweiterten Datensatz und einer benutzerfreundlichen, skalierbaren Infrastruktur basiert. Durch die Feinabstimmung eines LLaMA-Basismodells auf der Grundlage von von ShareGPT.com gesammelten von Benutzern geteilten Gesprächen hat Vicuna-13B im Vergleich zu anderen Open-Source-Modellen wie Stanford Alpaca eine wettbewerbsfähige Leistung gezeigt. Dieser Blogbeitrag bietet eine vorläufige Bewertung der Leistung von Vicuna-13B und beschreibt seine Trainings- und Serviceinfrastruktur. Wir laden die Community außerdem ein, mit unserer Online-Demo zu interagieren, um die Fähigkeiten dieses Chatbots zu testen.
Schulung
Vicuna wird durch die Feinabstimmung eines LLaMA-Basismodells unter Verwendung von etwa 70.000 Benutzern erstellt. gemeinsame Konversationen, die von ShareGPT.com mit öffentlichen APIs gesammelt wurden. Um die Datenqualität sicherzustellen, konvertieren wir den HTML-Code wieder in Markdown und filtern einige ungeeignete oder minderwertige Beispiele heraus. Darüber hinaus unterteilen wir längere Gespräche in kleinere Segmente, die zur maximalen Kontextlänge des Modells passen.
Bereitstellung
Wir bauen ein Bereitstellungssystem auf, das in der Lage ist, mehrere Modelle mit verteilten Mitarbeitern zu bedienen. Es unterstützt das flexible Plug-in von GPU-Workern sowohl aus lokalen Clustern als auch aus der Cloud. Durch die Verwendung eines fehlertoleranten Controllers und einer verwalteten Spot-Funktion in SkyPilot kann dieses Bereitstellungssystem gut mit günstigeren Spot-Instanzen aus mehreren Clouds zusammenarbeiten, um die Bereitstellungskosten zu senken. Es handelt sich derzeit um eine einfache Implementierung und wir arbeiten daran, weitere unserer neuesten
Forschungsergebnisse
darin zu integrieren.
Wie So bewerten Sie einen Chatbot?
Die Bewertung von KI-Chatbots ist eine herausfordernde Aufgabe, da sie die Prüfung des Sprachverständnisses, der Argumentation und des Kontextbewusstseins erfordert. Da KI-Chatbots immer fortschrittlicher werden, reichen die aktuellen offenen Benchmarks möglicherweise nicht mehr aus. Beispielsweise kann der in Stanfords Alpaca verwendete Bewertungsdatensatz
self-instruct
effektiv beantwortet werden SOTA-Chatbots machen es für Menschen schwierig, Leistungsunterschiede zu erkennen. Weitere Einschränkungen umfassen die Kontamination von Trainings-/Testdaten und die potenziell hohen Kosten für die Erstellung neuer Benchmarks. Um diese Probleme anzugehen, schlagen wir ein auf GPT-4 basierendes Bewertungsframework vor, um die Leistungsbewertung von Chatbots zu automatisieren.
Einschränkungen
Wir haben festgestellt, dass Vicuna ähnlich wie andere große Sprachmodelle über diese verfügt gewisse Einschränkungen. Es ist beispielsweise nicht gut bei Aufgaben, die logisches Denken oder Mathematik erfordern, und es kann Einschränkungen bei der genauen Identifizierung seiner selbst oder der Sicherstellung der sachlichen Richtigkeit seiner Ergebnisse haben. Darüber hinaus wurde es nicht ausreichend optimiert, um die Sicherheit zu gewährleisten oder potenzielle Toxizität oder Verzerrungen abzuschwächen. Um Sicherheitsbedenken auszuräumen, verwenden wir die OpenAI-
Moderations-API, um unangemessene Benutzereingaben in unserer Online-Demo herauszufiltern . Dennoch gehen wir davon aus, dass Vicuna als offener Ausgangspunkt für zukünftige Forschung zur Beseitigung dieser Einschränkungen dienen kann.