Diese Anleitung besteht aus mehreren Teilen und führt dich Schritt für Schritt von der Installation bis zur fertigen Anwendung. Zunächst wird Ollama auf einem Ubuntu-System installiert. Ollama fungiert als Server, der verschiedene Sprachmodelle bereitstellt. Ein großer Vorteil von Ollama (GitHub-Link) ist die Fähigkeit, mehrere Sprachmodelle über eine API für Python-Anwendungen verfügbar zu machen. Dadurch läuft alles lokal auf deinem Rechner, wodurch zusätzliche Kosten, wie sie beispielsweise bei der Nutzung von OpenAI-Services anfallen, vermieden werden. Zudem fördert dies die Datensicherheit, da keine Daten an externe Dienste übertragen werden.
Hinweis: In diesem Beispiel wird die Installation auf einem Ubuntu-System durchgeführt, das mit einer NVIDIA A6000 Grafikkarte ausgestattet ist.
Ollama Installation
Zunächst installieren wir Ollama auf dem Ubuntu-System. Führe dazu den folgenden Befehl in deiner Benutzersitzung aus:
Befehl: curl -fsSL https://ollama.com/install.sh | sh
Sprachmodelle herunterladen
Nach der Installation laden wir das große Sprachmodell Mistral herunter, das moderate Anforderungen an die Grafikkarte stellt und somit auch auf einer RTX3090 oder ähnlichen GPUs gut läuft. Verwende dazu die folgenden Befehle:
Befehl: ollama pull mistral
Befehl: ollama pull gemma:7b
Befehl: ollama pull gemma:2b
Eine Übersicht aller für Ollama verfügbaren Modelle findest du hier.
Die Modelle werden unter Linux oder WSL im folgenden Pfad gespeichert:
Pfad: /usr/share/ollama/.ollama/models
Überprüfe, ob die Modelle erfolgreich heruntergeladen wurden und Ollama sie bereitstellt:
Befehl: ollama list
Modelle verwalten
Modelle löschen
Befehl: ollama rm <Model-Name>
Modelle aktualisieren
Befehl: ollama pull <Model-Name>
Ollama TextEmbedding
Weitere Informationen zu Text-Embeddings mit Ollama findest du in der LangChain-Dokumentation.
Ollama Server starten
Starte den Ollama-Server mit folgendem Befehl. Dieser ermöglicht deiner Anwendung die Kommunikation mit dem Mistral-LLM.
Befehl: ollama serve
Hinweis: Sollte die folgende Fehlermeldung erscheinen, ist der Ollama-Server bereits aktiv, und du musst nichts weiter unternehmen.
(ollama_rag) ingmar@A6000:~$ ollama serve
Error: listen tcp 127.0.0.1:11434: bind: address already in use
Nun ist alles eingerichtet und du kannst mit der Entwicklung einer kleinen RAG-Applikation beginnen, die es ermöglicht, PDF-Dokumente mit natürlicher Sprache zu durchsuchen.
Ollama aktualisieren
Die Aktualisierung von Ollama ist einfach. Überprüfe zunächst die installierte Version:
Befehl: ollama --version
Beispielausgabe:
ollama version is 0.3.14
Die neueste Version findest du im Ollama GitHub-Repository. Aktualisiere Ollama mit dem folgenden Befehl:
Befehl: curl -fsSL https://ollama.com/install.sh | sh
Nach der Ausführung zeigt beispielsweise ollama --version
die Version 0.4.0
an.
Sprachenmodelle aktualisieren
Das Aktualisieren der Sprachmodelle kann Zeit und Speicherplatz beanspruchen. Zudem kann sich das Verhalten der Modelle ändern, was möglicherweise Anpassungen in deinen Anwendungen erfordert. Hier ein Beispielskript, das alle vorhandenen Modelle aktualisiert:
#!/bin/bash
ollama list | tail -n +2 | awk '{print $1}' | while read -r model; do
ollama pull $model
done
Vorsicht: Dieses Skript kann mehrere Gigabyte an Daten herunterladen und den Rechner belasten. Es wird empfohlen, das Skript über Nacht laufen zu lassen.
Ollama im Netzwerk erreichbar machen
Um den Ollama-Service von anderen Rechnern im Netzwerk zugänglich zu machen, bearbeite die Systemd-Service-Datei:
Befehl: sudo systemctl edit ollama.service
Füge direkt unter der Kommentarzeile die folgenden Zeilen ein:
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Die Ergänzung sollte jetzt wie im folgenden Bild gezeigt aussehen.
Speichere die Datei und lade die Konfiguration neu:
Befehl: systemctl daemon-reload
Befehl: systemctl restart ollama
Ollama ist nun über das Netzwerk erreichbar. Teste dies, indem du die folgende URL in deinem Browser aufrufst (ersetze <IP-Adresse>
durch die tatsächliche IP deines Servers):
URL: <IP-Adresse:11434/api/tags>
Zur Fehlersuche kannst du die gesetzten Umgebungsvariablen und die Konfiguration einsehen:
Befehl: systemctl show ollama.service --property=Environment
Das Ollama-Log kannst du mit diesem Befehl anzeigen lassen:
Befehl: sudo journalctl -u ollama.service -e
Überprüfe den Status von Ollama mit:
Befehl: sudo systemctl status ollama.service
Speicherort der Sprachenmodelle ändern
Falls du einen spezifischen Pfad für die Sprachmodelle verwenden möchtest, passe die Konfiguration wie folgt an:
Befehl: sudo systemctl edit ollama.service
Füge die Umgebungsvariable für den neuen Pfad hinzu:
Environment="OLLAMA_MODELS=/your/desired/path" #you will add this line
Hinweis: Stelle sicher, dass der angegebene Pfad existiert und dass Ollama Schreibzugriff darauf hat.
Befehl: systemctl daemon-reload
Befehl: systemctl restart ollama
Jetzt sieht die Service Konfiguration wie folgt aus.
Zusammenfassung
Mit dem Ollama-Framework kannst du problemlos verschiedene Sprachmodelle lokal betreiben und über eine API im Netzwerk verfügbar machen. Besonders vorteilhaft ist die Unterstützung von LangChain, die die Integration in eigene Python-Anwendungen vereinfacht. In meinem nächsten Beitrag werde ich auf die Erstellung einer Python-Anwendung eingehen, die diese kleine RAG-Applikation zum Leben erweckt.
Hallo Anton, die Meldung besagt das in meinem Beisiel Methoden verwendet werden die veraltet (deprecated) sind. Also müsstest Du die…
Danke für das Tool! Ich habe erst kürzlich angefangen mich mit der Thematik zu beschäftigen und bin für meine Erwartungen…
Hallo, ich habe ihre Anleitung befolgt und bekomme im letzten Schritt leider immer folgende Meldung im Terminal: bash <(wget -qO-…
Hi Dennis, vielen Dank für den Hinweis, ich habe die URLs angepasst so das diese wieder gehen. Ich bin gespannt…
Ich weiss, es ist noch im Aufbau. Aber hier ist ein Broken Link: https://www.ai-box.eu/smurf_training_data_small.zip Freue mich drauf, die ganze Serie…