Kurs
Das Aufkommen großer Sprachmodelle hat ganze Branchen verändert und die Leistungsfähigkeit von Technologien wie OpenAIs GPT-3.5 und GPT-4 in unterschiedlichste Anwendungen gebracht. Hohe Kosten und Bedenken rund um den Schutz vertraulicher Daten schrecken potenzielle Nutzer jedoch oft ab. Genau hier punkten Open-Source-Modelle wie Vicuna-13B: Sie bieten vergleichbare Leistung ohne hohe Ausgaben und mit geringerem Risiko für sensible Informationen.
Wenn du mehr über GPT-3.5 und GPT-4 erfahren möchtest, ist unser Tutorial Using GPT-3.5 and GPT-4 via the OpenAI API in Python ein guter Einstieg, um zu verstehen, wie du mit dem OpenAI-Python-Paket programmatisch Gespräche mit ChatGPT führst.
Was ist Vicuna-13B?
Vicuna-13B ist ein Open-Source-Dialogmodell, das durch Feintuning des LLaMa-13B-Modells mit von Nutzern geteilten Unterhaltungen von ShareGPT trainiert wurde.
Eine erste Evaluation mit GPT-4 als Bewerter zeigte, dass Vicuna-13B mehr als 90% der Qualität von ChatGPT und Google Bard erreicht und Modelle wie LLaMa und Alpaca in über 90% der Fälle übertrifft. Der gesamte Fine-Tuning- und Evaluations-Workflow ist unten dargestellt:

Vicuna-13B Fine-Tuning- und Evaluations-Workflow (Quelle)
Das unterstreicht die Stärken von Vicuna-13B, dennoch hat das Modell auch Grenzen und ist insbesondere bei Aufgaben wie Mathematik und komplexem Schließen nicht führend.

Bild von LMSYSORG, bearbeitet vom Autor
Anwendungsfälle von Vicuna-13B
Als intelligenter Chatbot sind die Einsatzmöglichkeiten von Vicuna-13B nahezu unbegrenzt. Einige Beispiele aus verschiedenen Branchen wie Kundenservice, Gesundheitswesen, Bildung, Finanzwesen sowie Reise- und Gastgewerbe siehst du unten.

Fünf verschiedene Anwendungen von Vicuna-13 im echten Leben
- Kundenservice: Dank 24/7-Verfügbarkeit können Chatbots Kundinnen und Kunden unterstützen und wiederkehrende, einfache Anfragen automatisieren. Sephora nutzt zum Beispiel Chatbots, um Produkte zu empfehlen, Bestellstatus zu prüfen und Schminktipps direkt über die Website zu geben.
- Gesundheitswesen: Patientinnen und Patienten erhalten schnell personalisierte Gesundheitsinformationen, wodurch Fachpersonal mehr Zeit für Forschung und neue Therapien gewinnt. Babylon Health setzt KI-gestützte Chatbots für Gesundheitschecks ein, um die Betreuung besser zu überwachen.
- Bildung: Viele bekannte Bildungsanbieter wie Duolingo nutzen KI-Bots kreativ, um die Lernmotivation zu steigern und das Verständnis für anspruchsvollere Konzepte zu fördern.
- Finanzwesen: Die erste Interaktion mit meinem Bankkonto bei Unterstützungsbedarf läuft über einen intelligenten Bot. Viele Banken, darunter Wells Fargo, nutzen ähnliche Technologien, um Routineaufgaben wie Kontostände prüfen, Geld überweisen oder Konten verwalten zu erleichtern.
- Reise/Gastgewerbe: Ähnlich wie im Banking helfen Chatbots, passende Reiseziele nach Budget und Präferenzen zu finden oder fungieren als virtueller Concierge. Der Chatbot Omar des Equinox Hotel New York beantwortet rund 85% der Anfragen. So konnten in weniger als drei Monaten 2600 neue Anfragen bearbeitet und in nur vier Monaten 150 qualifizierte Leads generiert werden.
Die Liste ist längst nicht vollständig. In unserem Artikel How NLP is changing the future of Data Science erfährst du, wie NLP die Zukunft von Data Science und Machine Learning prägt, welche Anwendungen sich abzeichnen, welche Risiken bestehen und wie man sie mindert.
Warum es sich lohnt, Vicuna-13B ausführen zu können
Angesichts dieser Praxisbeispiele ist klar: Die Nachfrage nach KI-gestützten Dialogagenten wie Vicuna-13B ist in vielen Schlüsselbranchen enorm.
Wer solche Technologien implementieren und in bestehende Workflows integrieren kann, verschafft sich einen handfesten Vorteil. Immer mehr Unternehmen nutzen diese Lösungen, um Kundenerlebnisse zu verbessern, mehr Leads zu generieren und ihre Rendite zu steigern.
Gute Nachrichten: Genau dafür ist dieses Tutorial gedacht. Es hilft dir, die nötigen Kompetenzen aufzubauen, um das Vicuna-13B-Modell auszuführen und in beliebige Geschäftsprozesse einzubinden.
Voraussetzungen
Bevor wir das Vicuna-13B-Modell ausführen, müssen wir die Voraussetzungen sauber einrichten. Dazu gehören:
- Verständnis des Vicuna-13B-Workflows
- Einrichtung der notwendigen Hard- und Software
- Beschaffung der LLaMa-Gewichte für Vicuna-13B
Sind diese Punkte erfüllt, verstehen wir die Ein- und Ausgabeformate besser und können das Modell erfolgreich starten.
Den Vicuna-13B-Workflow verstehen
Ein gutes Verständnis der Ein- und Ausgabeformate von Vicuna-13B gibt Entwicklerinnen und Entwicklern ein Fundament, um Faktoren zu erkennen, die die Entscheidungen des Modells beeinflussen.
In diesem Abschnitt erklären wir die wichtigsten Eingabeparameter sowie das erwartete Ausgabeformat des Vicuna-13B-Modells.

Minimalistischer End-to-End-Workflow
So funktioniert der Ablauf: Zuerst übergibt der oder die Nutzende die gewünschte Eingabe, darunter den Prompt – also die eigentliche Textanfrage, auf die eine Antwort gewünscht ist.
Zusätzlich zum Prompt können folgende Parameter angegeben werden:
- Max-length: Legt fest, wie viel Text das Modell maximal in der finalen Antwort berücksichtigen soll.
- Temperature: Dieser Wert liegt zwischen 0 und 1. Je niedriger, desto deterministischer das Ergebnis. Höhere Werte erhöhen die Zufälligkeit – die Ausgaben werden vielfältiger und kreativer.
- Top-p: Steuert die Vielfalt der Vorhersagen, indem die wahrscheinlichsten Tokens ausgewählt werden, deren kumulierte Wahrscheinlichkeit einen Schwellwert überschreitet. Höhere Werte erhöhen die Chance auf bessere Ausgaben, benötigen aber mehr Rechenaufwand.
- Repetition_penalty: Wenn ein Wort zu häufig genannt wird, hilft dieser Parameter, Wiederholungen zu reduzieren und die Antwort abwechslungsreicher zu machen.
- Seed: Sorgt dafür, dass bei gleichem Input wiederholbare Ergebnisse entstehen.
- Debug: Aktiviert bei Bedarf den Debug-Modus, um Verhalten und Performance des Modells zu diagnostizieren.
Nach dem Absenden des Prompts mitsamt Parametern generiert Vicuna-13B die Ausgabe. Sie folgt im Wesentlichen diesem Schema:
- Text: Die vom Vicuna-Modell erzeugte Antwort
- Metadata: Zusätzliche vom Modell erzeugte Informationen. Eine ausführlichere Erklärung folgt weiter unten.
Notwendige Hard- und Software einrichten
Mit dem Verständnis von Ein- und Ausgabe können wir nun die zentralen Bibliotheken identifizieren, um das Vicuna-Modell erfolgreich auszuführen.
- Conda: Stellt eine saubere, isolierte Umgebung für die Abhängigkeiten des Vicuna-Modells bereit.
- FastAPI: Modernes Framework, um die API für das Vicuna-Modell zu entwickeln – inklusive automatischer Analyse des Nutzerprompts.
- Uvicorn: Hostet die FastAPI-Anwendung des Vicuna-Modells und sorgt für effiziente, zuverlässige Performance.
- LLaMa.cpp: Übernimmt die komplexe Verarbeitung großer Sprachmodelle, die dem Vicuna-Modell zugrunde liegen.
Virtuelle Umgebung erstellen
Alle Befehle in diesem Abschnitt laufen im Terminal. Mit dem Befehl conda create legen wir eine virtuelle Umgebung namens vicuna-env an.
conda create --name vicuna-env
Nach erfolgreicher Erstellung aktivieren wir die Umgebung mit conda activate wie folgt:
conda activate vicuna-env
Danach sollte der Name der Umgebung in Klammern am Anfang der Terminalzeile erscheinen, zum Beispiel so:

Name der virtuellen Umgebung nach der Aktivierung
Bibliotheken installieren
Die Bibliotheken kannst du auf zwei Arten installieren. Variante eins: Jede Bibliothek mit pip install separat installieren. Das ist bei vielen Paketen zeitaufwändig und in professionellen Setups nicht ideal.
Variante zwei ist die bessere Wahl: Ein requirements.txt-File mit allen benötigten Paketen nutzen. Unten siehst du den Inhalt der requirements.txt und die Installation mit einem einzigen pip install-Befehl.
# Content of the requirements.txt file
llama-cpp-python==0.1.48
fastapi
uvicorn[standard]
Alle drei Bibliotheken installierst du so:
pip install -r requirements.txt
LLaMa-Gewicht beziehen
Über die Plattform Hugging Face kannst du die Gewichte des Vicuna-Modells wie unten gezeigt herunterladen:

Zwei Schritte, um das Vicuna-13B-Gewicht von Hugging Face herunterzuladen
Zur besseren Strukturierung kannst du die heruntergeladene Gewichtsdatei in einen neuen Ordner model verschieben.
Als API verpacken und bereitstellen
Auch wenn sich das Modell über die Kommandozeile ausführen lässt, ist eine API-Schnittstelle in der Praxis oft sinnvoller. So wird das Modell für deutlich mehr Nutzerinnen und Nutzer leicht zugänglich.
Dafür sind folgende Schritte nötig:
- Modell lokal laden
- API erstellen, die das Modell bereitstellt
Die Struktur des Quellcodes siehst du unten. Der vollständige Code liegt auf GitHub.
------ model
|------- ggml-vicuna-13b-4bit.bin
------ requirements.txt
------ vicuna_app.py
ggml-vicuna-13b-4bit.binist die heruntergeladene Gewichtsdatei im Ordner model.requirements.txtenthält die Abhängigkeiten zur Ausführung des Modells.vicuna_app.pyenthält den Python-Code zur Erstellung der API – darauf liegt hier der Fokus.
Definition der zentralen API-Routen
Wir benötigen zwei Hauptrouten. Zuvor importieren wir die Bibliotheken, laden das Modell und erstellen eine FastAPI-Instanz.
# Import the libraries
from fastapi import FastAPI, HTTPException
from llama_cpp import Llama
# Load the model
vicuna_model_path = "./model/ggml-vicuna-13b-4bit.bin"
vicuna_model = Llama(model_path=vicuna_model_path)
app = FastAPI()
- Erste Route: Die Default-Route
"/"liefert über die Funktionhome()ohne Parameter das JSON"Message": "Welcome to the Vicuna Demo FastAPI"zurück.
# Define the default route
@app.get("/")
def home():
return {"Message": "Welcome to the Vicuna Demo FastAPI"}
- Zweite Route:
"/vicuna_says"ruft die Funktionanswer_prompt()auf. Sie nimmt den Prompt der Nutzerin bzw. des Nutzers entgegen und gibt eine JSON-Antwort mit dem Ergebnis des Vicuna-Modells sowie zusätzlichen Metadaten zurück.
@app.post("/vicuna_says")
def answer_prompt(user_prompt):
if (not (user_prompt)):
raise HTTPException(status_code=400,
detail="Please Provide a valid text message")
response = vicuna_model(user_prompt)
return {"Answer": response}
Routen ausführen
Die API startest du im Verzeichnis der Datei vicuna_app.py mit folgendem Befehl:
uvicorn vicuna_app:app --reload
uvicornstartet den Uvicorn-Server.vicuna_app: Entspricht der Python-Dateivicuna_app.py. Sie steht links vom Doppelpunkt.app: Ist das invicuna_app.pyerstellte Objektapp = FastAPI(). Hieße die Dateimain.py, wäre der Befehluvicorn main:app --reload.--reload: Option, die den Server nach Codeänderungen automatisch neu startet – nur für Entwicklung, nicht für Produktion.
So sieht die Ausgabe des Befehls aus. Der Server läuft lokal auf Port 8000 (http://127.0.0.1:8000).

URL der lokal laufenden API
Die Default-Route rufst du einfach im Browser über folgende URL auf.

Antwort der Default-Route
Spannend wird es unter http://127.0.0.1:8000/docs. Dort findest du ein komplettes Interface zur Interaktion mit der API. Das Ergebnis siehst du unten.

Grafische Darstellung der beiden Routen
Wählst du im vorherigen Bild /vicuna_says im grünen Kasten, erhältst du eine Anleitung zur Interaktion mit der API, wie unten gezeigt.

Die drei Schritte zur Ausführung des Nutzerprompts
Klicke auf Try it out und gib im Feld text_message die Nachricht ein, für die du eine Antwort möchtest.
Nach Klick auf Execute erhältst du das folgende Ergebnis.

Serverantwort des Vicuna-Modells auf die Nutzeranfrage
Die Antwort des Vicuna-Modells steht im Feld „text“ – und sie kann sich sehen lassen.
Zusätzliche Metadaten wie das verwendete Modell, das Erstellungsdatum der Antwort, die Anzahl der Tokens im Prompt und in der Antwort sind ebenfalls enthalten.
Warum Deployments die Nutzung von Vicuna-13B erleichtern
Die Bereitstellung eines so leistungsfähigen Modells verbessert Nutzererlebnis und Effizienz auf mehreren Ebenen, unter anderem:
- Zugänglichkeit: Über eine API ist das Modell ohne lokale Installation nutzbar.
- Ressourcenmanagement: Ausreichende Serverressourcen verarbeiten viele gleichzeitige Anfragen zuverlässig.
- Skalierbarkeit: Ressourcen lassen sich mit der Nachfrage skalieren – die Performance bleibt stabil.
- Updates und Wartung: Zentralisierte Pflege stellt sicher, dass stets die aktuelle Version zur Verfügung steht.
- Integration: Einfachere Anbindung an andere Systeme und Anwendungen erweitert Einsatzszenarien und Flexibilität.
Kurz gesagt: Ein Deployment macht die Arbeit mit Vicuna-13B zugänglicher, zuverlässiger und vielseitiger – und damit für verschiedenste Nutzergruppen und Anwendungen attraktiver.
Best Practices und Tipps für Vicuna-13B
Beim Arbeiten mit Vicuna-13B helfen dir einige Best Practices und Tipps, Performance zu optimieren, bessere Ergebnisse zu erzielen und typische Probleme schnell zu beheben.
Tipps zur Performance-Optimierung des Vicuna-13B-Modells
Mit diesen Empfehlungen sorgst du für einen reibungsloseren Ablauf und überzeugendere Resultate.

4 Tipps zur Performance-Optimierung von Vicuna-13B
- Hardware optimieren: Stelle sicher, dass der Server genügend RAM und CPU-Ressourcen für die Rechenlast des Modells hat.
- Batch-Verarbeitung: Nutze nach Möglichkeit Parallelisierung und verarbeite Anfragen in Batches.
- Caching: Cache häufige Anfragen, um Rechenaufwand zu sparen und Antwortzeiten zu verkürzen.
- Input-Vorverarbeitung: Bereite Eingaben optimal auf, um Genauigkeit und Performance zu verbessern.
Häufige Probleme beheben
Neben der Optimierung ist es wichtig, typische Fehlerbilder schnell zu erkennen. Vier Beispiele:

Häufige Troubleshooting-Themen
- Speicherfehler: Erhöhe den RAM des Servers oder reduziere die Eingabegröße, damit das Modell sie verarbeiten kann.
- Lange Antwortzeiten: Rüste die CPU auf oder arbeite mit Batch-Verarbeitung, um Latenzen zu senken.
- Falsche Ausgaben: Prüfe die Eingabedaten sorgfältig auf Anomalien oder Fehler, die das Ergebnis beeinflussen könnten.
- Integrationsprobleme: Lies die API-Dokumentation genau und überprüfe alle Schnittstellenkonfigurationen.
Fazit
Zusammengefasst hast du in diesem Artikel eine umfassende Einführung in Einrichtung und Nutzung des Vicuna-13B-Modells erhalten. Wir haben die Voraussetzungen besprochen – von Hardware und Software bis zur Beschaffung der für den Betrieb nötigen LLaMa-Gewichte.
Du hast eine Schritt-für-Schritt-Anleitung zur Einrichtung der Arbeitsumgebung, zur Installation der Software und zum Einrichten der Gewichte von Vicuna-13B bekommen – inklusive der Bedeutung von Gewichten bei Sprachmodellen.
Außerdem haben wir Packaging und Deployment beleuchtet und gezeigt, wie eine Bereitstellung die Nutzung über Web-Interface und API erleichtert.
Zum Schluss gab es praktische Hinweise zur Interaktion mit Vicuna-13B, Beispiele seiner Fähigkeiten sowie Best Practices zur Performance-Optimierung und zum Troubleshooting.
Bist du bereit, tiefer in die Welt der KI und des Machine Learnings einzusteigen? Stärke deine Kompetenzen mit dem leistungsstarken Deep-Learning-Framework der Profis. Starte jetzt mit dem Kurs Deep Learning with PyTorch.
Zoumana ist ein vielseitiger Datenwissenschaftler, der sein Wissen gerne mit anderen teilt und anderen etwas zurückgibt. Er erstellt Inhalte auf YouTube und schreibt auf Medium. Er hat Freude am Sprechen, Programmieren und Unterrichten. Zoumana hat zwei Master-Abschlüsse. Den ersten in Informatik mit dem Schwerpunkt Maschinelles Lernen in Paris, Frankreich, und den zweiten in Datenwissenschaft an der Texas Tech University in den USA. Sein beruflicher Werdegang begann als Softwareentwickler bei Groupe OPEN in Frankreich, bevor er als Berater für maschinelles Lernen zu IBM wechselte, wo er End-to-End-KI-Lösungen für Versicherungsunternehmen entwickelte. Zoumana arbeitet bei Axionable, dem ersten nachhaltigen KI-Startup mit Sitz in Paris und Montreal. Dort arbeitete er als Data Scientist und implementierte KI-Produkte, vor allem NLP-Anwendungsfälle, für Kunden aus Frankreich, Montreal, Singapur und der Schweiz. Zusätzlich widmete er 5% seiner Zeit der Forschung und Entwicklung. Zurzeit arbeitet er als Senior Data Scientist bei der IFC, der Weltbankgruppe.
