Large Language Models Tutorial

5 Wege, LLMs lokal auszuführen

13.05.2024 von Sharon Machlis
Ein Large Language Model auf Ihren Desktop zu bekommen, gestaltet sich überraschend einfach – die richtigen Tools vorausgesetzt. Unser LLM-Tutorial zeigt, wie's geht.
Large Language Models lokal zu betreiben, muss keine Kopfschmerzen bereiten.
Foto: Jamie Jin | shutterstock.com

Chatbots im Stil von ChatGPT, Claude oder phind können extrem hilfreich sein. Wenn Sie allerdings verhindern möchten, dass die externen Applikationen möglicherweise sensible Daten verarbeiten, respektive diese nutzen, um die zugrundeliegenden, großen Sprachmodelle (Large Language Models; LLMs) zu trainieren, bleibt nur eine Lösung: Sie laden ein LLM auf Ihren Rechner und führen es lokal aus. Das ist auch eine gute Option, um neue Spezialmodelle auszutesten, etwa Metas Code-Llama-Modellfamilie oder SeamlessM4T.

Ein eigenes LLM lokal zu betreiben, mag dabei auf den ersten Blick komplex wirken. Mit den richtigen Tools ist das allerdings überraschend simpel. Zudem sind die Anforderungen, die das an die Hardware stellt, nicht übermäßig. Wir haben die in diesem Tutorial vorgestellten Optionen auf zweierlei Systemen getestet:

Das wahrscheinlich größte Hindernis, wenn Sie dieses Unterfangen angehen wollen: Sie müssen ein Modell finden, das für die angestrebten Tasks geeignet ist und auf Ihrer Hardware läuft. Dabei funktionieren nur wenige so gut wie die bekannten GenAI-Tools der großen Unternehmen. Wie Simon Willison, Schöpfer des Kommandozeilen-Tools LLM, argumentiert, muss das jedoch kein Nachteil sein: "Einige Modelle, die auf Laptops laufen, halluzinieren wie wild. Das ist meiner Meinung nach ein guter Grund, sie einzusetzen. Denn das trägt zum allgemeinen Verständnis der Modelle - und ihrer Grenzen - bei."

1. Lokaler Chatbot mit GPT4All

Den Desktop-Client von gpt4all herunterzuladen (verfügbar für Windows, MacOS und Ubuntu), bietet sich an, wenn Sie einen Chatbot aufsetzen wollen, der keine Daten an Dritte sendet. GPT4All ist dabei einfach einzurichten: Sobald Sie die Desktop-App zum ersten Mal öffnen, werden Ihnen ein knappes Dutzend LLM-Optionen angezeigt, die lokal ausgeführt werden können - beispielsweise Metas Llama-2-7B chat. Darüber hinaus können Sie auch OpenAIs GPT-3.5 und GPT-4 für die nicht lokale Nutzung einrichten (einen API-Key vorausgesetzt).

Sobald die Large Language Models eingerichtet sind, erwartet Sie ein übersichtliches und selbsterklärendes Chatbot-Interface.
Foto: Sharon Machlis / IDG

Darüber hinaus steht auch ein neues Beta-Plugin namens LocalDocs bereit. Das ermöglicht Ihnen, lokal mit Ihren eigenen Dokumenten zu "chatten". Sie können es über die Registerkarte Settings aktivieren. Dieses Plugin befindet sich noch in der Entwicklung - Halluzinationen sind deshalb nicht ausgeschlossen. Nichtsdestotrotz handelt es sich um eine interessante Funktion, die sich parallel zu den Open-Source-LLMs verbessern dürfte.

Neben der Chatbot-Anwendung verfügt GPT4All auch über Bindings für Python und Node sowie eine Befehlszeilenschnittstelle. Auch ein Servermodus steht zur Verfügung, über den Sie mit ihrem lokalen Large Language Model über eine http-API interagieren können. Diese Schnittsatelle ist ähnlich strukturiert wie die von Open AI und erleichtert es, lokale Sprachmodelle mit nur wenigen Änderungen am Code gegen die von OpenAI auszutauschen.

2. LLM in der Kommandozeile

Das eingangs bereits erwähnte Tool von Simon Willison - LLM - bietet eine simple Option, um quelloffene, große Sprachmodelle herunterzuladen und lokal auf dem eigenen Rechner auszuführen. Dafür müssen Sie zwar Python installiert haben, aber keinen Python-Code anfassen.

Wenn Sie auf einem Mac arbeiten und Homebrew benutzen, installieren Sie es einfach mit:

brew install llm

Wenn Sie einen Windows-Rechner nutzen, verwenden Sie Ihre bevorzugte Methode, um Python-Bibliotheken zu installieren - etwa:

pip install llm

LLM verwendet standardmäßig die Modelle von OpenAI. Andere Modelle lassen sich aber über Plugins verwenden. Mit dem gpt4all-Plugin haben Sie beispielsweise Zugriff auf dessen lokale Modelle. Es stehen auch Plugins für Llama, das MLC-Projekt und MPT-30b sowie andere Remote-Modelle zur Verfügung

Plugins installieren Sie über die Kommandozeile mit:

llm install model-name

Folgender Befehl zeigt darüber hinaus alle verfügbaren Sprachmodelle an:

llm models list

LLM listet bei Bedarf alle verfügbaren Sprachmodelle auf.
Foto: Sharon Machlis / IDG

Um eine Anfrage an ein lokales LLM zu senden, nutzen Sie folgende Syntax:

llm -m the-model-name "Your query"

Was die Benutzererfahrung von LLM elegant gestaltet, ist der Umstand, dass das Tool das GPT4All-LLM automatisch auf Ihrem System installiert, falls es nicht vorhanden sein sollte. Das LLM-Plugin für Metas Llama-Modelle erfordert ein wenig mehr Einstellungsarbeit als im Fall von GPT4All. Die Details dazu entnehmen Sie dem GitHub-Repository des Tools.

Das LLM-Tool verfügt darüber hinaus über weitere Funktionen, etwa ein argument-Flag, das sich aus vorherigen Chat-Sessions übernehmen und innerhalb eines Python-Skripts übernehmen lässt.

3. Llama auf dem Mac mit Ollama

Wenn Sie es noch einfacher als mit LLM haben möchten (dabei aber auch Limitationen in Kauf nehmen können), ist das Open-Source-Tool Ollama einen Blick wert. Dieses steht aktuell für macOS und Linux zur Verfügung - eine Windows-Version ist den Verantwortlichen zufolge in Entwicklung.

Die Installation ist mit ein paar Klicks erledigt - und obwohl es sich bei Ollama ebenfalls um ein Kommandozeilen-Tool handelt, gibt es nur einen Befehl:

ollama run model-name

Sollte das betreffende Modell auf Ihrem System noch nicht vorhanden sein, wird es automatisch heruntergeladen. Die Liste der aktuell verfügbaren LLMs können Sie jederzeit online einsehen.

So sieht es aus, wenn Code Llama in einem Ollama Terminal-Fenster läuft.
Foto: Sharon Machlis / IDG

Das README des Ollama GitHub-Repos enthält eine hilfreiche Liste einiger Modellspezifikationen und hifreiche Hinweise dazu, welche Modelle wie viel Arbeitsspeicher erfordern. Bei unserem Test performte das Llama-LLM 7B Code erstaunlich flott und gut (Mac M1). Obwohl es das kleinste Modell der Llama-Familie ist, brachte eine Frage zu R-Code ("Schreibe R-Code für ein ggplot2-Diagramm mit blauen Balken.") es nicht aus dem Konzept - auch wenn die Antwort, beziehungsweise der Code nicht perfekt war). Ollama bietet zudem einige zusätzliche Funktionen, etwa eine Integrationsmöglichkeit mit LangChain.

4. Mit Dokumenten chatten über h2oGPT

Bei h2o.ai beschäftigt man sich schon seit einiger Zeit mit automatisiertem Machine Learning. Da verwundert es nicht, dass der Open-Source-affine Anbieter inzwischen mit h2oGPT auch in den Bereich der Chatbot-LLMs vorgestoßen ist. Dieses steht in einer kostenlosen Testversion zum Download zur Verfügung. Diese ermöglicht zwar nicht, das LLM auf Ihr System herunterzuladen. Sie können aber damit testen, ob das Interface etwas für Sie ist.

Für eine lokale Version des Tools klonen Sie das GitHub-Repository, erstellen und aktivieren eine virtuelle Python-Umgebung und führen dann die folgenden fünf Codezeilen aus (die Sie auch in der README finden):

pip install -r requirements.txt

pip install -r reqs_optional/requirements_optional_langchain.txt

pip install -r reqs_optional/requirements_optional_gpt4all.txt

python generate.py --base_model=llama --prompt_type=llama2 --model_path_llama=https://huggingface.co/TheBloke/Llama-2-7b-Chat-GGUF/resolve/main/llama-2-7b-chat.Q6_K.gguf --max_seq_len=4096

Das führt Sie zu einer "limitierten Dokumentenabfragefähigkeit" und einem Llama-Modell von Meta. Eine weitere Codezeile reicht, um eine lokale Version und eine Anwendung unter http://localhost:7860 zur Verfügung zu stellen:

python generate.py --base_model='llama' --prompt_type=llama2

Ohne weiteren Dateninput hinzuzufügen, können Sie die Applikation als allgemeinen Chatbot verwenden. Wenn Sie eigene Daten - etwa Dokumente - hochladen, können Sie anschließend gezielt Fragen zu den Inhalten stellen. Zu den kompatiblen Dateiformaten gehören unter anderem:

Die Benutzeroberfläche von h2oGPT bietet außerdem eine "Expert"-Registerkarte, die eine Reihe von Konfigurationsoptionen für Benutzer bereitstellen, die wissen, was sie tun.

Ein Blick auf das "Expert"-Tab in h2oGPT.
Foto: Sharon Machlis / IDG

5. Dokumente abfragen mit PrivateGPT

Mit PrivateGPT können Sie Ihre Dokumente in natürlicher Sprache abfragen. Die Dokumente können in dieser Anwendung dabei mehrere Dutzend verschiedene Formate umfassen. Laut der README zum Projekt sollen die Daten dabei privat bleiben und zu keinem Zeitpunkt die Ausführungsumgebung verlassen. Das Tool funktioniert also auch ohne Internetverbindung.

PrivateGPT verfügt über Skripte, um:

Wenn Sie eine Frage stellen, sucht die App nach relevanten Dokumenten und sendet nur diejenigen an das LLM, um eine präzise Antwort zu generieren. Wenn Sie mit Python vertraut sind, können Sie das vollständige PrivateGPT-Repository klonen und es lokal ausführen. Sollte das nicht der Fall sein, steht auf GitHub auch eine vereinfachte Version zur Verfügung. Die README-Datei letztgenannter Version enthält detaillierte Anweisungen, die kein Python-Sysadmin-Knowhow voraussetzen.

PrivateGPT enthält die Funktionen, die man sich von einer "Chat mit eigenen Dokumenten"-Anwendung im Terminal wahrscheinlich am ehesten vorstellt. Allerdings warnt die Dokumentation davor, das Tool in der Produktion einzusetzen. Wenn Sie es trotzdem tun, werden Sie schnell feststellen, warum. Selbst die kleine Modelloption lief auf unserem Heim-PC sehr träge.

Weitere Wege zum lokalen LLM

Es gibt weitere Möglichkeiten, Large Language Models auf lokaler Ebene auszuführen - von der fertigen Desktop-App bis hin zum DIY-Skript. Eine kleine Auswahl:

Jan

Dieses relativ junge Open-Source-Projekt zielt darauf ab, den Zugang zu künstlicher Intelligenz mit "offenen, lokal ausgerichteten Produkten" zu demokratisieren. Die App ist einfach herunterzuladen und zu installieren, das Interface bietet eine gute Balance zwischen Anpassbarkeit und Benutzerfreundlichkeit. Auch Modelle auszuwählen geht mit Jan intuitiv vonstatten. Über den im untenstehenden Screenshot abgebildeten Hub des Projekts stehen mehr als 30 KI-Modelle zum Download zur Verfügung - weitere lassen sich (im GGUF-Format) importieren. Sollte Ihr Rechner für bestimmte LLMs zu schwach auf der Brust sein, sehen Sie das bereits bei der Modellauswahl im Hub. Auch wenn nicht genug Arbeitsspeicher zur Verfügung steht (oder knapp wird), erhalten Sie eine entsprechende Meldung.

Ein Blick auf den Modell-Hub des Jan-Projekts.
Foto: Sharon Machlis | IDG

Die Chat-Oberfläche von Jan enthält auf der rechten Seite einen Bereich, in dem Sie Systemanweisungen für das LLM festlegen und Parameter anpassen können. Ausreichend RAM vorausgesetzt, werden die Outputs relativ flott gestreamt. Mit Jan dürfen Sie übrigens nicht nur lokal arbeiten, sondern auch OpenAI-Modelle aus der Cloud nutzen. Darüber hinaus lässt sich das Tool für die Arbeit mit Remote- oder lokalen API-Servern konfigurieren.

Die Chat-Oberfläche von Jan ist detailliert und einfach zu benutzen.
Foto: Sharon Machlis | IDG

Die Projektdokumentation von Jan ist noch etwas spärlich (Stand April 2024). Nur gut, dass das Gros der Anwendung intuitiv zu bedienen ist. Ein entscheidender Vorteil von Jan gegenüber LMStudio ist, dass Jan unter der AGPLv3-Lizenz als Open Source Software verfügbar ist. Somit ist eine uneingeschränkte kommerzielle Nutzung erlaubt, solange alle abgeleiteten Werke ebenfalls quelloffen sind. Jan ist für Windows, macOS und Linux verfügbar.

Nvidia ChatRTX

Die Nvidia-Demoanwendung ChatRTX wurde entwickelt, um Fragen zu Dokumentenverzeichnissen zu beantworten. Seit dem Start im Februar 2024 nutzt das Tool wahlweise das Mistral- oder das Llama-2-LLM auf lokaler Basis. Die Hardware-Voraussetzungen: Ein Windows-PC mit GPU (Nvidia-Geforce-RTX-30-Serie oder höher) und mindestens 8 GB Video-RAM. Bei einer Download-Größe von 35 GB ist außerdem eine robuste Internetanbindung zu empfehlen. Sind die Voraussetzungen erfüllt und die Applikation entpackt, bietet ChatRTX ein simples Interface, das einfach und intuitiv zu bedienen ist.

Das Interface von Nvidias ChatRTX.
Foto: Sharon Machlis | IDG

Wählen Sie ein LLM und den Pfad zu Ihren Dateien aus, warten Sie darauf, dass die Anwendung Einbettungen für Ihre Dateien erstellt - Sie können diesen Vorgang im Terminalfenster verfolgen - und stellen Sie dann Ihre Frage. Die Antwort enthält Links zu den Dokumenten, die das Modell verwendet hat, um seinen Output zu generieren. Die Nvidia-App unterstützt derzeit .txt-, .pdf- und .doc-Dateien sowie YouTube-Videos (über eine URL).

Eine ChatRTX-Sitzung mit Links zu Quelldokumenten.
Foto: Sharon Machlis | IDG

Beachten sollten Sie dabei, dass die Anwendung keine Unterverzeichnisse durchsucht - Sie müssen also alle relevanten Dateien in einem Ornder ablegen. Wenn Sie dem Verzeichnis weitere Dokumente hinzufügen möchten, klicken Sie auf die Aktualisierungs-Schaltfläche oben rechts neben dem Datensatz, um die Einbettungen neu zu generieren

llamafile

Mozillas llamafile ermöglicht es Entwicklern, kritische Teile großer Sprachmodelle in ausführbare Dateien zu verwandeln. Dazu gehört auch eine Software, mit der LLM-Dateien im GGUF-Format heruntergeladen, importiert und in einem lokalen Chat-Interface im Browser ausgeführt werden können.

Um llamafile auszuführen, laden Sie die aktuelle Serverversion herunter mit (siehe README):

curl -L https://github.com/Mozilla-Ocho/llamafile/releases/download/0.1/llamafile-server-0.1 > llamafile

chmod +x llamafile

Anschließend laden Sie ein Modell Ihrer Wahl herunter. Für diesen Artikel haben wir uns für Zephyr entschieden und eine Version von Hugging Face heruntergeladen (Link führt direkt zum GGUF-Download). Nachdem das erledigt ist, führen Sie das Modell aus mit:

./llamafile --model ./zephyr-7b-alpha.Q4_0.gguf

Öffnen Sie es nun in Ihrem Browser unter http://127.0.0.1:8080. Sie sehen einen Eröffnungsbildschirm mit verschiedenen Chat-Optionen:

Sobald Sie eine Abfrage eingeben...
Foto: Sharon Machlis / IDG
...verwandelt sich der Startbildschirm in ein simples Chatbot-Interface.
Foto: Sharon Machlis / IDG

Während llamafile auf meinem Mac extrem einfach zum Laufen zu bringen war, stießen wir unter Windows auf einige Probleme. Wie ollama ist auch llamafile nicht die erste Wahl, wenn es um Plug-and-Play-Software für Windows geht.

LocalGPT

Dieser Ableger von PrivateGPT bietet mehr Modelloptionen und stellt darüber hinaus detaillierte Anleitungen zur Verfügung. Auf Youtube ist außerdem ein 17-minütiger Video-Walkthrough abrufbar.

LM Studio

Eine weitere Desktop-Anwendung, die wir angetestet haben, ist LM Studio. Sie zeichnet sich durch eine benutzerfreundliche, simple Chat-Oberfläche aus. Geht es um die Modellauswahl, sind Sie allerdings auf sich gestellt. Dass der Hugging Face Hub als Hauptquelle für Modell-Downloads innerhalb von LM Studio dient, macht die Sache nicht besser, denn die Auswahl ist überwältigend.

LangChain

Eine weitere Option: Large Language Models für die lokale Verwendung über das Open-Source-Framework LangChain herunterzuladen. Das erfordert jedoch Programmierkenntnisse in Zusammenhang mit dem LangChain-Ökosystem.

Wenn Sie damit vertraut sind, sollten Sie sich folgende Ressourcen für den lokalen LLM-Betrieb genauer ansehen:

Bei OpenLLM handelt es sich um eine eigenständige Plattform, die entwickelt wurde, um LLM-basierten Applikationen in der Produktion bereitzustellen. (fm)

Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.