Führen Sie LLaMA 3 lokal mit GPT4ALL und Ollama aus und integrieren Sie es in VSCode. Erstellen Sie dann ein Q&A-Abrufsystem mit Langchain, Chroma DB und Ollama.
Die lokale Ausführung großer Sprachmodelle (LLMs) wie Llama 3 hat die Welt der KI grundlegend verändert. Mit Plattformen wie Hugging Face, die die lokale Bereitstellung fördern, können Benutzer nun ungestörte und private Erfahrungen mit ihren Modellen genießen.
In diesem Blog erfahren wir, warum wir LLMs wie Llama 3 lokal ausführen sollten und wie wir mit GPT4ALL und Ollama darauf zugreifen können. Darüber hinaus erfahren wir mehr über die Modellbereitstellung, die Integration von Llama 3 in Ihren Arbeitsbereich und schließlich die Verwendung zur Entwicklung der KI-Anwendung. Wir werden es nicht nur als Chatbot verwenden, sondern auch, um unseren Workflow zu verbessern und Projekte damit zu erstellen.
Warum Llama 3 lokal ausführen?
Die lokale Ausführung von Llama 3 kann aufgrund der hohen Anforderungen an RAM, GPU und Rechenleistung entmutigend erscheinen. Fortschritte bei Frameworks und Modelloptimierung haben dies jedoch einfacher denn je gemacht. Aus diesen Gründen sollten Sie es in Betracht ziehen:
- Ununterbrochener Zugriff : Sie müssen sich keine Sorgen über Ratenbegrenzungen, Ausfallzeiten und unerwartete Dienstunterbrechungen machen.
- Verbesserte Leistung : Die Antwortgenerierung erfolgt schnell ohne Verzögerungen oder Latenzen. Selbst auf Laptops der mittleren Preisklasse erreichen Sie Geschwindigkeiten von etwa 50 Token pro Sekunde.
- Verbesserte Sicherheit : Sie haben die volle Kontrolle über die Eingaben, die zur Feinabstimmung des Modells verwendet werden, und die Daten bleiben lokal auf Ihrem Gerät.
- Reduzierte Kosten : Anstatt hohe Gebühren für den Zugriff auf die APIs oder das Abonnement des Online-Chatbots zu zahlen, können Sie Llama 3 kostenlos nutzen.
- Anpassung und Flexibilität : Sie können Modelle mithilfe von Hyperparametern anpassen, Stop-Token hinzufügen und erweiterte Einstellungen ändern.
- Offline-Funktionen : Sobald Sie das Modell heruntergeladen haben, benötigen Sie keine Internetverbindung, um es zu verwenden.
- Eigentum : Sie haben das vollständige Eigentum und die Kontrolle über das Modell, seine Daten und seine Ausgaben.
Lesen Sie unseren Artikel „ Vor- und Nachteile der Verwendung großer Sprachmodelle (LLMs) in der Cloud im Vergleich zur lokalen Ausführung von LLMs“ , um mehr darüber zu erfahren, ob die lokale Verwendung von LLMs für Sie geeignet ist.
Verwenden von Llama 3 mit GPT4ALL
GPT4ALL ist eine Open-Source-Software, mit der Sie beliebte große Sprachmodelle auf Ihrem lokalen Computer ausführen können, auch ohne GPU. Es ist benutzerfreundlich und daher auch für Personen ohne technischen Hintergrund zugänglich.
Wir beginnen mit dem Herunterladen und Installieren von GPT4ALL unter Windows, indem wir auf die offizielle Download-Seite gehen .
Starten Sie die Anwendung nach der Installation und klicken Sie auf die Schaltfläche „Downloads“, um das Modellmenü zu öffnen. Dort können Sie nach unten scrollen und das Modell „Llama 3 Instruct“ auswählen und dann auf die Schaltfläche „Herunterladen“ klicken.
Nachdem der Download abgeschlossen ist, schließen Sie die Registerkarte und wählen Sie das Llama 3 Instruct-Modell aus, indem Sie auf das Dropdown-Menü „Modell auswählen“ klicken.
Geben Sie eine Eingabeaufforderung ein und verwenden Sie sie wie ChatGPT. Auf dem System ist das CUDA-Toolkit installiert, sodass es die GPU verwendet, um eine schnellere Antwort zu generieren.
Verwenden von Llama 3 mit Ollama
Versuchen wir nun, Llama 3 auf die einfachste Weise lokal zu verwenden, indem Sie Ollama herunterladen und installieren .
Ollama ist ein leistungsstarkes Tool, mit dem Sie LLMs lokal verwenden können. Es ist schnell und verfügt über zahlreiche Funktionen.
Nachdem Sie Ollama auf Ihrem System installiert haben, starten Sie das Terminal/PowerShell und geben Sie den Befehl ein.
Hinweis: Das Herunterladen der Modelldatei und das Starten des Chatbots im Terminal dauert einige Minuten.
Schreiben Sie Eingabeaufforderungen oder beginnen Sie, Fragen zu stellen, und Ollama generiert die Antwort in Ihrem Terminal. Die Chat-Antwort ist superschnell und Sie können weiterhin Folgefragen stellen, um tiefer in das Thema einzutauchen.
Um den Chatbot zu beenden, geben Sie einfach ein /bye .
Zusätzlich zu diesen beiden Softwareprogrammen können Sie im Handbuch „Run LLMs Locally: 7 Simple Methods“ nachschlagen , um weitere Anwendungen und Frameworks kennenzulernen.
Llama 3 vor Ort bedienen
Durch den Betrieb eines lokalen Servers können Sie Llama 3 in andere Anwendungen integrieren und Ihre eigene Anwendung für bestimmte Aufgaben erstellen.
Starten Sie den lokalen Modellinferenzserver, indem Sie den folgenden Befehl in das Terminal eingeben.
Um zu überprüfen, ob der Server ordnungsgemäß läuft, gehen Sie zur Taskleiste, suchen Sie das Ollama-Symbol und klicken Sie mit der rechten Maustaste, um die Protokolle anzuzeigen.
Sie gelangen zum Ollama-Ordner, wo Sie die Datei „server.log“ öffnen können, um Informationen zu Serveranforderungen über APIs und Serverinformationen mit Zeitstempeln anzuzeigen.
Zugriff auf die API mit CURL
Sie können einfach mit dem CURL-Befehl auf den Inferenzserver zugreifen.
Geben Sie einfach den Modellnamen und die Eingabeaufforderung ein und stellen Sie sicher, dass das Streaming ausgeschaltet ist, um die vollständige Nachricht zu erhalten.
Der CURL-Befehl ist nativ für Linux, Sie können ihn aber auch in Windows PowerShell verwenden, wie unten gezeigt.
Zugriff auf die API mit dem Python-Paket
Sie können das Ollama Python-Paket auch mit PIP installieren, um auf den Inferenzserver zuzugreifen.
Durch den Zugriff auf die API in Python können Sie KI-gestützte Anwendungen und Tools erstellen und die Anwendung ist denkbar einfach.
Geben Sie den Funktionen „ollama.chat“ einfach den Modellnamen und die Nachricht ein und die Antwort wird generiert.
Hinweis : Im Nachrichtenargument können Sie auch eine System- und Assistenteneingabeaufforderung hinzufügen, um den Kontext hinzuzufügen.
Das Ollama Python-Paket bietet auch Funktionen wie asynchrone Aufrufe und Streaming, die eine effektive Verwaltung von API-Anfragen ermöglichen und die wahrgenommene Geschwindigkeit des Modells erhöhen.
Ähnlich wie bei der OpenAI-API können Sie eine asynchrone Chat-Funktion erstellen und dann mit der Async-Funktion Streaming-Code schreiben, was eine effiziente und schnelle Interaktion mit dem Modell ermöglicht.
Wie Sie sehen, zeigt das Modell die Token an, sobald sie generiert werden.
Sie können die Python-API auch verwenden, um das benutzerdefinierte Modell zu erstellen, Text in Einbettungen umzuwandeln und Fehler zu behandeln. Sie können die Modelle auch kopieren, löschen, ziehen und pushen.
Integration von Llama 3 in VSCode
Sie können Ollama nicht nur als Chatbot oder zum Generieren von Antworten verwenden, sondern es auch in VSCode integrieren und Llama 3 für Funktionen wie Autovervollständigung, kontextbezogene Codevorschläge, Codeschreiben, Generieren von Docstrings, Unit-Tests und mehr verwenden.
1. Zuerst müssen wir den Ollama-Inferenzserver initialisieren, indem wir den folgenden Befehl in das Terminal eingeben.
2. Gehen Sie zu den VSCode-Erweiterungen, suchen Sie nach dem Tool „CodeGPT“ und installieren Sie es. Mit CodeGPT können Sie jeden Modellanbieter mithilfe des API-Schlüssels verbinden.
3. Richten Sie CodeGPT ein, indem Sie auf das CodeGPT-Chatsymbol im linken Bereich klicken. Ändern Sie den Modellanbieter in Ollamaund wählen Sie das llama3:8bModell aus. Sie müssen keinen API-Schlüssel angeben, da wir es lokal ausführen.
4. Schreiben Sie die Eingabeaufforderung zum Generieren des Python-Codes und klicken Sie dann auf die Schaltfläche „Code einfügen“, um den Code in Ihre Python-Datei zu übertragen. Sie können auch Folgeanweisungen schreiben, um den Code zu verbessern.
5. Abgesehen vom Codierungsassistenten können Sie CodeGPT verwenden, um den Code zu verstehen, ihn umzugestalten, ihn zu dokumentieren, den Komponententest zu generieren und die Probleme zu lösen.
Wenn Sie sich wie ein Python-Profi fühlen möchten, lesen Sie die Anleitung „VSCode für Python einrichten“, um mehr über die Kernfunktionen von VSCode zu erfahren und es an Ihre Bedürfnisse anzupassen.
Lokale Entwicklung einer KI-Anwendung
In diesem Abschnitt entwickeln wir eine KI-gestützte Anwendung, die docx-Dateien aus einem bestimmten Ordner liest, sie in Einbettungen konvertiert und sie in einem Vektorspeicher speichert.
Anschließend ermitteln wir über eine Ähnlichkeitssuche die relevanten Bedeutungen und geben kontextbezogene Antworten auf Ihre Fragen.
Mithilfe dieser Anwendung können Sie schnell die Essenz von Büchern verstehen und tiefer in die Charakterentwicklung eintauchen.
Einrichten
Zuerst installieren wir alle erforderlichen Python-Pakete zum Laden der Dokumente, des Vektorspeichers und der LLM-Frameworks.
Starten Sie dann den Ollama-Inferenzserver.
Einlegen der Dokumente
Es empfiehlt sich, Ihren Code vor dem Erstellen der App in Jupyter Notebook zu entwickeln und zu testen.
Wir werden alle docx-Dateien aus dem Ordner mithilfe von laden DirectoryLoader.
Sie können Ihren eigenen kontextsensitiven Chatbot erstellen, indem Sie dem Tutorial „ Chatbot-Entwicklung mit ChatGPT und LangChain: Ein kontextsensitiver Ansatz“ folgen .
Aufteilen des Textes
Es ist nicht möglich, dem Modell ein ganzes Buch zuzuführen, da dies sein Kontextfenster überschreiten würde. Um diese Einschränkung zu überwinden, müssen wir den Text in kleinere, überschaubarere Abschnitte aufteilen, die bequem in das Kontextfenster des Modells passen.
In unserem Fall konvertieren wir alle vier Bücher in eine Blockgröße von 500 Zeichen.
Ollama-Einbettungen und Chroma-Vektorspeicher
Wir werden Langchain verwenden, um den Text in die Einbettung zu konvertieren und in der Chroma-Datenbank zu speichern.
Wir verwenden das Ollama Llama 3-Modell als Einbettungsmodell.
Lassen Sie uns unsere Vektordatenbank testen, indem wir einige Ähnlichkeitssuchen durchführen.
Wir haben vier Ergebnisse erhalten, die der Frage ähnlich sind.
Sie können tief in die Welt der Vektordatenbank und von Chroma DB eintauchen, indem Sie das Lernprogramm „ Erfahren Sie, wie Sie Chroma DB verwenden: Eine Schritt-für-Schritt-Anleitung“ lesen .
Erstellen von Langchain-Ketten für ein Q&A-Abrufsystem
Um ein geeignetes Frage-und-Antwort-Abrufsystem aufzubauen, werden wir Langchain-Ketten verwenden und mit dem Hinzufügen der Module beginnen.
In unserer Frage-und-Antwort-Kette werden wir
- Verwenden Sie den Vektorspeicher als Abrufprogramm und formatieren Sie die Ergebnisse.
- Danach stellen wir die RAG-Eingabeaufforderung bereit. Sie können diese ganz einfach vom Langchain Hub abrufen.
- Anschließend stellen wir die Ollama Llama 3-Inferenzfunktion bereit.
- Am Ende werden wir nur die Ergebnisse analysieren, um die Antwort anzuzeigen.
Einfach ausgedrückt: Bevor Ihre Frage durch das Llama 3-Modell geleitet wird, wird sie mithilfe der Ähnlichkeitssuche und der RAG-Eingabeaufforderung mit einem Kontext versehen.
Sie können eine ähnliche Anwendung mit LLamaIndex erstellen. Folgen Sie dazu dem Tutorial „LlamaIndex: Ein Datenframework für auf Large Language Models (LLMs) basierende Anwendungen“ .
Testen der Q&A-Abrufkette
Stellen Sie relevante Fragen zu Büchern, um mehr über die Geschichte zu erfahren.
Wie wir sehen, liefert die Verwendung von Büchern als Kontext eine genaue Antwort.
Stellen wir nun eine Frage zum Charakter.
Es wurde eine präzise Antwort generiert.
Erstellen der KI-Anwendung
Um eine vollwertige KI-Anwendung zu erstellen, die nahtlos auf Ihrem Terminal läuft, kombinieren wir den gesamten Code aus den vorherigen Abschnitten in einer einzigen Python-Datei.
Darüber hinaus werden wir den Code erweitern, um interaktive Abfragen zu ermöglichen. So können Sie der App wiederholt Fragen stellen, bis Sie die Sitzung explizit durch Eingabe von „exit“ beenden.
Führen Sie die Anwendung aus, indem Sie „Python“ und den Dateinamen in das Terminal eingeben.
Das ist cool. Wir haben unsere eigene RAG-KI-Anwendung lokal mit wenigen Codezeilen erstellt.
Der gesamte Quellcode für dieses Tutorial ist im GitHub-Repository kingabzpro/using-llama3-locally verfügbar . Schauen Sie es sich bitte an und denken Sie daran, das Repository mit einem Stern zu versehen oppenheimer.
Fazit
Die Möglichkeit, Llama 3 lokal auszuführen und Anwendungen zu erstellen, wäre ohne die unermüdlichen Bemühungen der KI-Open-Source-Community nicht möglich gewesen. Diese Community engagierter Einzelpersonen arbeitet Tag und Nacht daran, KI für alle zugänglich zu machen, sodass wir die Leistungsfähigkeit dieser Modelle nutzen und unsere eigenen Systeme erstellen können.
Auf diese Weise können wir Datenschutz und Sicherheit gewährleisten und gleichzeitig Abonnement- oder API-Gebühren vermeiden. Wenn Sie Teil dieses Ökosystems sein möchten, tragen Sie bitte zum Projekt bei, verbreiten Sie es und spenden Sie auch.
In diesem Tutorial haben wir gelernt, Llama 3 lokal auf einem Laptop zu verwenden. Wir haben auch etwas über den Inferenzserver gelernt und wie wir ihn verwenden können, um Llama 3 in VSCode zu integrieren.
Letztendlich haben wir das Q&A-Abrufsystem mit Langchain, Chroma und Ollama erstellt. Die Daten haben das lokale System nie verlassen und Sie mussten für die Erstellung nicht einmal einen einzigen Dollar bezahlen. Abgesehen von den einfacheren Anwendungen können Sie mit denselben Tools, die wir in diesem Tutorial verwendet haben, auch komplexe Systeme erstellen.
Der nächste logische Schritt auf Ihrem Lernweg ist die Teilnahme am Skill Track „Entwicklung großer Sprachmodelle“ . Sie lernen etwas über Deep Learning, Transformer-Architektur, die Feinabstimmung von LLMs und LLMOps.