KI-Funktionen in bestehende Industriesoftware integrieren: Architektur statt Alchemie
Problem zuerst: Die meisten Industrieunternehmen haben keine Greenfield-Landschaft. Produktionsleitsysteme, Qt-basierte HMIs, C++-Services, alte .NET-Frameworks, SPS-Anbindungen über OPC UA – und dazu strikte Netzsegmente, Offline-Standorte, DSGVO-Vorgaben und Lieferkettenanforderungen. In so einer Umgebung ist „Wir bauen mal schnell einen KI-MVP in der Cloud“ kein Plan, sondern ein Risiko. Die schwierigste Aufgabe ist nicht das ML-Modell, sondern die Integration: eine saubere Systemgrenze definieren, deterministisch ausrollen, überwachen, zurückrollen und auditieren.
In diesem Beitrag zeige ich, wie wir KI-Funktionen pragmatisch in existierende Softwareprodukte nachrüsten – ohne Big-Bang-Umbau, ohne Cloud-Abhängigkeit, aber mit technischen Guardrails, die in regulierten, industriellen Umgebungen funktionieren.
Ein Grundsatz vorweg: Souveränität ermöglicht Intelligenz. Wenn das System nicht nachvollziehbar, nicht kontrollierbar und nicht rücksetzbar ist, ist jede ML-Genauigkeit wertlos. Deshalb: Architektur, Observability, Governance – erst dann das Modell.
Typische Integrationsszenarien
- Visuelle Qualitätsprüfung ergänzen: Ein bestehendes HMI (Qt/C++) und eine Kamerakette liefern Bilddaten. Wir integrieren eine inferenzfähige Pipeline als separaten Prozess, der synchron (für Inline-Prüfung) oder asynchron (für Stichproben) angebunden wird. Ergebnis: „OK/Fehler“-Labels plus Heatmaps, ohne die HMI neu zu bauen.
- Wissensassistenz für Techniker: Ein On-Prem LLM beantwortet Fragen zu Wartungsdokumenten. Die Integration erfolgt als RAG-Service (Retrieval-Augmented Generation) mit lokalem Vektorindex und strengen Policy-Gates. Keine Verbindung zu US-SaaS, keine Datenabflüsse.
- Regelbasierte Systeme schrittweise migrieren: Historisch gewachsene Heuristiken laufen stabil, aber sind schwer pflegbar. Wir schalten ML zunächst im Schattenmodus zu, sammeln Telemetrie, kalibrieren Konfidenzen und übernehmen nur einen Teil der Entscheidungen – mit Fallback zum Regelwerk.
Architekturprinzipien, die in Brownfield-Umgebungen funktionieren
1) Trenne die KI von der Hauptapplikation auf Prozess- oder Serviceebene
- Warum: Speicher- und GPU-Management, Crashes durch native Bibliotheken, und unterschiedliche Release-Kadenz sprechen gegen statische Einbindung.
- Wie: Ein „Inference Service“ läuft als separater Prozess oder Container. In C++/Qt-Anwendungen spawnen wir z. B. via QProcess einen Child-Prozess, kommunizieren über gRPC/REST oder ZeroMQ. In Windows-Umgebungen ohne Containerisierung notfalls per Named Pipes.
- Vorteil: Isolierung, kontrollierbare Ressourcen, einfaches Rollback, reproduzierbare Builds.
2) Asynchronität als Default, Synchronität nur wo echt nötig
- Inline-Entscheidungen an der Linie brauchen harte Latenzbudgets. Alles andere profitiert von Queues.
- Muster:
- Inline: Shared-Memory oder gRPC mit harten Timeouts, Prioritätsklassen auf GPU, deterministische Backoffs.
- Asynchron: Message-Bus (z. B. NATS/Redis Streams), Job-IDs, idempotente Verarbeitung, Dead-Letter-Queues. Der Nutzer sieht einen Fortschrittsstatus, nicht „Spinner forever“.
3) Strangler-Pattern statt Big Bang
- Setzen Sie eine „Decision Facade“ vor das bestehende Regelwerk. Die Fassade ruft je nach Konfidenz ML oder Regeln oder beide auf.
- Routing-Strategie:
- Shadow: ML bewertet im Hintergrund, Entscheidungen kommen weiter vom Regelwerk.
- Assist: ML liefert Vorschläge, Mensch bestätigt.
- Gate: Ab Konfidenz-Schwelle übernimmt ML automatisch, darunter fallback.
- Damit bleibt die alte Logik intakt, während ML-Teile organisch „die Mauer hochwachsen“.
4) Datenverträge statt „wir nehmen, was da ist“
- Definieren Sie explizite Input-/Output-Schemata für ML-Dienste. Versionieren Sie die Verträge (z. B. v1, v1.1) und schreiben Sie strikte Parser.
- Nie lose CSVs „aus dem Maschinenraum“ einlesen – das rächt sich bei der ersten Schemaänderung.
- Validate at the edge: Bevor Daten ins ML gelangen, validieren, normalisieren und mit Kontext versehen (z. B. Sensorkalibrierung, Teil-Seriennummer, Temperaturfenster).
5) Monitoring, aber für ML spezifisch
- Klassische App-Metriken reichen nicht. Für ML brauchen Sie:
- Input-Drift-Indikatoren (Verteilungskennzahlen auf Features/Embeddings).
- Confidence- und Rejection-Raten.
- Error-Buckets mit Beispielen (nicht nur Zähler).
- LLM-spezifisch: Prompt-/Kontextgröße, Tool-Calls, Policy-Verstöße, Antwortkategorien.
- Ohne diese Telemetrie ist jede Fehlersuche reines Raten.
6) On-Premise first für sensible Domänen
- In Defense, Bahn, Fertigung mit Lieferantenschutz geht es selten ohne On-Prem.
- Setzen Sie auf lokale Inferenz-Server, Vektorindizes und Artefakt-Repositories. Deployment über Container registries im Firmennetz, optional air-gapped mit signierten Offline-Bundles.
- Plan B: CPU-Fallback-Pfade, wenn keine GPU verfügbar ist. Für LLM: kleineren quantisierten Checkpoint als Degradationsstufe bereithalten.
Konkret: Drei Referenzmuster
A) CV-Inferenz am Edge (Qualitätsprüfung)
- Setup:
- Kamera liefert Bilder an eine Capture-Komponente (bestehend).
- Neuer Prozess „cv-infer“ lädt ein TensorRT/OpenVINO-optimiertes Modell.
- Kommunikation: ZeroMQ/gRPC, shared memory für Pixel.
- Ergebnis: JSON mit Klasse, Score, optionale Heatmap als komprimiertes Overlay.
- Latenz:
- Budget fixieren (z. B. <100 ms). Wenn überschritten, liefert der Service „no-decision“ – die Förderstrecke stoppt nicht wegen eines hängenden Modells.
- Robustheit:
- Warmup beim Start.
- Graceful Degradation: Bei GPU-Fehler schaltet auf CPU mit geringerem Durchsatz; HMI zeigt Status an.
- Testbarkeit:
- Golden-Set aus realen Bildern, reproduzierbare Seeds, deterministische Engine-Versionen.
- Hardware-Hashing: Loggen Sie GPU-Treiber- und Engine-Build-IDs mit.
B) Wissensassistenz On-Prem (LLM + RAG)
- Setup:
- Dokumenten-Ingestor extrahiert Text (PDF, CAD-Notizen, Wartungspläne), chunked und gehashed.
- Lokaler Embedding-Service (z. B. kleiner deutschsprachiger Embedding-Encoder).
- Vektorindex On-Prem (z. B. Qdrant/Milvus) mit Mandanten- und Zugriffsregeln.
- LLM-Inferenz lokal (z. B. vLLM) oder auf Edge-Servern; keine externe API.
- Pipeline:
- Anfrage -> Retrieval -> Prompt-Konstruktion mit zitierten Quellen -> Antwort.
- Tool-Aufrufe (z. B. ERP-Tickets erstellen) erfolgen nur über whiteliste Funktionen mit strengen Parametern.
- Governance:
- Prompt- und Antwort-Logging mit PII-Redaktion vor Speicherung.
- Policies: Keine freie Internetrecherche, keine nicht-freigegebenen Datenquellen.
- Evaluations-Hooks: automatische Checks auf Antwortformat, Quellenbezug, verbotene Inhalte.
- Beobachtbarkeit:
- Session-Tracing, Token-Statistiken, Antwortclassifications, Benutzerfeedback-Schleife.