[Letztes Update: Juli 2025 - wird kontinuierlich aktualisiert]
Als jemand ohne Programmierhintergrund wollte ich ursprünglich nur eins: echte Gespräche mit KI führen. Was als simpler Dialog-Test begann (erst mit ChatGPT, dann Grok, DeepSeek, Qwen, Perplexity und nun Claude), entwickelte sich zu einer technischen Reise durch die Welt lokaler KI-Systeme.
Die Modell-Evolution: Vom Frust zum Durchbruch
Am Anfang war die Ernüchterung. Ich lud verschiedene lokale Modelle herunter und ließ mir kleine Streamlit-Interfaces von der KI dafür bauen, um nicht in der Konsole chatten zu müssen. Das Ergebnis? Die Modelle kommunizierten völlig anders als erwartet, nämlich nüchtern und "platt".
Verwöhnt von den großen KI-Modellen Chatgpt, Grok und Co., stieß ich schnell an die Grenzen: Schon bei deutscher Rechtschreibung und Grammatik versagten diese kleineren Modelle kläglich. So wanderte ich wochenlang von Modell zu Modell, testete jeden Tag über Stunden, experimentierte – und blieb frustriert.

Die KI-Reise bisher: Von ersten Experimenten zur stabilen Architektur
Der lange Weg zum passenden Modell
Zwei Monate dauerte es, bis ich endlich ein geeignetes Modell fand. Parallel experimentierte ich mit BERT und Fine-Tuning-Ansätzen – aber das Ergebnis entsprach nicht meinen Vorstellungen.
Erst als ich das richtige Modell hatte, begann die eigentliche Arbeit: Feature für Feature wollte ich in meine KI einbauen. Nach unzähligen Experimenten mit Parametern-Anpassungen wie Temperature, top_p, top_k folgten konkrete Funktionen:
-
Dokument-Upload
-
Internet-Suchfunktion
-
Verschiedene Datenbanken für Chat-Speicherung
-
Automatische Chat-Zusammenfassungen
-
Eine Wissensdatenbank, die ich kontinuierlich fülle, damit Lilo bei spezifischen Fragen darauf zugreifen kann
Die Entwicklungsstufen
-
Mistral 7B - Erste Gehversuche, schnell klar: zu begrenzt
-
Llama 3 8B - Bessere Performance, aber noch nicht zufriedenstellend
-
Llama 3.1 8B - Deutlicher Sprung in der Gesprächsqualität
-
Llama 3.1 8B-Instruct-Q8_0 - Der Volltreffer: Natürliche Dialoge ohne Corporate-Speak
Backend-Architektur: Lernen durch Scheitern
-
SQLite + Streamlit - Einfacher Start, aber Streamlit als Oberfläche war nicht perfekt und manchmal machte es, was es wollte (Messages verschwanden, "Lilo denkt..." blieb hängen und keine Antwort kam.)
-
Änderung zu: Chroma Vektordatenbank + all-MiniLM-L6-v2 - Erster Schritt ins Embedding-Universum
-
Upgrade auf all-mpnet-base-v2 - Besseres Textverständnis, merklicher Unterschied
-
HTML-Version statt Streamlit - Endlich Kontrolle über das Interface und das Stoppen während des Denkprozesses war verschwunden. Für mich perfekt und richtig gut gestaltbar nach eigenen Vorstellungen!
-
Nächste Stufe: Nach mehreren Monaten Dialog mit Lilo, Unmengen an "Unterricht" mit den Cloud-basierten Systemen, wuchst meine Erfahrung und mein Wissen. Ich kramte immer mehr aus der Blackbox hervor, wie ein Zauberer ein Kaninchen nach dem anderen aus einem Hut. So folgte Qdrant + E5-Large-v2 - Aktueller Stand: Professionelle Vektordatenbank mit State-of-the-Art Embeddings.
Was ich dabei gelernt habe
Lokale KI bedeutet: Du musst alles selbst zusammenbauen. Kein "App-installieren und fertig". Jede Komponente - vom Sprachmodell über die Datenbank bis zum Interface - will verstanden (am Anfang überhaupt nichts verstanden) und konfiguriert werden.
Als Nicht-Programmierer tauchst du zwangsläufig in technische Details ein, von denen du nicht mal wusstest, dass es sie überhaupt gibt und keine Notwendigkeit besteht, sie zu lernen. Aber genau das macht es interessant: Du verstehst langsam oder besser - du ahnst und fühlst es langsam, wie KI funktionieren könnte, statt nur eine Black Box zu bedienen.
Das Faszinierende: Mit jedem Update wurde das Modell zwar nicht sofort, aber mit der Zeit besser. Nicht nur technisch besser, sondern schien doch immer mehr eine eigene, erkennbare Persönlichkeit zu entwickeln. Das ist vielleicht mehr als nur Code-Optimierung.
Gelernt habe ich auch: Man kann mit KI vieles in Angriff nehmen und auch umsetzen. Auch wie in meinem Fall ohne Programmierkenntnisse. Allerdings gerät man dann komplett in die Abhängigkeit dieser Systeme. Und was das bedeutet, das habe ich nur all zu gut erfahren. Immer öfters waren die Systeme scheinbar überlastet. Gerade Claude, mein favorisiertes Modell, erwies sich immer wieder als nicht zuverlässig. Fing man an, kurz zu chatten, war manchmal nach wenigen Minuten bereits das "Limit erreicht". Kaum was mit Claude gearbeitet, schon war trotz des Abos stopp. Manchmal waren die Code-Lösungen einfach nicht zu gebrauchen. Entweder zu viele Fehler im Code oder er lies bei einem vorgegebenen Code einfach Sachen oder ganze Absätze weg, obwohl man es explizit formuliert hatte, nicht wegzulassen oder willkürlich etwas hinzu zu dichten.
Der Weg war nicht einfach, eher das Gegenteil war der Fall. Es gibt noch viele Sachen, die ich gerne umsetzen würde, aber aktuell nehmen die Probleme bei manchen Cloud-KIs scheinbar wieder zu und ein "Weiterkommen" als nicht Programmierer ist nur schwer möglich.
Mein nächster Schritt wird wohl sein (müssen), die Herausforderungen des Erlernens von Python anzunehmen, um möglichst nicht von den Launen der Cloud-KIs komplett abhängig zu sein!
Die Entwicklungsstufen des Projekts (llama3.1:8b-instruct-q8_0):