Titel: KI in Bestandssoftware nachrüsten: Architektur- und Integrationsmuster aus der Praxis – mit LLM-Governance on-prem

Wenn wir in Industriebetrieben KI-Funktionen nachrüsten, ist das eigentliche Problem fast nie das Modell. Der Engpass liegt in Latenzbudgets, Schnittstellen, deterministischen Fallbacks, Zertifizierbarkeit, Betriebsmodellen und Governance. In sicherheits- und geschäftskritischen Umgebungen darf KI nicht “magisch” agieren, sondern muss sich präzise in bestehende Systeme einfügen – technisch, organisatorisch und regulatorisch.

Als Team, das KI-Funktionen in reale Industrieprodukte integriert (Defense, Fertigung, Bahn, Luftfahrt, Bau, Textil), vertreten wir eine klare Haltung: Souveränität ermöglicht Intelligenz. Das heißt konkret: On-premise-Deployment, DSGVO-konforme Datenpfade, keine Abhängigkeit von US-Cloud-APIs, strikte Observability und ein Migrationspfad, der die bestehende Wertschöpfung respektiert.

Dieser Beitrag zeigt erprobte Integrationsmuster, typische Fallstricke und konkrete Designentscheidungen – mit besonderem Fokus auf:

  • Nachrüsten von ML in Legacy-Systeme
  • LLM-Integration mit Observability/Governance (Alpi-M)
  • Testing/QA in KI-erweiterten Produkten
  • Schrittweise Migration von regelbasiert zu ML-basiert

1) Ausgangslage und Randbedingungen in der Industrie

Bevor irgendein Modell in Produktion geht, klären wir vier nicht verhandelbare Randbedingungen:

  • Latenz und Jitter: Zykluszeiten im Bereich 10–200 ms sind üblich (z. B. visuelle Prüfung, Taktstraßen). KI darf nicht blockieren. P50, P95, P99 und Worst-Case sind zu planen – und zwar für Hardware unter Last, nicht im Labor.
  • Deterministische Fallbacks: Bei Ausfall, Zeitüberschreitung oder Unsicherheit muss das System reproduzierbar und sicher reagieren (Fail-Safe/Fail-Operational). Regeln verschwinden nicht; sie werden Guardrail.
  • Datenpfad-Souveränität: Daten verlassen das Werk nicht “zum Prompten”. On-prem-Modelle, lokale Vektorindizes, eigene Observability. Telemetrie muss auditierbar sein, nicht “somewhere in the cloud”.
  • Zertifizierbarkeit/Haftung: In regulierten Domänen (z. B. Bahn, Luftfahrt) gehört KI entweder nicht in den sicherheitskritischen Pfad – oder sie wird von deterministischen Hüllen abgesichert. Jede Entscheidung braucht Herkunft und Begründung.

2) Architekturpatterns zum Nachrüsten von ML

Es gibt keine Einheitslösung. Drei Muster haben sich bewährt:

A. In-Process Library

  • Beschreibung: Das Modell läuft als lokal geladene Bibliothek (z. B. ONNX Runtime, OpenVINO) direkt im Host-Prozess (C++/C#/Rust).
  • Vorteile: Minimale Latenz, einfache Deployments, keine Netzabhängigkeit.
  • Nachteile: Sprach- und ABI-Kopplung, Lifecycle von Modellen und Treibern mischt sich mit Applikationsrelease, Memory-Isolation gering.
  • Einsatz: Kleinere Modelle, harte Latenzbudgets, embedded/edge-nahe Integrationen.

B. Sidecar-Inferenzdienst

  • Beschreibung: Separater Prozess auf derselben Maschine (oder demselben Knoten), Anbindung via gRPC/Unix-Socket/Shared Memory.
  • Vorteile: Klare Prozessisolation, eigenes Lifecycle für Modell-Updates, GPU-Sharing möglich, Crash-Isolation.
  • Nachteile: Geringe IPC-Overheads, Schnittstellenpflege notwendig.
  • Einsatz: Bild-/Zeitreihenmodelle, die GPU nutzen; strikte Trennung zwischen Host-App (z. B. Qt/C++) und ML-Stack (z. B. Python/CUDA).

C. Service-Bus/Streaming-Integration

  • Beschreibung: Asynchrones Publish/Subscribe über Kafka/MQTT/AMQP; Batch- oder Streaming-Inferenz.
  • Vorteile: Entkopplung, horizontale Skalierung, Lastglättung, Reprocessing möglich.
  • Nachteile: Höhere End-to-End-Latenz; komplexere Observability; Eignung für “near real-time”, nicht “hard real-time”.
  • Einsatz: Flottenintelligenz, Vorhersagen, die Sekunden statt Millisekunden vertragen; Werksweite Analytik.

Die Entscheidung fällt entlang der Achsen Latenz, Isolation, Release-Frequenz, Ressourcen und Safety Case. In vielen Brownfield-Szenarien ist Sidecar das beste Verhältnis aus Pragmatismus und Robustheit.

Konkretes Beispiel: Visuelle Prüffunktion in C++/Qt-Anlage

  • Ausgangslage: Bestehende Qt-Anwendung steuert Kameras und Werkstückhandling. Zykluszeit 120 ms, CPU-Budget knapp, GPU vorhanden.
  • Architektur:
  • C++ Host-App erzeugt Ringpuffer in Shared Memory (YUV/RGB Frames).
  • Sidecar-Inferenzdienst (Python/CUDA) liest Frames über Zero-Copy, führt Inferenz durch (z. B. Segmentierung, Klassifikation).
  • Ergebnis-Interface per gRPC Async: score, bbox/maske, reason_codes, version, latency_ms.
  • Watchdog im Host überwacht Sidecar Heartbeats; Zeitbudget 80 ms. Bei T≥80 ms: deterministischer Fallback (konservative Regelprüfung).
  • Betriebsdetails:
  • Graceful Degradation: Wenn GPU unter Last, schaltet Sidecar auf leichtere Pipeline (z. B. nur Klassifikation ohne Segmentierung).
  • Canary-Modelle: 5% der Teile werden zusätzlich mit neuem Modell bewertet (nur Logging), Vergleichsmetriken online berechnet.
  • Artefakt-Signaturen: Modelle sind signiert, Host prüft Signatur und Kompatibilitäts-Manifest (Input-Shape, Preprocessing-Hash).

Schnittstelle (beispielhaft, .proto stark vereinfacht):
message Frame { bytes shm_key = 1; uint64 frame_id = 2; uint64 ts_ns = 3; }
message InferenceRequest { Frame frame = 1; string pipeline = 2; }
message InferenceResult {
uint64 frame_id = 1;
float score = 2;
repeated Box boxes = 3;
repeated string reason_codes = 4; // z. B. “edge_crack”, “color_shift”
string model_version = 5;
uint32 latency_ms = 6;
bool fallback_applied = 7;
}

Warum reason_codes? Weil existierende QS-Prozesse und Reklamationscodes weiterleben. ML-Ergebnisse müssen in diese Welt “übersetzt” werden – sonst bleiben sie ein Fremdkörper, den Operations nicht akzeptiert.

3) LLM-Integration in Unternehmensanwendungen – mit Governance by Design

LLMs sind in der Industrie nützlich, wenn sie lokal domänenspezifisches Wissen nutzen: Wartungsanleitungen, Schaltpläne, Störungsmeldungen, Change-Logs. Integration heißt hier: nicht Chatfenster ankleben, sondern kontrollierte, nachvollziehbare Automatisierung.

Grundprinzipien:

  • Retrieval-augmented, nicht copy-paste: LLM beantwortet nur mit fundierten, lokal referenzierten Quellen. Jeder Satz ist auf Dokument-Offsets zurückführbar.
  • Tools statt Allmacht: Das LLM ruft wohldefinierte Tools auf (z. B. Ersatzteil-Suche, Ticket-API, Historienabfrage). Tools sind per striktem JSON-Schema gebunden, Timeouts und Quotas hart.
  • Ask/Act-Trennung: Planen (Text) und Ausführen (Tools) getrennt loggen. Kein “freies” Shell-Kommando, kein Internetzugang. In Industrienetzen sind Agenten Sandboxed.
  • On-prem-Modelle: Offene Gewichte oder lokal bereitgestellte Modelle, Vektorindizes im Firmennetz. Keine Telemetrie an Drittanbieter.