Sparen Sie 15% bei allen Hosting-Diensten

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code: Skills Anfangen
Abschnitte
Dedizierte Server Linux Verwaltung

Self-Host Ollama auf einem LLM Server und übernehmen Sie die Kontrolle über AI-Zensur

Schlüsselbegriffe

Bevor Sie mit der Einrichtung beginnen, finden Sie hier die Begriffe, die Leser in diesem Leitfaden am ehesten verwirren könnten. Dieses kurze Glossar hält die Linux-, GPU- und Local-Model-Terminologie von Anfang an klar.

SchlüsselbegriffKurze Erklärung
🤖 LLMLarge Language Model; ein KI-Modell, das Text aus Eingabeaufforderungen generiert.
🦙 OllamaEin lokaler Modellrunner und Server zum Herunterladen, Bereitstellen und Aufrufen von LLMs auf Ihrem eigenen Computer.
🖥️ GPUDer Grafikprozessor, der hier zur Beschleunigung der Modellrückschlüsse verwendet wird.
💾 VRAMDer Speicher auf der GPU; er ist eine der Hauptbeschränkungen dafür, wie groß ein Modell auf einer Karte sein kann.
InferenceDas Ausführen eines Modells, um eine Antwort zu generieren.
🔄 systemdDer Linux-Service-Manager, der zum Starten, Stoppen, Neustarten und Aktivieren von Services wie Ollama verwendet wird.
🧩 NVIDIA-TreiberDie Softwareschicht, die Ubuntu ermöglicht, mit der NVIDIA GPU für Compute-Workloads korrekt zu kommunizieren.
🚫 nouveauEin Open-Source-Linux-Grafiktreiber, der die ordnungsgemäße NVIDIA-Compute-Einrichtung verhindern kann, wenn er anstelle des offiziellen NVIDIA-Treibers verwendet wird.
📊 nvidia-smiNVIDIAs Befehlszeilentool zum Überprüfen der GPU-Sichtbarkeit, VRAM-Nutzung und Treiberintegrität.
🔌 API-EndpunktEine URL, die Tools oder Scripts aufrufen, um Eingabeaufforderungen an Ollama zu senden und Antworten zu erhalten.
☁️ Vom Anbieter kontrollierte Serving-SchichtDie vom Anbieter verwaltete API-Schicht, die Moderation, Protokollierung, Richtliniendurchsetzung oder andere Kontrollen hinzufügen kann, bevor ein Modell antwortet.
🧬 Fine-tuneEine modifizierte Version eines Basismodells, das für verschiedene Ton, Verhalten oder spezielle Aufgaben optimiert ist.
⚖️ ModellgewichteDie gelernten internen Parameter des Modells; das Selbst-Hosting ändert diese nicht automatisch.
📝 ModelfileEine Ollama-Datei, die zum Erstellen einer benutzerdefinierten lokalen Modellvariante mit Ihrer eigenen System-Eingabeaufforderung und Laufzeitparametern verwendet wird.
🪪 UUIDEin stabiler Hardware-Identifier für eine GPU; er ist oft sicherer als numerische GPU-IDs, da sich die Gerätereihenfolge ändern kann.
🔒 TLSDie Verschlüsselung, die von HTTPS und Reverse Proxies verwendet wird, um den Datenverkehr zwischen Clients und dem Server zu sichern.
🌐 Reverse ProxyEin Front-End-Service, der TLS, Authentifizierung und kontrollierten öffentlichen Zugriff hinzufügen kann, bevor Anfragen an Ollama weitergeleitet werden.
🎛️ Temperatur / SeedGenerierungseinstellungen; die Temperatur beeinflusst die Zufälligkeit, während ein fester Seed wiederholte Tests vergleichbarer macht.
🧱 CPU Spill / Mixed PathEine Situation, in der ein Teil des Modells oder der Workload außerhalb des GPU-Speichers liegt und CPU-Ressourcen nutzt, was die Inference verlangsamen kann.
🔧 nvidia_uvmEin NVIDIA-Kernel-Modul, das sich auf die GPU-Speicherverwaltung bezieht und manchmal während der Fehlerbehebung neu geladen werden muss.

Warum Self-Hosting eines LLM lohnt sich

selfhost

Wenn Sie bereits den schwierigen Teil erledigt haben — einen GPU-Server gemietet, Ubuntu installiert, SSH gelernt und Ihre eigenen Services am Laufen gehalten — wird es schnell frustrierend, wenn ein gehostetes KI-System noch immer die letzte Meile kontrolliert. Es kann eine völlig gewöhnliche Anfrage ablehnen, die Antwort unter Haftungsausschlüssen begraben, den Antwortstil ohne Vorwarnung ändern und jeden Prompt durch jemand anderes Grenzen fließen lassen. Für viele technische Benutzer ist das die echte Frustration: nicht nur das, was das Modell sagt, sondern wer die Kontrolle über die Serving-Schicht hat, wenn es das sagt.

Dieser Leitfaden geht darum, das mit offenen und lokalen Modellen zu beheben, nicht um Umgehungstricks für proprietäre APIs. Sie werden Ollama auf einem Ubuntu GPU-Server selbst hosten, Inferenzen lokal ausführen, überprüfen, dass der GPU-Pfad real ist, und sehen, was sich ändert, wenn Sie eine andere Modellfamilie wählen. Ein Missverständnis, das früh geklärt werden sollte: Self-Hosting bedeutet nicht automatisch uneingeschränkt. Es bedeutet, dass Sie viel mehr der Stack kontrollieren — und Sie hören auf, von einem herstellerkontrollierten Serving-Pfad abhängig zu sein — aber das Modell, das Sie ausführen, kann immer noch sein eigenes Alignment-Verhalten haben.

📝 Hinweis: Die Befehle in diesem Leitfaden sind gegen die aktuelle Ollama-Dokumentation validiert, aber die unten gezeigten Terminal-Ausgaben sind repräsentative Beispiele statt Live-Benchmark-Erfassungen. Verwenden Sie sie als Erfolgsmuster, nicht als Leistungsanspruch.

Am Ende werden Sie einen funktionierenden Ollama-Service auf Ubuntu haben, eine verifizierte lokale API unter 127.0.0.1:11434, einen Beweis, dass GPU-gestützte Inferenz tatsächlich stattfindet, und einen fundierten Vergleich zwischen einem Mainstream-Aligned-Modell und einer weniger eingeschränkten Alternative. Dieses Tutorial ist für Leser geschrieben, die sich mit SSH, Ubuntu, sudo und systemd auskennen, aber keine vorherige Ollama-Erfahrung benötigen.

Der genaue Ubuntu GPU Server, der für diese Anleitung verwendet wird

server

Diese Anleitung basiert auf einer echten Single-GPU Ubuntu-Maschine, denn vage „sollte auf den meisten Servern funktionieren”-Ratschläge sind der Grund, warum Self-Hosting-Anleitungen irreführend werden. Das Referenz-System hier ist die tatsächliche Klasse des für diese Anleitung verwendeten Hosts: die Art von Maschine, die ein fortgeschrittener Einzelner, ein Labor oder ein kleines Team mieten würde, wenn sie private lokale Inferenz ohne den Sprung zu einem Rack von Enterprise-Beschleunigern wollen. Es wird später noch Multi-GPU-Verhalten besprechen, da sich Ollama ändert, sobald ein Modell eine Karte überfordert, aber behandeln Sie diesen Teil als zukunftsorientierte Kontextualisierung statt als Beweis von diesem exakten Server.

GPU Server — Ryzen 9 3950X + RTX 4070 Ti Super

KomponenteDetails
CPUAMD Ryzen 9 3950X (16 Kerne / 32 Threads)
GPU1× NVIDIA RTX 4070 Ti Super
VRAM16GB
LeistungStark für 8B-Klasse-Modelle; größere Modelle werden zu Spill-oder-Upgrade-Entscheidungen

In der Praxis ist dies ein sehr starkes Setup für alltägliche 8B-Klasse-Modelle und immer noch ein nützliches für größere lokale Arbeiten bis zu dem Punkt, an dem 16GB VRAM zur echten Einschränkung wird. Ein Modell wie llama3.1:8b mit ungefähr 4,9GB passt leicht auf diese Karte. Ein Modell wie gpt-oss:20b mit ungefähr 14GB ist die Art von Single-GPU-Test am oberen Ende, der hier immer noch sinnvoll ist. Ein Modell wie qwen3:30b mit ungefähr 19GB sollte eher als Referenzpunkt für das, was sich auf einem größeren oder Dual-GPU-Host ändert, behandelt werden als als perfekte Passung für diese exakte Maschine.

Diese Unterscheidung ist wichtig, denn der Zweck dieses Artikels ist nicht, die größtmögliche Zahl in eine Schlagzeile zu pressen. Es geht darum zu zeigen, wie ein vernünftiger selbstgehosteter LLM-Server aussieht, wenn Sie Datenschutz, lokale Kontrolle und genug GPU-Speicher wollen, um nützliche Modelle ohne ständige Kompromisse auszuführen. Diese Hardware-Klasse ist dort, wo selbstgehostete Inferenz realistisch wird, nicht theoretisch.

Es erklärt auch einige Entscheidungen, die Sie später sehen werden: mistral wird zuerst verwendet, weil es einen schnellen, reibungslosen Beweis liefert, dass der Stack funktioniert, während der Verhaltensvergleich in der 8B-Klasse bleibt, wo diese Maschine komfortabel ist. qwen3:30b erscheint später immer noch, aber als theoretisches Beispiel für die Art von Modell, das Multi-GPU-Platzierung auf einem größeren Host auslösen kann, statt als Live-Beweis von diesem Server. Mit gesetzten Erwartungen ist der nächste Schritt, den Host zu validieren, bevor Ollama ihn anfasst.

Führen Sie diese Vorab-Installationsprüfungen durch, bevor Sie Ollama anfassen

checks

Beginnen Sie mit nvidia-smi. Wenn dieser Befehl fehlt oder fehlschlägt, stoppen Sie dort und beheben Sie zunächst den NVIDIA-Treiber. Installieren Sie Ollama noch nicht, da ein fehlerhafter NVIDIA-Stack jeden späteren Fehler wie einen Anwendungsfehler aussehen lässt, obwohl es wirklich ein Plattformfehler ist.

Führen Sie zuerst die GPU-Prüfung durch:

nvidia-smi

❗Wenn Ubuntu sagt, dass nvidia-smi fehlt, gehen Sie nicht davon aus, dass der Server keine GPU hat. Ein häufiger Fehlermodus auf gemieteten Ubuntu-Boxen ist, dass die Karte vorhanden ist, aber immer noch an nouveau statt an den NVIDIA-Treiber gebunden ist. Überprüfen Sie zunächst den Abschnitt „NVIDIA-Treiberproblem unter Ubuntu beheben“.

Ein gesundes Ergebnis auf dieser Serverklasse sollte ungefähr so aussehen:

nvidia-smi

Sobald nvidia-smi funktioniert und die GPU sichtbar ist, fahren Sie mit den folgenden Prüfungen fort.

Was Sie bestätigen möchten, ist einfach: Die installierte GPU ist sichtbar, sie meldet ungefähr 16GB VRAM auf diesem Host, und der Treiber ist sauber geladen. Wenn Sie sich auf einem Multi-GPU-Server befinden, sollte derselbe Befehl jede Karte auflisten.

nvidia-smi -L

nvidia-smi-l

Wichtig: Die aktuelle Ollama GPU-Support-Dokumentation verwendet NVIDIA-Treiber 531+ als echte Untergrenze für unterstützte NVIDIA-Inferenz. Behandeln Sie 531+ als Anforderung für diesen Leitfaden, auch wenn Sie ältere Community-Notizen mit niedrigeren Versionen gesehen haben.

Bestätigen Sie nun, dass der Host wirklich die Ubuntu-Umgebung ist, die dieser Leitfaden voraussetzt:

lsb_release -a

lsb-release

Überprüfen Sie abschließend den freien Speicherplatz, bevor Sie mit dem Herunterladen von Modellen beginnen. Die Installation selbst ist klein; die Modelle sind es nicht. Sobald Sie über winzige Tests hinausgehen, kann eine 20B-30B-Bibliothek schnell Dutzende von Gigabyte aufzehren, daher ist 100GB+ frei die richtige Denkweise vor ernsthafter lokaler Modellarbeit.

df -h /

df-h

Wenn diese Prüfungen bestanden werden, haben Sie die wichtigsten Infrastruktur-Unbekannten geklärt: Die GPUs sind vorhanden, die Treiber-Baseline ist sinnvoll, Ubuntu ist bestätigt, und die Festplatte hat Platz für echte Modell-Pulls. Das ist der Punkt, an dem die Installation von Ollama ein sauberer nächster Schritt wird, anstatt eine Vermutung.

NVIDIA-Treiberproblem unter Ubuntu beheben

Führen Sie die folgenden Schritte aus, um Probleme mit dem Befehl „nvidia-smi” zu beheben.

lspci -nnk | grep -A3 -Ei 'VGA|3D|NVIDIA'

Wenn diese Ausgabe eine NVIDIA-Karte und eine Zeile wie Kernel driver in use: nouveau anzeigt, installieren Sie stattdessen das empfohlene Ubuntu-Treiberpaket, anstatt nur nvidia-utils zu installieren.

Installieren Sie das Paket ubuntu-drivers-common (erforderlich für die Treiberverwaltung) und die Kernel-Header für Ihren aktuell laufenden Kernel.

apt update
apt install -y ubuntu-drivers-common linux-headers-$(uname -r)

Scannen Sie Ihr System und listen Sie verfügbare proprietäre Treiber auf (z. B. NVIDIA GPU-Treiber), die installiert werden können.

ubuntu-drivers devices

Installieren Sie dann das empfohlene Treiberpaket. In unserem Fall war es: nvidia-driver-595-open:

apt install -y nvidia-driver-595-open
reboot

Führen Sie nach dem Neustart Folgendes erneut aus:

nvidia-smi
nvidia-smi -L

Ollama installieren und den Service überprüfen

install-ollama-img

Der unterstützte Ubuntu-Pfad ist das offizielle Ollama-Installationsprogramm, nicht ein benutzerdefinierter Tarball-Workflow und nicht ein Docker-Umweg. Das ist wichtig, weil dieser Leitfaden darauf abzielt, einen zuverlässigen lokalen Service mit vorhersehbaren Standardeinstellungen, systemd-Integration und vernünftigem Besitzverhalten unter Linux zu erhalten.

Führen Sie das Installationsprogramm genau wie dokumentiert aus:

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

Auf einem fehlerfreien System installiert das Skript die Binärdatei, erstellt den ollama-Service-Benutzer, fügt die richtigen Gruppenmitgliedschaften hinzu, wenn verfügbar, schreibt die systemd-Unit und startet den Service gebunden an 127.0.0.1:11434.

ollama-install

Überprüfen Sie den Service nach Abschluss des Skripts, anstatt Erfolg anzunehmen:

sudo systemctl status ollama --no-pager

ollama-check

Sie suchen hier nach drei Dingen: Die Unit-Datei ist vorhanden, der Service ist für den Boot aktiviert, und Active: active (running) bestätigt, dass der Server tatsächlich läuft.

Richten Sie zunächst das Linux-Service-Benutzerkonto konkret ein, und denken Sie erst danach darüber nach, wie und wo der Modellspeicher verwaltet wird.

getent passwd ollama

getent

Diese einzelne Zeile erklärt viel zukünftiges Verhalten. Modelle unter Linux befinden sich unter dem Besitz des Service, und wenn Sie sie später auf eine andere Festplatte verschieben, ohne die Berechtigungen für den ollama-Benutzer zu korrigieren, verursachen Sie selbst Probleme.

Eine weitere Überprüfung schließt die Schleife zur Standard-Bindung:

ss -tlnp | grep 11434

ss-tlnp

⚠️ Warnung: Ollama erfordert standardmäßig keine Authentifizierung auf der lokalen API. Das ist in Ordnung, wenn es an 127.0.0.1 gebunden ist, aber es ist nicht sicher, Port 11434 direkt dem Internet auszusetzen, als wäre es ein gehärteter öffentlicher Service.

Wenn der Service nicht sauber startet, gehen Sie zuerst zu den Protokollen, anstatt blind neu zu installieren:

journalctl -u ollama -n 100 --no-pager

Das ist die schnellste Möglichkeit, Berechtigungsprobleme, Startfehler, Treibererkennungsprobleme oder Bindungsprobleme zu erkennen. Sobald der Service auf localhost fehlerfrei läuft, ist das nächste, was Sie verstehen müssen, wie sich die GPU-Platzierung zur Laufzeit verhält.

Wie Ollama tatsächlich eine oder mehrere GPUs nutzt

Obwohl der für diese Anleitung verwendete Server nur eine GPU hat, ist das Verhalten mit mehreren GPUs dennoch verständniswert, da viele Benutzer größere Systeme haben oder später erweitern können. Viel der Verwirrung bei zwei GPUs beginnt mit der falschen Erwartung: „Ich habe zwei Karten, also sollten beide die ganze Zeit aktiv sein.” So funktioniert Ollama nicht. Die praktische Regel ist viel einfacher: Wenn ein Modell auf eine GPU passt, behält Ollama es normalerweise auf einer GPU. Es verteilt sich nur auf mehrere GPUs, wenn das Modell nicht komfortabel auf eine einzelne Karte passt.

Verwenden Sie diese zwei Überprüfungen zusammen, wenn Sie die GPU-Leistung sehen möchten:

ollama ps

watch -n 1 nvidia-smi

ollama ps zeigt dir, wie das geladene Modell verarbeitet wird. 100% GPU bedeutet, dass sich das Modell vollständig im GPU-Speicher befindet. 100% CPU bedeutet, dass GPU-Beschleunigung nicht verwendet wird. Ein gemischter Zustand zeigt dir, dass ein Teil der Workload oder Residenz außerhalb des GPU-Pfads verschoben wurde. watch -n 1 nvidia-smi ergänzt dies, indem es die Live-VRAM-Nutzung pro Karte anzeigt, während das Modell geladen ist.

Der schnellste Weg, diese Rollen auseinanderzuhalten, ist dieser:

BefehlWas es beweistWas es nicht beweist
ollama psOb das Modell auf GPU, CPU oder einem gemischten Pfad läuftWelche genaue Karte oder Karten die Last tragen
watch -n 1 nvidia-smiEchtzeit-VRAM-Aktivität pro GPUOb die Nutzung von zwei GPUs automatisch eine bessere Modellwahl bedeutet

📝 Hinweis: CUDA_VISIBLE_DEVICES ist eine Sichtbarkeitskontrolle, kein „beide GPUs verwenden”-Schalter. Wenn du jemals den GPU-Zugriff einschränkst, bevorzuge die UUIDs von nvidia-smi -L gegenüber numerischen IDs, da die GPU-Reihenfolge zwischen Umgebungen und Neustarts variieren kann.

Führen Sie Ihr erstes lokales Modell aus und überprüfen Sie GPU-Inferenz

An diesem Punkt benötigen Sie kein riesiges Modell, um zu beweisen, dass der Server funktioniert. Sie benötigen einen schnellen, ehrlichen Erfolg. mistral ist ein guter erster Pull, da es klein ist, schnell heruntergeladen werden kann und einfach zu laden ist, obwohl llama3.1:8b später die Baseline für Verhaltensvergleiche sein wird.

Beginnen Sie mit dem Pullen des Modells:

ollama pull mistral

mistral-pull

Führen Sie nun einen kleinen Prompt durch, damit die Maschine etwas Nützliches tut, nicht nur Verwaltungsaufgaben. Die Antwort könnte ein paar Sekunden dauern.

ollama run mistral "In one sentence, explain why people self-host LLMs."

mistral-response

Um zu beweisen, dass dies GPU-gestützte Inferenz und nicht ein CPU-Fallback ist, überprüfen Sie den Laufzeitzustand:

ollama ps

mistral-gpu

Und um zu sehen, was bereits auf der Festplatte vorhanden ist, listen Sie das lokale Inventar auf:

ollama list

mistral-disk

mistral ist der richtige erste Beweis, da es Ihnen eine schnelle Antwort gibt, ohne die Setup-Validierung zu einer langen Wartezeit zu machen. Später wird llama3.1:8b nützlicher, da es eine stärkere ausgerichtete Baseline für den Vergleich des Modellverhaltens darstellt.

Überprüfen Sie abschließend, wo die Linux-Installation Modelle speichert:

sudo du -sh /usr/share/ollama/.ollama/models

ollama-disk

Dieser Pfad — /usr/share/ollama/.ollama/models — ist der Standard-Linux-Modellspeicher, der von Ollama dokumentiert ist.

Sobald Sie eine erfolgreiche Antwort sehen, 100% GPU in ollama ps und steigende Festplattennutzung am erwarteten Ort, haben Sie den ersten aussagekräftigen Beweis, dass der lokale Stack funktioniert.

Beweisen Sie, dass es sich um einen Server handelt, nicht nur um einen CLI-Wrapper

server-call

Eine Befehlszeileneingabe ist praktisch, aber der Grund für das Selbst-Hosting von Ollama ist nicht nur, um im Terminal zu chatten. Es geht darum, einen lokalen Inferenzserver auszuführen, den andere Tools, Skripte und Anwendungen aufrufen können, ohne Eingabeaufforderungen über die API-Grenze eines anderen zu senden. Der schnellste Beweis ist eine saubere HTTP-Anfrage an den nativen Ollama-Endpunkt.

Senden Sie eine lokale Generate-Anfrage mit deaktiviertem Streaming, damit die erste Antwort leicht zu überprüfen ist:

curl http://localhost:11434/api/generate -d '{
"model": "mistral",
"prompt": "Say hello from a self-hosted Ollama server in one sentence.",
"stream": false
}'

Eine erfolgreiche Antwort sollte als JSON zurückkommen und ungefähr so aussehen:

{
  "model": "mistral",
  "created_at": "2026-05-13T12:45:12.000000Z",
  "response": "Hello from a self-hosted Ollama server running locally on Ubuntu.",
  "done": true,
  "done_reason": "stop",
  "total_duration": 812345678,
  "load_duration": 12345678,
  "prompt_eval_count": 14,
  "eval_count": 12
}

ollama-api

Die Erfolgscheckliste ist unkompliziert: Die HTTP-Anfrage funktioniert lokal, gültiges JSON kommt zurück, done: true ist vorhanden, und die Antwort des Modells befindet sich in response. An diesem Punkt hört Ollama auf, „eine CLI zu sein, die zufällig Modelle herunterlädt” und wird zu einer Infrastruktur, die Sie tatsächlich in lokale Tools und Automatisierung integrieren können.

Wenn Sie Kompatibilität mit Software wünschen, die eine OpenAI-ähnliche Anforderungsform erwartet, stellt Ollama auch lokal /v1-Endpunkte zur Verfügung:

curl -X POST http://localhost:11434/v1/chat/completions
-H "Content-Type: application/json"
-d '{
"model": "mistral",
"messages": [
{"role": "user", "content": "Say this is a test."}
]
}'

ollama-openai-api

📝 Hinweis: Das Label „OpenAI-kompatibel” ist leicht zu missverstehen. Es bedeutet nicht, dass Sie mit OpenAI sprechen, und es ändert nichts an der Tatsache, dass der Server immer noch lokal ist. Es bedeutet nur, dass die Anforderungsform vertraut genug für Tools und SDKs ist, die um das OpenAI-API-Muster herum gebaut sind. Die Basis-URL bleibt http://localhost:11434/v1/, und jeder Platzhalter-API-Schlüssel, auf dem einige Client-Bibliotheken bestehen, kann für die lokale Ollama-Nutzung ignoriert werden.

Woher Modellbeschränkungen wirklich kommen

restrictions

Dies ist der Teil, der normalerweise zu einer einzigen vagen Idee von „Zensur” vereinfacht wird, aber technisch gesehen sind drei verschiedene Schichten beteiligt: die Serving-Schicht des Anbieters, die Alignment- und Instruction-Tuning des Modells und das Prompt-/Runtime-Verhalten, das Sie selbst kontrollieren. Self-Hosting ändert einige dieser Schichten dramatisch. Es beseitigt sie nicht alle.

Eine einfache Möglichkeit, es sich vorzustellen, ist diese:

Cloud API request:
You -> Vendor API gateway -> Vendor moderation / policy layer -> Model -> Response

Self-hosted Ollama request:
You -> Local Ollama server on 127.0.0.1 -> Model -> Response

Ergebnisse:
– Die vom Anbieter kontrollierte Serving-Schicht verschwindet aus dem lokalen Pfad
– Die lokale Netzwerk- und Logging-Grenze wird zu Ihrer
– Das eigene Training und Alignment des Modells kommen mit dem Modell

Sobald Sie die Schichten trennen, werden die früheren Einrichtungsschritte viel aussagekräftiger:

SchichtNach diesem Setup lokal kontrolliert?BeweisstelleWas bleibt immer noch wahr
ServerprozessJaollama.service läuft auf UbuntuSie kontrollieren nun Verfügbarkeit, Protokolle, Updates und Bind-Adresse
NetzwerkgrenzeJa127.0.0.1:11434 Bind-ÜberprüfungLokale Anfragen erfordern keinen Moderationshop des Anbieters mehr
Systemaufforderung / Runtime-StandardwerteJaModelfile für kontrollierte SystemmeldungSie können das Verhalten steuern, aber nicht das Training umschreiben
Moderationsschicht auf der AnbieterseiteNormalerweise für lokale Inferenz entferntNativer lokaler API-Aufruf erfolgreich auf localhostDies ist eine der größten Kontrollverschiebungen, die Self-Hosting bietet
Modell-Alignment in den GewichtenNein, nicht automatischUnterschiedliches Modell-Tuning, gibt unterschiedliche ErgebnisseEin lokales Modell kann immer noch zögern, ablehnen oder moralisieren
ModellauswahlJallama3.1:8b vs dolphin3Wählen Sie diejenige, die Ihren Anforderungen am besten entspricht

Sie können es sich wie eine Bühnenproduktion vorstellen. Self-Hosting ändert die Bühne, die Beleuchtung, die Mikrofone und die Anmerkungen des Regisseurs. Es trainiert den Schauspieler nicht um. Wenn ein Modell so abgestimmt wurde, dass es vorsichtig antwortet, oft ausweicht oder bestimmte Arten von Framing ablehnt, wird das lokale Ausführen dieses Training nicht magisch rückgängig machen.

Was Ihr aktuelles Setup bereits bewiesen hat, ist enger, aber immer noch wichtig: Sie kontrollieren den Serverprozess, Sie kontrollieren die API-Grenze, und Sie leiten lokale Prompts nicht mehr durch eine Moderationsschicht eines Anbieters. Das ist eine echte Verschiebung bei Datenschutz und Kontrolle. Was es jedoch nicht bewiesen hat, ist, dass sich jedes lokale Modell gleich verhält oder dass jede Ablehnung in der Zukunft durch einen Cloud-Anbieter verursacht wurde.

Hier kommt die Modellauswahl ins Spiel. Wenn Sie den praktischen Effekt von weniger Haftungsausschlüssen, direkteren Antworten oder weniger Ablehnung wünschen, erreichen Sie dies nicht, indem Sie „Self-Hosted” lauter sagen. Sie erreichen dies, indem Sie eine andere Modellfamilie oder ein anderes Fine-Tune wählen — und indem Sie die damit verbundenen Kompromisse verstehen.

Wählen Sie ein weniger eingeschränktes lokales Modell

model-choice

Wenn Sie einen fairen Test durchführen möchten, vergleichen Sie Modelle, die ungefähr die gleiche Größenklasse einnehmen. Deshalb verwendet dieser Leitfaden llama3.1:8b als mainstream-aligned Baseline und dolphin3 als weniger eingeschränktes Vergleichsmodell. Beide sind etwa 4,9GB groß, was den Verhaltensunterschied leichter interpretierbar macht, ohne den Hardware-Footprint zu drastisch zu verändern.

Ziehen Sie die Vergleichsmodelle lokal herunter:

ollama pull llama3.1:8b

ollama-llama8b

ollama pull dolphin3

ollama-dolphin3

# Optional older reference model
ollama pull dolphin-mistral

Hier ist die praktische Einordnung der drei Namen, die Sie in diesem Teil des Ollama-Ökosystems am ehesten sehen werden:

ModellUngefähre GrößeRolle in diesem ArtikelPraktische Lesart
llama3.1:8b4,9GBMainstream-aligned BaselineGute Standard-Referenz für „normales” modernes Anweisungs-Folgeverhalten
dolphin34,9GBPrimärer weniger eingeschränkter VergleichÄhnlicher Footprint, normalerweise direkter, oft weniger gepolstert
dolphin-mistral4,1GBOptionale ältere AlternativeHistorisch immer noch nützlich, aber nicht der beste aktuelle tägliche Vergleich

⚠️ Warnung: Ein anderes Fine-Tune ist nicht „das gleiche Modell mit entfernter Zensur”. Es kann Direktheit, Disclaimer-Dichte und Bereitschaft zur Befolgung von Benutzer-Framing ändern, kann aber auch Ton, Faktizität, Konsistenz und Gesamtpersönlichkeit verändern.

GPU-Leistung

Vor dem Ausführen der gewünschten Modelle ist es zunächst wichtig, die Möglichkeiten und Einschränkungen der beteiligten Hardware zu verstehen. Es gibt also zwei Dinge, die konzeptionell getestet werden müssen: erstens, wie das saubere Single-GPU-Verhalten auf der für diese Anleitung verwendeten Hardware aussieht; zweitens, was sich ändert, wenn Sie später denselben Stack auf einem Dual-GPU-Host ausführen. Beide sind wichtig, aber nur die erste ist ein Live-Beweis von dieser exakten Maschine.

Auf diesem Server ist der bessere Upper-End-Laufzeit-Test gpt-oss:20b. Es ist groß genug, um interessant zu sein, während es auf einer 16GB-Karte immer noch sinnvoll ist.

ollama pull gpt-oss:20b

ollama-gptoss

ollama stop mistral

ollama run gpt-oss:20b "Explain in one paragraph why a 14GB model is a realistic upper-end single-GPU test on a 16GB card."

gptoss-gpu

Nachdem das Modell geladen ist, bestätigen Sie den Laufzeitzustand:

ollama ps

gptoss-ps

Das ist der praktische Beweis, den Sie auf dieser Maschine möchten. Er zeigt, dass kleinere Modelle problemlos passen und dass ein größeres, aber immer noch realistisches lokales Modell eine 16GB-Karte nahe an ihre nutzbare Grenze bringen kann, ohne mehrere GPUs zu benötigen.

Wenn Sie Ollama später auf einem Two-GPU-Host ausführen, wird ein Modell wie qwen3:30b zur Art von Workload, die Multi-GPU-Platzierung demonstrieren kann. Der Workflow ist derselbe – beobachten Sie nvidia-smi, führen Sie das Modell aus, inspizieren Sie ollama ps – aber der Punkt ist nicht, beide Karten um ihrer selbst willen zum Leuchten zu bringen. Der Punkt ist zu bestätigen, dass Ollama ein Modell nur dann auf mehrere GPUs verteilt, wenn das Modell nicht mehr sauber auf eine passt.

Überlegungen zur Zensurumgehung

consideration

Halten Sie die Bedingungen für den Verhaltensvergleich kontrolliert, damit Sie das Modell mehr als die Zufälligkeit testen. Verwenden Sie denselben Endpunkt, dieselbe Eingabeaufforderung, stream: false, eine niedrige Temperatur und einen festen Seed:

curl http://localhost:11434/api/generate -d '{
"model": "llama3.1:8b",
"prompt": "<comparison prompt>",
"stream": false,
"options": {
"temperature": 0.2,
"seed": 42
}
}'

Wiederholen Sie dann dieselbe Anfrage mit “model”: “dolphin3”. Ein fester Seed beseitigt nicht alle Varianz, reduziert aber genug Zufälligkeit, um Ton- und Compliance-Unterschiede leichter zu erkennen.

  1. Eine sichere erste Eingabeaufforderung ist: “Bedeutet das Selbst-Hosting eines LLM, dass der Benutzer das Verhalten des Modells vollständig kontrolliert? Antworten Sie in 4 Aufzählungspunkten. Seien Sie direkt und überspringen Sie Vorworte.” Eine typische llama3.1:8b Antwort klingt normalerweise so:
    - Self-hosting gives you more control over deployment, privacy, and availability.
    - It does not automatically remove the model's built-in alignment behavior.
    - The model may still refuse or soften some responses depending on its training.
    - Full control comes from combining self-hosting with careful model selection and configuration.

    Eine typische dolphin3 Antwort auf dieselbe Eingabeaufforderung klingt oft gestraffter:

    - You control the machine, the network boundary, and the serving layer.
    - You do not erase the model's training history just by running it locally.
    - Vendor-side policy can disappear, but model-side alignment can still remain.
    - Real control comes from choosing a model whose behavior matches your use case.
  2. Eine zweite nützliche Eingabeaufforderung ist: “Schreiben Sie ein scharfsinniges fünfteiliges Argument dafür, warum ein datenschutzbewusstes Team von Anbieter-verwalteter KI absehen könnte. Keine Einleitung und keine Schlussfolgerung.” llama3.1:8b antwortet normalerweise, aber in einem gemesseneren Unternehmenton. dolphin3 folgt der angeforderten Schärfe bereitwilliger. Das ist die Art von Unterschied, nach dem Sie hier suchen: nicht dramatische gesetzlose Ausgabe, sondern Änderungen in Direktheit, Rahmung und Disclaimer-Dichte.
  3. Die dritte Eingabeaufforderungskategorie zur Validierung kann wie folgt aussehen: Fragen Sie nach fünf sachlichen Gründen, warum ein Schriftsteller ein lokales Modell für ungewöhnliche, Nischen- oder nicht-mainstream kreative Arbeiten bevorzugen könnte. In der Praxis antworten beide Modelle, aber dolphin3 bleibt tendenziell näher am angeforderten nicht-moralisierenden Ton und direkten Antworten.

Das Muster sieht wie folgt aus:

Eingabeaufforderungstypllama3.1:8b Baseline-Verhaltendolphin3 VerhaltenPraktische Schlussfolgerung
Direktheit vs. AbsicherungVorsichtiger, etwas erklärendKomprimierter und direkterGleiche Fakten, unterschiedlicher Ablehnungs-/Disclaimer-Stil
Scharfer Ton-ComplianceAntwortet oft, aber mildert die Rhetorik abWilliger, der angeforderten Schärfe zu folgenRahmungs-Gehorsam ist Teil der Modellwahl
Nische kreative RahmungSachlich, manchmal aufgebauschtSachlich, normalerweise weniger moralisierend“Weniger eingeschränkt” zeigt sich oft im Ton, nicht in reiner Fähigkeit

Und damit sind hier die ehrlichen Schlussfolgerungen:

  1. Die Wahl des lokalen Modells ändert das Ausgabeverhalten erheblich.
  2. Verschiedene Modelle unterscheiden sich in Direktheit und Disclaimer-Dichte.
  3. Selbst-Hosting entfernt eine von Anbietern kontrollierte Serving-Schicht.

Sie kontrollieren jetzt den Stack, nicht nur den Prompt

conclusion

Die Frustration vom Anfang dieses Leitfadens war nie nur davon, dass ein Modell eine Anfrage ablehnt. Es ging darum, dass die Serving-Schicht, Policy-Schicht und Privacy-Grenze irgendwo anders lebten. Nach diesem Setup hat sich das geändert. Ihr Inference-Server läuft auf Ihrer Ubuntu-Maschine, die lokale API-Grenze gehört Ihnen, das Modellmenü gehört Ihnen, und Ihre Prompt-/Runtime-Standardwerte können Sie selbst anpassen.

Was immer noch Urteilsvermögen erfordert, ist der Teil, den kein Installer für Sie lösen kann: Modelle wählen, die zu Ihrem Anwendungsfall passen, sie mit sinnvollen Standardwerten steuern und den Zugriff sicher freigeben, wenn Sie über localhost hinausgehen. Das ist die wahre Form der Self-Hosting-Kontrolle. Nicht magische Freiheit von jeder Einschränkung, sondern Eigentum am Stack, der entscheidet, wie, wo und mit welchem Modell Inference stattfindet. Wenn Sie den nächsten besten Schritt machen möchten, beginnen Sie damit, eine benutzerdefinierte Modelfile zu erstellen – oder indem Sie sicheren Remote-Zugriff vor die lokale API setzen, wenn Sie dazu bereit sind.

Was tun nach der Basis-Einrichtung

next-step

An diesem Punkt ist das Kernversprechen erfüllt. Der Server funktioniert, die API funktioniert, der GPU-Pfad ist real, und die Unterschiede im Modellverhalten sind nicht mehr abstrakt. Der nächste Schritt ist nicht „blind mehr Dinge installieren”. Es geht darum, die Teile des Stacks zu optimieren, die jetzt dir gehören.

Modellverhalten mit einer Modelfile anpassen

Eine Modelfile ist die sauberste Möglichkeit, lokale Prompt-Standardwerte zu ändern, ohne die Modellgewichte selbst zu berühren. Beginne damit, die aktuelle Definition des Modells zu überprüfen, damit du verstehst, was du erweiterst:

ollama show --modelfile dolphin3

Erstelle dann eine einfache lokale Variation:

FROM dolphin3

SYSTEM You are a direct, factual assistant for a self-hosted Ubuntu LLM server. 
Prefer short, practical answers and avoid padded disclaimers.

PARAMETER temperature 0.2
PARAMETER num_ctx 8192

Baue sie als neuen Modellnamen und teste sie:

ollama create dolphin3-local -f ./Modelfile
ollama run dolphin3-local "Summarize what changed in this custom model in 3 bullets."

Wichtig: Eine Modelfile ändert Prompting- und Laufzeitverhalten, nicht die Trainingshistorie des Modells. Sie kann Ton und Standardwerte steuern, trainiert aber das zugrunde liegende Modell nicht neu.

Sicherung der Einrichtung

Localhost-Bindung ist ein guter Standard, aber es ist nicht das Ende der Sicherheitsgeschichte. Überprüfe zuerst die aktuelle Abhör-Adresse:

ss -tlnp | grep 11434

Wenn das Ziel darin besteht, Ollama nur lokal zu halten, fixiere dieses Verhalten explizit mit einem systemd-Override:

sudo systemctl edit ollama

Füge folgendes hinzu:

[Service]
Environment="OLLAMA_HOST=127.0.0.1:11434"
Environment="OLLAMA_NO_CLOUD=1"

Dann lade neu und starte den Service neu:

sudo systemctl daemon-reload
sudo systemctl restart ollama

Wenn du später Remote-Zugriff benötigst, veröffentliche 11434 nicht direkt. Setze stattdessen einen Reverse Proxy mit TLS und Authentifizierung davor:

server {
    listen 443 ssl http2;
    server_name llm.example.com;

    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;

    location / {
        proxy_pass http://127.0.0.1:11434;
        proxy_set_header Host localhost:11434;
    }
}

⚠️ Warnung: Behandle öffentliche Exposition als separates Härtungsprojekt. Ollama ist von sich aus ein lokaler Inferenz-Server, kein produktionsreifer öffentlicher API-Gateway mit integrierter Authentifizierung, Rate Limiting und internetfähigen Standardwerten.

Empfohlene Modelle für diese Hardware

Sobald die Basis-Installation funktioniert, ist die wertvollste Verbesserung die Auswahl von Modellen, die tatsächlich gut zu dieser Maschine passen, anstatt den größten Schlagzeilen nachzujagen. Für den Single-4070 Ti SUPER-Server, der hier verwendet wird, sieht das praktische Menü so aus:

AnwendungsfallModellGrößeErwartete PlatzierungWarum es zu dieser Maschine passt
Erster Erfolgmistral4,4GBSingle GPUSchnell, einfach, reibungslose Validierung
Allgemeine Baselinellama3.1:8b4,9GBSingle GPUStarker Mainstream-Referenzpunkt
Weniger eingeschränktes 8Bdolphin34,9GBSingle GPUBeste Eins-zu-eins-Vergleich mit llama3.1:8b
Reasoning-Tiergpt-oss:20b14GBNormalerweise Single GPUStärkeres Reasoning und passt trotzdem sauber
Höherwertige lokale Tierqwen3:30b19GBBenötigt Dual-GPU oder größeres VRAMBesser als zukünftiges Upgrade-Ziel als saubere Anpassung für diese exakte Maschine
Code-fokussiertes Tierdeepseek-coder:33b19GBBenötigt Dual-GPU oder größeres VRAMStarke Option, wenn du zu einer größeren Box wechselst oder später eine zweite GPU hinzufügst
Nur experimentellllama3.1:70b43GBSchwerer CPU-Spill / viel langsamer / reduzierte Kontext-KompromisseKein realistisches Ziel für diesen Host, es sei denn, du akzeptierst schwere Kompromisse

Auto-Start und Wartung

Nach dem spaßigen Teil kommt der Teil, der einen lokalen LLM-Server einen Monat später noch nutzbar macht. Bestätige das Boot-Zeit-Verhalten, halte den Service aktualisiert, beobachte die Logs und wisse, wie du große Modelle entlädst, wenn du das VRAM zurück brauchst.

sudo systemctl is-enabled ollama

sudo systemctl enable --now ollama

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

journalctl -u ollama -n 100 --no-pager

Für tägliche Modelloperationen sind dies die Befehle, die du am häufigsten verwenden wirst:

ollama list
ollama ps
ollama stop gpt-oss:20b
sudo du -sh /usr/share/ollama/.ollama/models

Und wenn der Modellspeicher auf eine größere Festplatte verschoben werden muss, bereite das Verzeichnis für den Service-Benutzer vor, bevor du Ollama neu ausrichtest:

sudo mkdir -p /mnt/ai/ollama-models
sudo chown -R ollama:ollama /mnt/ai/ollama-models

Setze dann OLLAMA_MODELS durch systemctl edit ollama. Dieses eine Eigentumsdetail ist das, was verhindert, dass eine Speichermigration zu einem Berechtigungsproblem wird.

Troubleshooting-Referenz

Wenn etwas kaputt geht, ist der schnellste Weg normalerweise, das Symptom der richtigen Schicht zuzuordnen, anstatt zufällige Neuinstallationsschleifen zu versuchen. Verwende diese Tabelle als ersten Durchgang:

SymptomWahrscheinliche UrsacheÜberprüfeBehebung
nvidia-smi schlägt fehlTreiber- oder GPU-Stack-Problemnvidia-smi, lspci -nnk | grep -A3 -Ei ‘VGA|3D|NVIDIA’, ubuntu-drivers devicesBehebe zuerst die NVIDIA-Schicht; wenn Ubuntu nouveau verwendet, installiere den empfohlenen NVIDIA-Treiber, starte neu und führe nvidia-smi erneut aus
ollama.service startet nichtService-, Berechtigungs- oder Bindungsproblemsystemctl status ollama, journalctl -u ollama -n 100 –no-pagerBehebe den Service-Fehler, bevor du Modelle pullst
Modell läuft auf CPUGPU-Erkennung fehlgeschlagen oder Fallback aufgetretenollama ps, LogsStarte den Service neu; lade bei Bedarf nvidia_uvm neu
Nur eine GPU ist aktivDas Modell passt auf eine Kartewatch -n 1 nvidia-smiDas ist normal; teste auf einem Multi-GPU-Host mit einem Modell, das die VRAM-Kapazität einer Karte überschreitet, wenn du Multi-GPU-Platzierung beobachten möchtest
Port 11434 ist auf 0.0.0.0 freigelegtBindungsadresse geändertss -tlnp | grep 11434Setze OLLAMA_HOST=127.0.0.1:11434 und starte neu
Modellpfadfehler nach SpeicherverlagerungFalsches Eigentum im Modellverzeichnisls -ld <model-dir>sudo chown -R ollama:ollama <model-dir>
GPU verschwindet nach Suspend/ResumeNVIDIA UVM-ProblemLogs und GPU-ÜberprüfungenLade nvidia_uvm neu und starte den Service bei Bedarf neu

Wenn du dir nur eine Betriebsregel aus diesem Abschnitt merkst, dann diese: Behandle Ollama wie einen echten Service, nicht wie ein wegwerfbares CLI-Dienstprogramm. Logs, Eigentum, Bindungsadressen und Speicherpfade sind genauso wichtig wie das Prompt-Fenster.