⚙️ NoLife Models – Auf dem Weg zu einer lokalen Infrastruktur für KI-Laufzeitumgebungen mit Symfony
der 13. Mai 2026
Jahrelang bedeutete die Verwendung eines KI-Modells den Aufruf einer entfernten API.
Der Arbeitsablauf war relativ einfach:
- eine Aufforderung senden;
- auf eine Antwort warten;
- Text anzeigen.
Doch in den letzten Monaten hat sich ein neues Ökosystem rund um lokale Modelle herausgebildet.
Ein Ökosystem, bestehend aus:
- Modellkataloge;
- lokale Laufzeiten;
- Benchmark-Systeme;
- strukturierte Exporte;
- Beobachtbarkeit;
- Regierungsführung;
- Orchestrierung.
Und nach und nach ähnelt KI immer mehr einer Softwareinfrastruktur als einem einfachen Chatbot.
In diesem Kontext entstand *NoLife Models:
Ein Symfony 8-Projekt, das diese neue Ebene lokaler Infrastruktur rund um KI-Modelle erforscht.
Das Problem: Lokale Modelle kollabieren
Heute gibt es eine gigantische Anzahl von Modellen:
-Qwen
- Lama
- Granit
- Gemma
- Mistral
- Phi
- DeepSeek
- usw.
Und jeder von ihnen besitzt:
- verschiedene Größen;
- unterschiedliche Quantifizierungen;
- unterschiedliche Kapazitäten;
- unterschiedliche Fensterkontexte;
- unterschiedliche Verhaltensweisen.
Das Problem ist daher nicht mehr:
„Wie benutzt man eine Vorlage?“
Sondern vielmehr:
„Welches Modell soll in welchem Kontext, zu welcher Laufzeitumgebung und mit welcher Leistung verwendet werden?“
models.dev: hin zu einem standardisierten Modellkatalog
Ein besonders interessantes Projekt in dieser Entwicklung ist:
Die Idee ist einfach: Die Modelle in strukturierte Objekte umwandeln, die von Werkzeugen verwendet werden können.
Wir sprechen nicht mehr nur von einem „Modellnamen“.
Wir sprechen nun von:
- Modalitäten;
- Begründungsflags;
- Preisgestaltung;
- Fähigkeiten;
- Kontextfenster;
- Anbieter;
- Laufzeitkompatibilität.
Dies ist sehr ähnlich dem, was Docker Hub für Container darstellte.
Modelle: Modelle als Softwareartefakte erforschen
Um dieses Konzept herum entstehen auch Erkundungsschnittstellen, wie zum Beispiel:
Das Thema lautet dann:
- Filter;
- vergleichen ;
- erkunden ;
- um die tatsächlichen Fähigkeiten der Modelle zu verstehen.
Genau so, wie wir es mit Folgendem begonnen haben:
- Container;
- Pakete;
- Cloud-Laufzeitumgebungen;
- OCI-Bilder.
Docker-Ökosystem ↔ KI-Laufzeitumgebungs-Ökosystem
Die Analogie zu Docker gewinnt zunehmend an Relevanz.
| Docker-Ökosystem | KI-Laufzeitumgebungs-Ökosystem | | ---------------- | -------------------------- | | Docker Hub | models.dev | | Bilder | GGUF / Modellgewichte | | dockerd | Ollama / Kronk / vLLM | | Kubernetes | Orchestrierungsagent | | Beobachtbarkeit | Inferenzverfolgung | | OCI-Laufzeitumgebung | Laufzeitabstraktionsschichten |
Das Thema lautet daher nicht mehr einfach:
„einen LLM absolvieren“.
Das Thema lautet:
„Steuerung einer Modellinfrastruktur“.
Ollama: die lokale HTTP-Laufzeitumgebung
Die Laufzeitumgebung, die diesen Ansatz wahrscheinlich populär gemacht hat, ist:
Ollama stellt Modelle als lokale HTTP-Dienste bereit.
Ein paar Endpunkte genügen:
/api/tags
/api/generate
/api/chat
Und sofort:
- jede Anwendung;
- jede beliebige Sprache;
- jeder Orchestrator;
können mit lokalen Modellen interagieren.
Diese Einfachheit ist extrem wirkungsvoll.
NoLife Models
Genau diese Beobachtung war der Anstoß zur Entwicklung von:
NoLife Models ist eine lokale Anwendung, die mit Folgendem erstellt wurde:
- Symfony 8
- Symfony UX
- Zweig
- Live-Komponenten
- Turbo
- HttpClient
Das Projekt ermöglicht:
- einen Katalog von Modellen erkunden;
- um die installierten Ollama-Modelle aufzulisten;
- um mehrere Modelle zu vergleichen;
- um Benchmarks zu starten;
- um die Ergebnisse zu exportieren.
Eine laufzeitorientierte Architektur
Der Kernpunkt des Projekts ist vermutlich diese Abstraktion:
interface LocalModelRuntimeInterface
{
/*- @return list<LocalModel> */
public function listLocalModels(): array;
public function generate(
GeneratePromptCommand $command
): ModelInferenceResult;
}
Diese Entscheidung verändert die Architektur grundlegend.
Die Domain ist nicht mehr abhängig von:
- d'Ollama;
- von OpenAI;
- von einem bestimmten Anbieter.
Die Domäne hängt ausschließlich ab von:
- eines Schlussfolgerungsvertrags.
Und dies öffnet sofort den Weg zu:
- LM Studio;
- vLLM;
- OpenAI-kompatible Laufzeitumgebungen;
- eingebettete Laufzeitumgebungen;
- zukünftige Adapter.
Symfony 8 + Hexagonale Architektur
Das Projekt verfolgt einen DDD/hexagonalen Ansatz.
UserInterface
↓
Application
↓
Domain ports
↓
Infrastructure adapters
Die Verantwortlichkeiten sind getrennt:
| Ebene | Rolle | | -------------- | ------------------------ | | Domäne | Verträge + Modelle | | Anwendung | Orchestrierung | | Infrastruktur | Ollama-Adapter, Exporte | | Benutzeroberfläche | Symfony UX + Controller |
Die Laufzeitumgebung wird dann zu einer einfachen Schnittstellenimplementierung.
Modelle lokal vergleichen
Eines der interessantesten Elemente des Projekts ist die Vergleichs-Engine.
Sogar prompt. Gleiche Laufzeitumgebung. Gleiche Konfiguration.
Aber mehrere Modelle.
Dies ermöglicht einen Vergleich:
- Latenz;
- Ladezeit;
- Generierungsgeschwindigkeit;
- Argumentation;
- Qualität der Antworten;
- Halluzinationen;
- OCR;
- Vision.
Am wichtigsten:
Mathematische Benchmarks allein reichen nicht aus.
Qualität bleibt eine Frage der menschlichen Interpretation.
Benchmarks und Reproduzierbarkeit
Das Projekt ermöglicht auch die Durchführung von Benchmark-Tests.
Die Idee:
- mehrere Eingabeaufforderungen ausführen;
- bei mehreren Modellen;
- mit kontrollierten Parametern;
- und strukturierte Ergebnisse liefern.
Dies bringt das Projekt schrittweise näher an folgendes Ziel heran:
- eines Bewertungssystems;
- eines Laufzeitobservatoriums;
- einer Observability-Schicht.
Exporte und Governance
Exporte spielen eine sehr wichtige Rolle:
- JSON
- CSV
- Preisnachlass
Denn eine Schlussfolgerung ohne Artefakte lässt sich nur schwer überprüfen.
Exporte erlauben:
- zeichnen;
- reproduzieren;
- vergleichen ;
- Archiv;
- analysieren.
Und genau an diesem Punkt gehen wir über einfaches „Prompt Engineering“ hinaus.
Kronk: Eine andere Richtung
Ein weiteres besonders interessantes Projekt ist:
Kronk sollte nicht so gesehen werden wie:
„ein besseres Ollama“.
Die Philosophie ist eine andere.
Ollama stellt Modelle als lokale HTTP-Dienste bereit.
Kronk integriert Inferenz direkt in den Anwendungsprozess.
Die Schlussfolgerung lautet dann:
- eingebettet;
- programmierbar;
- in die Anwendungslaufzeit integriert.
Mit :
- GGUF;
- llama.cpp;
- Yzma;
- Streaming;
- OpenAI-kompatible APIs.
Das Modell hört allmählich auf, ein einfacher HTTP-Endpunkt zu sein.
Es wird zu:
eine Softwareabhängigkeit.
Auf dem Weg zu einer lokalen KI-Infrastruktur
Das Interessanteste an dieser Entwicklung ist Das liegt wahrscheinlich daran, dass wir dieselben Muster wiederfinden wie in der Wolke:
- Kataloge;
- Laufzeiten;
- Beobachtbarkeit;
- Orchestrierung;
- Richtlinien;
- Exporte;
- Spuren;
- Regierungsführung.
Diesmal jedoch angewendet: zur lokalen Inferenz.
Abschluss
NoLife Models ist nicht als Folgendes konzipiert:
- ein Chatbot;
- eine OpenAI-Wrapper-Bibliothek;
- eine einfache Ollama-Benutzeroberfläche.
Das Projekt untersucht eine weitergehende Frage:
Wie sieht eine lokale KI-Laufzeitinfrastruktur aus?
Mit :
- Kataloge;
- Laufzeiten;
- Benchmarks;
- Exporte;
- Beobachtbarkeit;
- Abstraktionen zur Laufzeit.
Wir befinden uns wahrscheinlich noch am Anfang dieses Ökosystems.
Doch die Primitiven tauchen bereits auf.
Und das ist äußerst interessant zu beobachten.
GitHub-Repositories
- 🐙 Eine Open-Source-Datenbank mit KI-Modellen: https://github.com/anomalyco/models.dev
- ☺️ Deine persönliche Engine zum lokalen Ausführen von Open-Source-Modellen: https://github.com/ardanlabs/kronk
Quellen
🚀 Ich habe eine App entwickelt, mit der du die lokalen LLMs mit Ollama vergleichen kannst: https://www.youtube.com/watch?v=YzxE3jQqItI
- 🧩 Erkenntnisse aus Videos gewinnen mit Docling + OpenRAG: https://www.youtube.com/watch?v=Y0b1TANWZ-Y
- 🤯 KI-Modell-Explorer basierend auf models.dev: https://github.com/dgageot/models
- 😮 Erste Schritte mit Kronk https://k33g.hashnode.dev/baby-steps-with-kronk-1
- 😋 Wie man mit Docker Model Runner und Docker Agent (und sbx) einen kleinen Programmieragenten erstellt: https://k33g.org/20260419-little-coder-agent.html
- 😍 fabpot Activity https://github.com/symfony/models-dev/commits?author=fabpot
🔗 Links der Woche
- Symfony Level Up #9 Sylvain Blondeau: https://symfonylevelup.substack.com/p/symfony-level-up-9 Die US-amerikanischen Giganten verschieben die Grenzen immer weiter (zu weit?) und China ist führend: https://www.youtube.com/watch?v=L4LCSXvA7LU Oussama: Für massive Stellenstreichungen! https://www.youtube.com/watch?v=GLfPVWRns-U
- Von 0 € auf 10.000 €/Monat mit KI: Die Methode, die ich mir gewünscht hätte: https://www.youtube.com/watch?v=sRtQmFEhlBE
- Fouloskopie: Wie diskutiert man effektiv? https://www.youtube.com/watch?v=8J1opDS1otY
- MACI #158 – Entdecken Sie CKE, unser Managed Kubernetes – Mit Antoine Blondeau und Gilles Biannic: https://www.youtube.com/watch?v=FtAF5kN_8pY
- GitHub Open Source Friday mit Spec-Kit: https://www.youtube.com/watch?v=2IArMAhkJcE
- Images lokal mit Docker Model Runner und Open WebUI generieren https://www.docker.com/blog/blog-generate-images-locally-dmr-open-webui/
- Kommission für digitale Verteidigung – DEF'LAN 2026 | LIVE: https://www.youtube.com/watch?v=OW4VCl6P-l4 Warum TTS-Models jetzt wie LLMs aussehen – Samuel Humeau, Mistral: https://www.youtube.com/watch?v=3jGAU2sbAyY
- Geben Sie Ihrem Chat-Agenten eine Stimme — Luke Harries, ElevenLabs: https://www.youtube.com/watch?v=DCZZ3AJKzuc
- Sprach-KI: Wann kommt der „Sie“-Moment? — Neil Zeghidour, Gradium AI: https://youtu.be/P_RI1kCkRbo?is=w2jQToL-6ua941SI
- Kontext ist der neue Code — Patrick Debois, Tessl: https://www.youtube.com/watch?v=bSG9wUYaHWU Hier erklärt einer der Ingenieure, wie sie mit LLMs jährlich über 30 Milliarden Dollar erwirtschaften: https://x.com/thejayden/status/2052847766754250815?s=46 Warum selbst Apples legendäre Logistik der RAM-Apokalypse nicht standhalten kann | OctogoneTech #8: https://www.youtube.com/watch?v=gjYbOViRy_k Kann Frankreich noch immer Tech-Giganten hervorbringen? (Mit Carlos Diaz): https://www.youtube.com/watch?v=74TpWDkYpdE
- Suraj vs. The Future | Mit ChatGPT: https://www.youtube.com/watch?v=bMmEEa8-6fU
- Die 3 wichtigsten Claude-Funktionen, die Anfänger nicht kennen: https://www.youtube.com/watch?v=tkpdPvx65A0
- Videostreaming in Next.js verbessern – Tutorial zu adaptivem Bitraten-Streaming | ImageKit: https://www.youtube.com/watch?v=MKbdkWfVZ1w
- Fähigkeiten für KI-Agenten mit Spezialisierung auf die französische Bürokratie: https://github.com/romainsimon/paperasse
- Einen Schachtrainer aufbauen – Anant Dole und Asbjörn Steinskog, Take Take Take: https://www.youtube.com/watch?v=FlzpEGHNVKQ Werde mit der Uncode School zum No-Code- und KI-Produktentwickler: https://www.youtube.com/watch?v=8Ikwj_SNSNI Anthropic hat die allgemeine KI gerade komplett überholt (und niemand hat es kommen sehen): https://www.youtube.com/watch?v=qqhQDBClm1Y
- Ihr Agent kann jetzt Models trainieren — Merve Noyan, Hugging Face: https://www.youtube.com/watch?v=OV56RddyFuU
🎶 Musikcredits
Ein bisschen Beinarbeit von New York New Jersey. ⚽ #FIFAWorldCup: https://vm.tiktok.com/ZNRGDjFGx/
@fifaworldcup Ein bisschen Beinarbeit von New York New Jersey. ⚽ #FIFAWorldCup ♬ Originalton - FIFA Weltmeisterschaft