⚙️ 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
- Chinese students welcome President Trump to the Great Hall of the People in Beijing 💐 🎥: @MargoMartin47
Chinese students welcome President Trump to the Great Hall of the People in Beijing 💐
— Rapid Response 47 (@RapidResponse47) May 14, 2026
🎥: @MargoMartin47 pic.twitter.com/wChlpVnphh