Ollama ist ein Runner für Large Language Modelle (LLM) im Format GGUF.

Herunterladen von Modellen#

Teilweise können diese direkt von der Seite ollama.com heruntergeladen werden:
ollama pull llama3.2:1b

Andere Modelle können von Huggingface heruntergeladen werden:

ollama pull hf.com/<model-name>

Installation von Modellen über Modelfile#

Ansonsten können Modelle über ein Modelfile erzeugt werden. Im einfachsten Fall sieht das so aus:
FROM ./<model-file>.gguf

Dann führt man ollama create aus:

ollama create <model-name> -f .\Modelfile

Ollama Tunnel#

Lokales Ollama auf einen Server im Internet tunneln:
  • OpenSSH installieren
  • AutoSSH installieren
  • Ein Schlüsselpaar id_rsa und id_rsa.pub erzeugen
  • Den öffentlichen Schlüssel auf dem Server installieren
  • Den privaten Schlüssel nach C:\Windows\System32\config\systemprofile\.ssh kopieren
  • Gegebenenfalls known_hosts ebenfalls dort installieren
  • Falls Ollama für den privaten Nutzer installiert ist, dies z.B. nach C:\server\ollama verschieben
  • Mit NSSM (Non-Sucking Service Manager) sowohl Ollama als auch AutoSSH als Windows Service installieren

Der Befehl für AutoSSH sieht etwa wie folgt aus:

autossh -M 0 -v -o TCPKeepAlive=yes -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -R 172.17.0.1:11434:localhost:11434 <user>@<host>
  • -M 0: Monitoring der Verbindung
  • -v: Verbose, kann von NSSM in eine Logdatei umgeleitet werden
  • -o: Diverse Keepalives
  • -R: Reverse-Portweiterleitung von lokal 11434 remote auf Docker-IP-Range

Gegebenenfalls auf dem Ubunto-Host SSH Port Forwarding aktivieren (in /etc/ssh/sshd_config):

GatewayPorts clientspecified
AllowTcpForwarding yes

Hinweis: Es sollte nicht "GatewayPorts yes" verwendet werden, da die Ports sonst komplett ins Internet weitergeleitet werden.

Die Konfigurationsdatei von SSH liegt unter dem User SYSTEM im Pfad "C:\WINDOWS\System32\config\systemprofile\.ssh". Dort kann man die Einstellungen eintragen:

Host *
    AddressFamily inet
    ServerAliveInterval 30
    ServerAliveCountMax 5
    TCPKeepAlive yes

Warnung: SSH ist hier ganz pingelig mit den Berechtigungen, wenn AutoSSH unter SYSTEM startet. Owner der Konfigurationsdateien muss SYSTEM sein und es darf niemand Zugriff haben, nicht einmal Administrator.

Fixen der Berechtigungen mit dem Powershell-Script fix.ps1:

icacls "C:\WINDOWS\system32\config\systemprofile\.ssh\config" /setowner SYSTEM
icacls C:\Windows\system32\config\systemprofile\.ssh\config /remove "Administrator"
icacls C:\Windows\system32\config\systemprofile\.ssh\config /remove "<user>"