Diese kleine Anleitung baut sich aus mehreren Beiträgen auf und führt euch Schritt für Schritt von der Installation bis zur fertigen Applikation. So ist die Anleitung zunächst einmal aufgebaut, dass Ollama installiert wird. Ollama wird als Server eingesetzt das die verschiedenen Sprachenmodelle bereitstellt. Der große Vorteil von Ollama (https://github.com/ollama/ollama) ist es, dass es verschiedene Sprachenmodelle bereitstellen kann die über eine API aus der eigentlichen Python-Anwendung angesprochen werden. So läuft alles lokal auf dem eigenen Rechner und es entstehen keine zusätzlichen Kosten wie diese anfallen bei der Benutzung z. B. der OpenAI Services. Ich bin immer ein Freund alles daheim lokal laufen zu lassen und auch aus Datenschutzgesichtspunkten finde ich diese Lösung so ganz gut.

Hinweis: Ich installiere alles auf einen Ubuntu System in dem eine NVIDIA A6000 ihren Dienst verrichtet.

Deep Learning Computer NVIDIA RTX A6000

Deep Learning Computer NVIDIA RTX A6000

Ollama Installation

Jetzt wird zunächst einmal Ollama auf dem Ubuntu System installiert. Ich habe dazu den nachfolgenden Befehl in meiner user-session ausgeführt.

Befehl: curl -fsSL https://ollama.com/install.sh | sh

Nach der Installation laden wir noch das große Sprachenmodell mistral herunter das nicht allzu große Anforderungen an die Grafikkarte hat und damit bei vielen auf einer RTX3090 oder ähnlich laufen sollte. Für die Installation bitte jetzt den folgenden Befehl ausführen.

Ollama Sprachenmodelle

Hier gibt es immer die aktuell Übersicht der für Ollama zur Verfügung gestellten Modelle: https://ollama.com/library

Befehl: ollama pull mistral

Befehl: ollama pull gemma:7b

Befehl: ollama pull gemma:2b

Die Modelle liegen dann unter Linux oder WSL im folgenden Pfad: /usr/share/ollama/.ollama/models

Mit dem folgenden Befehl kannst Du prüfen ob mistral und die anderen Modelle herunter geladen wurden und erfolgreich in ollama zur Verfügung steht.

Befehl: ollama list

Möchtest Du ein Modell löschen dann lautet der Befehl wie folgt.

Befehl: ollama rm <Model-Name>

Soll ein Modell aktualisiert werden dann geht das wieder mit dem bereits bekannten Befehl für das Installieren von Modellen.

Befehl: ollama pull <Model-Name>

Ollama TextEmbedding

Die wichtigsten Informationen zum Thema Text-Embeddings gibt es hier: https://python.langchain.com/docs/integrations/text_embedding/ollama

Ollama starten

Jetzt startet einfach einmal mit dem folgenden Befehl den Ollama Server. Mit diesem wird dann unsere Applikation kommunizieren und das mistral LLM aufrufen.

Befehl: ollama serve

Hinweis: Wenn jetzt die folgende Meldung angezeigt wird, dann beläuft bereits der Ollama Server und ihr müsst erst einmal nichts weiter machen.

(ollama_rag) ingmar@A6000:~$ ollama serve
Error: listen tcp 127.0.0.1:11434: bind: address already in use

Jetzt ist alles soweit eingerichtet und es kann damit losgehen die kleine RAG Applikation zu schreiben. Mit dieser bist Du dann in der Lage ein PDF-Dokument mit natürlicher Sprache zu durchsuchen.

Ollama aktualisieren

Die Installation von Ollama kann recht einfach aktualisiert werden. Der Befehl um die aktuell verwendete Version von Ollama sich ausgeben zu lassen ist wie folgt.

Befehl: ollama --version

Bei mir war zu diesem Augenblick die Version “ollama version is 0.1.25” installiert.

Die aktuell verfügbare Version von Ollama erfährt mann hier rechts in dem Menü: https://github.com/ollama/ollama

Mit dem folgenden bereits von der Installation bekannten Befehl kann man Ollama unter Ubuntu aktualisieren.

Befehl: curl -fsSL https://ollama.com/install.sh | sh

Nach dem ich den Befehl noch einmal ausgeführt hatte war die aktuelle Version 0.1.27 installiert.

Ollama im Netzwerk erreichbar machen

Hier möchte ich euch kurz erklären wie ihr den Ollama service in eurem Netzwerk von einem anderen Rechner aus erreichbar macht. Dazu bitte einmal den folgenden Befehl im Terminalfenster ausführen. Der große Vorteil bei diesem Vorgehen ist es, dass nach einer Aktualisierung von ollama die Konfiguration erhalten bleibt also nicht überschrieben wird.

Befehl: sude systemctl edit ollama.service

Jetzt müsst ihr die beiden folgenden Zeilen einfügen direkt unter der Kommentarzeilte.

[Service]
Environment="OLLAMA_HOST=0.0.0.0"

Die Ergänzung sollte jetzt wie im folgenden Bild gezeigt aussehen.

ollama network config

ollama network config

Jetzt muss die Anpassung der Konfiguration noch geladen werden. Dazu bitte die beiden folgenden Befehle ausführen.

Befehl: systemctl daemon-reload
Befehl: systemctl restart ollama

Jetzt sollte ollama über ads Netzwerk erreichbar sein. Das könnt ihr ausprobieren wenn ihr die folgende URL ladet. Es sollten alle LLMs angezeigt werden die ihr auf dem Server verfügbar habt.

URL: <IP-Adresse:11434/api/tags>

Zusammenfassung

Mit dem Ollama Framework ist es sehr leicht geworden verschiedene Sprachenmodelle lokal zu betreiben und über eine API im Netzwerk verfügbar zu machen. Das wirklich tolle hieran ist, dass LangChain Ollama unterstützt und so die Programmierung des Aufrufes des Endpunktes in der eigenen Python Anwendung denkbar einfach möglich ist. In meinem weiteren Beitrag gehe ich auf das Python Programm ein das genau diese kleine RAG Anwendung zum  Leben erweckt.