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üsselbegriff | Kurze Erklärung |
|---|---|
| 🤖 LLM | Large Language Model; ein KI-Modell, das Text aus Eingabeaufforderungen generiert. |
| 🦙 Ollama | Ein lokaler Modellrunner und Server zum Herunterladen, Bereitstellen und Aufrufen von LLMs auf Ihrem eigenen Computer. |
| 🖥️ GPU | Der Grafikprozessor, der hier zur Beschleunigung der Modellrückschlüsse verwendet wird. |
| 💾 VRAM | Der Speicher auf der GPU; er ist eine der Hauptbeschränkungen dafür, wie groß ein Modell auf einer Karte sein kann. |
| ⚡ Inference | Das Ausführen eines Modells, um eine Antwort zu generieren. |
| 🔄 systemd | Der Linux-Service-Manager, der zum Starten, Stoppen, Neustarten und Aktivieren von Services wie Ollama verwendet wird. |
| 🧩 NVIDIA-Treiber | Die Softwareschicht, die Ubuntu ermöglicht, mit der NVIDIA GPU für Compute-Workloads korrekt zu kommunizieren. |
| 🚫 nouveau | Ein Open-Source-Linux-Grafiktreiber, der die ordnungsgemäße NVIDIA-Compute-Einrichtung verhindern kann, wenn er anstelle des offiziellen NVIDIA-Treibers verwendet wird. |
| 📊 nvidia-smi | NVIDIAs Befehlszeilentool zum Überprüfen der GPU-Sichtbarkeit, VRAM-Nutzung und Treiberintegrität. |
| 🔌 API-Endpunkt | Eine URL, die Tools oder Scripts aufrufen, um Eingabeaufforderungen an Ollama zu senden und Antworten zu erhalten. |
| ☁️ Vom Anbieter kontrollierte Serving-Schicht | Die vom Anbieter verwaltete API-Schicht, die Moderation, Protokollierung, Richtliniendurchsetzung oder andere Kontrollen hinzufügen kann, bevor ein Modell antwortet. |
| 🧬 Fine-tune | Eine modifizierte Version eines Basismodells, das für verschiedene Ton, Verhalten oder spezielle Aufgaben optimiert ist. |
| ⚖️ Modellgewichte | Die gelernten internen Parameter des Modells; das Selbst-Hosting ändert diese nicht automatisch. |
| 📝 Modelfile | Eine Ollama-Datei, die zum Erstellen einer benutzerdefinierten lokalen Modellvariante mit Ihrer eigenen System-Eingabeaufforderung und Laufzeitparametern verwendet wird. |
| 🪪 UUID | Ein stabiler Hardware-Identifier für eine GPU; er ist oft sicherer als numerische GPU-IDs, da sich die Gerätereihenfolge ändern kann. |
| 🔒 TLS | Die Verschlüsselung, die von HTTPS und Reverse Proxies verwendet wird, um den Datenverkehr zwischen Clients und dem Server zu sichern. |
| 🌐 Reverse Proxy | Ein Front-End-Service, der TLS, Authentifizierung und kontrollierten öffentlichen Zugriff hinzufügen kann, bevor Anfragen an Ollama weitergeleitet werden. |
| 🎛️ Temperatur / Seed | Generierungseinstellungen; die Temperatur beeinflusst die Zufälligkeit, während ein fester Seed wiederholte Tests vergleichbarer macht. |
| 🧱 CPU Spill / Mixed Path | Eine 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_uvm | Ein 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

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

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
| Komponente | Details |
|---|---|
| CPU | AMD Ryzen 9 3950X (16 Kerne / 32 Threads) |
| GPU | 1× NVIDIA RTX 4070 Ti Super |
| VRAM | 16GB |
| Leistung | Stark 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

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:

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

❗ 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

Ü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 /

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
rebootFühren Sie nach dem Neustart Folgendes erneut aus:
nvidia-smi
nvidia-smi -LOllama installieren und den Service überprüfen

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.

Überprüfen Sie den Service nach Abschluss des Skripts, anstatt Erfolg anzunehmen:
sudo systemctl status ollama --no-pager

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

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

⚠️ 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:
| Befehl | Was es beweist | Was es nicht beweist |
|---|---|---|
| ollama ps | Ob das Modell auf GPU, CPU oder einem gemischten Pfad läuft | Welche genaue Karte oder Karten die Last tragen |
| watch -n 1 nvidia-smi | Echtzeit-VRAM-Aktivität pro GPU | Ob 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

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."

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

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

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

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

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
}
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."}
]
}'
📝 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

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:
| Schicht | Nach diesem Setup lokal kontrolliert? | Beweisstelle | Was bleibt immer noch wahr |
|---|---|---|---|
| Serverprozess | Ja | ollama.service läuft auf Ubuntu | Sie kontrollieren nun Verfügbarkeit, Protokolle, Updates und Bind-Adresse |
| Netzwerkgrenze | Ja | 127.0.0.1:11434 Bind-Überprüfung | Lokale Anfragen erfordern keinen Moderationshop des Anbieters mehr |
| Systemaufforderung / Runtime-Standardwerte | Ja | Modelfile für kontrollierte Systemmeldung | Sie können das Verhalten steuern, aber nicht das Training umschreiben |
| Moderationsschicht auf der Anbieterseite | Normalerweise für lokale Inferenz entfernt | Nativer lokaler API-Aufruf erfolgreich auf localhost | Dies ist eine der größten Kontrollverschiebungen, die Self-Hosting bietet |
| Modell-Alignment in den Gewichten | Nein, nicht automatisch | Unterschiedliches Modell-Tuning, gibt unterschiedliche Ergebnisse | Ein lokales Modell kann immer noch zögern, ablehnen oder moralisieren |
| Modellauswahl | Ja | llama3.1:8b vs dolphin3 | Wä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

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 pull dolphin3

# Optional older reference model
ollama pull dolphin-mistralHier ist die praktische Einordnung der drei Namen, die Sie in diesem Teil des Ollama-Ökosystems am ehesten sehen werden:
| Modell | Ungefähre Größe | Rolle in diesem Artikel | Praktische Lesart |
|---|---|---|---|
| llama3.1:8b | 4,9GB | Mainstream-aligned Baseline | Gute Standard-Referenz für „normales” modernes Anweisungs-Folgeverhalten |
| dolphin3 | 4,9GB | Primärer weniger eingeschränkter Vergleich | Ähnlicher Footprint, normalerweise direkter, oft weniger gepolstert |
| dolphin-mistral | 4,1GB | Optionale ältere Alternative | Historisch 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 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."

Nachdem das Modell geladen ist, bestätigen Sie den Laufzeitzustand:
ollama 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

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.
- 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. - 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.
- 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:
| Eingabeaufforderungstyp | llama3.1:8b Baseline-Verhalten | dolphin3 Verhalten | Praktische Schlussfolgerung |
|---|---|---|---|
| Direktheit vs. Absicherung | Vorsichtiger, etwas erklärend | Komprimierter und direkter | Gleiche Fakten, unterschiedlicher Ablehnungs-/Disclaimer-Stil |
| Scharfer Ton-Compliance | Antwortet oft, aber mildert die Rhetorik ab | Williger, der angeforderten Schärfe zu folgen | Rahmungs-Gehorsam ist Teil der Modellwahl |
| Nische kreative Rahmung | Sachlich, manchmal aufgebauscht | Sachlich, normalerweise weniger moralisierend | “Weniger eingeschränkt” zeigt sich oft im Ton, nicht in reiner Fähigkeit |
Und damit sind hier die ehrlichen Schlussfolgerungen:
- Die Wahl des lokalen Modells ändert das Ausgabeverhalten erheblich.
- Verschiedene Modelle unterscheiden sich in Direktheit und Disclaimer-Dichte.
- Selbst-Hosting entfernt eine von Anbietern kontrollierte Serving-Schicht.
Sie kontrollieren jetzt den Stack, nicht nur den Prompt

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

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 8192Baue 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 ollamaWenn 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:
| Anwendungsfall | Modell | Größe | Erwartete Platzierung | Warum es zu dieser Maschine passt |
|---|---|---|---|---|
| Erster Erfolg | mistral | 4,4GB | Single GPU | Schnell, einfach, reibungslose Validierung |
| Allgemeine Baseline | llama3.1:8b | 4,9GB | Single GPU | Starker Mainstream-Referenzpunkt |
| Weniger eingeschränktes 8B | dolphin3 | 4,9GB | Single GPU | Beste Eins-zu-eins-Vergleich mit llama3.1:8b |
| Reasoning-Tier | gpt-oss:20b | 14GB | Normalerweise Single GPU | Stärkeres Reasoning und passt trotzdem sauber |
| Höherwertige lokale Tier | qwen3:30b | 19GB | Benötigt Dual-GPU oder größeres VRAM | Besser als zukünftiges Upgrade-Ziel als saubere Anpassung für diese exakte Maschine |
| Code-fokussiertes Tier | deepseek-coder:33b | 19GB | Benötigt Dual-GPU oder größeres VRAM | Starke Option, wenn du zu einer größeren Box wechselst oder später eine zweite GPU hinzufügst |
| Nur experimentell | llama3.1:70b | 43GB | Schwerer CPU-Spill / viel langsamer / reduzierte Kontext-Kompromisse | Kein 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/modelsUnd 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-modelsSetze 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:
| Symptom | Wahrscheinliche Ursache | Überprüfe | Behebung |
|---|---|---|---|
| nvidia-smi schlägt fehl | Treiber- oder GPU-Stack-Problem | nvidia-smi, lspci -nnk | grep -A3 -Ei ‘VGA|3D|NVIDIA’, ubuntu-drivers devices | Behebe 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 nicht | Service-, Berechtigungs- oder Bindungsproblem | systemctl status ollama, journalctl -u ollama -n 100 –no-pager | Behebe den Service-Fehler, bevor du Modelle pullst |
| Modell läuft auf CPU | GPU-Erkennung fehlgeschlagen oder Fallback aufgetreten | ollama ps, Logs | Starte den Service neu; lade bei Bedarf nvidia_uvm neu |
| Nur eine GPU ist aktiv | Das Modell passt auf eine Karte | watch -n 1 nvidia-smi | Das 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 freigelegt | Bindungsadresse geändert | ss -tlnp | grep 11434 | Setze OLLAMA_HOST=127.0.0.1:11434 und starte neu |
| Modellpfadfehler nach Speicherverlagerung | Falsches Eigentum im Modellverzeichnis | ls -ld <model-dir> | sudo chown -R ollama:ollama <model-dir> |
| GPU verschwindet nach Suspend/Resume | NVIDIA UVM-Problem | Logs und GPU-Überprüfungen | Lade 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.
bei allen Hosting-Diensten