C) Schrittweise Migration vom Regelwerk zu ML
- Decision Facade kapselt die „if/else“-Logik.
- ML liefert Score und Erklärfeatures (Saliency, Top-Features).
- Calibrator kalibriert Scores auf Wahrscheinlichkeiten (Platt/Isotonic).
- Policy Layer entscheidet: auto-accept, require-human, fallback-to-rules.
- Telemetrie zeigt pro Bucket (auto/assist/fallback), wie gut ML vs. Rules performt.
- Nachgeregelt wird per Konfig, nicht durch Codeänderungen.
Schnittstellen und Kommunikation: gRPC, REST, ZeroMQ, oder direkt?
- gRPC:
- Vorteil: strikte IDL, Streaming, binär performant, gute Mehrsprachen-Unterstützung.
- Eignet sich für Service-zu-Service-Kommunikation in polyglotten Systemen.
- REST:
- Einfach, breite Tooling-Landschaft, gut für UI-Integration.
- Weniger geeignet für High-Throughput-Bilddaten, außer mit separatem Blob-Transfer.
- ZeroMQ / NNG:
- Niedrige Latenz, wenig Overhead, gut in embedded/edge-Settings.
- Benötigt Disziplin bei Schema-Management und Backpressure.
- Shared Memory:
- Für sehr große Frames in HMI-nahen Prozessen sinnvoll.
- Komplexer in der Synchronisation, nur lokal.
Wichtig ist nicht das Protokoll, sondern der Vertrag: feste Schemas, Versionen, Timeouts, Retry-Strategien, Idempotenz und aussagekräftige Fehlercodes.
Deployment-Varianten ohne US-Cloud-Abhängigkeit
- Single-Node On-Prem:
- Für kleinere Standorte: Docker/Podman, systemd-Units, lokales Registry-Mirror.
- GPU-Zuweisung über NVIDIA Container Toolkit; bei mehreren Diensten MIG oder Device-Plugin.
- Edge-Cluster:
- K3s/RKE2 oder OpenShift in abgeschotteten Netzen.
- GitOps für reproduzierbare Rollouts; Feature-Toggles für schrittweises Aktivieren.
- Air-gapped Update: signierte Tar-Bundles der Container-Images, Übertragung via kontrollierte Medien, Policies für Versionssprünge.
- Windows-first Umgebungen:
- Wenn Container nicht gehen: Services als Windows-Dienste, signierte MSI-Pakete, zentraler Updater.
- Artefakte signieren, Checksummen validieren, Telemetrie über einen lokalen Gateway.
Testing und QA für KI-erweiterte Software
- Daten-Golden-Sets:
- Kuratierte Datensätze mit Ground Truth, versioniert, unveränderlich. Dienen für Regressionstests jeder neuen Modell- oder Pipeline-Version.
- Metamorphes Testen:
- Prüfen von Invarianten: kleine Bildrotation -> gleiche Defektklasse; irrelevant geänderter Text -> gleiche LLM-Antwortstruktur.
- Contract-Tests:
- Für die API-Grenzen: „Wenn Input X, dann Output-Schema Y, Zeitlimit Z.“
- Shadow- und Canary-Deployments:
- Shadow: ML sieht Echttraffic, wirkt aber nicht. Canary: nur x% der Fälle werden vom neuen Modell entschieden.
- Oberservability zwingend: unterscheiden Sie zwischen „verbesserter Durchschnitt“ und „katastrophalen Ausreißern“.
- Reproduzierbarkeit:
- Pinnen Sie Framework-, Treiber- und Runtime-Versionen. Hashen Sie Modellartefakte.
- Loggen Sie Seeds und Batching-Parameter; erwarten Sie dennoch leichte Nichtdeterminismen – deshalb immer auf Metriken mit Toleranz prüfen.
- Sicherheits- und Robustheitstests:
- LLM: Prompt-Injection- und Jailbreak-Szenarien in der CI testen.
- CV/Numerik: Out-of-Distribution-Daten, korrupte Dateien, Latenzspitzen simulieren.
LLM-Integration mit Governance: warum Observability Pflicht ist
LLM-Funktionen ohne Observability sind in regulierten Industrien ein Blindflug. Ein Agent, der eigenständig Funktionen aufruft, muss strikt begrenzt, protokolliert und rücksetzbar sein. Wir setzen dabei auf einen Observability- und Governance-Layer, der zwischen Anwendung und LLM/Agent liegt.
Was dieser Layer leistet:
- Vollständige Sitzungstraces: Eingaben, verwendete Kontextdokumente, Tool-Aufrufe, Ausgaben – mit PII-Reduktion und Verschlüsselung at rest.
- Policy Engine:
- Zulässige Tools und Parameterbereiche.
- Prompt-Filter (z. B. keine Exfiltration interner Policies in Antworten).
- Rollen-/Rechteprüfung vor jedem außenwirksamen Akt.
- Evaluationshooks:
- Strukturelle Checks (JSON-Schema), Formatkonformität, Referenzierung von Quellen.
- Heuristische oder regelbasierte Halluzinations-Detektoren (z. B. Antwort nur aus gelieferten Kontextzitaten).
- Änderungsverwaltung:
- Versionierung von Prompts, Retrieval-Pipelines, Modellen. Feature-Toggles und sofortige Deaktivierung bei Regelverstoß.
Das Ziel ist nicht „mehr Logs“, sondern steuerbare Verantwortung: Wer hat wann welche Entscheidung veranlasst, auf welcher Datenbasis, mit welchem Modell- und Promptstand? Nur so sind Audit, Root-Cause-Analyse und gezielte Verbesserungen möglich.
Datenarbeit ohne Datenabfluss: On-Prem RAG richtig aufsetzen
- Ingestion-Pipeline:
- Parser pro Dokumententyp, zentralisierte Normalisierung (z. B. Textextraktion, Strukturerhalt).
- Chunking nach semantischen Einheiten (Absätze, Kapitel), nicht stur in n Zeichen. Jeder Chunk trägt Herkunftsmetadaten (Datei, Version, Gültigkeit).
- Embedding:
- Lokale Embedding-Modelle, die ausreichend domänensensitiv sind. Quantisierte Varianten für CPU-Fallback bereithalten.
- Index:
- Vektorindex mit Mandantenfähigkeit, ACLs und Ablaufdaten.
- Re-Ranking optional lokal, um Top-k-Qualität zu stabilisieren.
- Retrieval-Prompt:
- Strikt deterministischer Prompt mit Platzhaltern, keine spontanen Agent-Manöver.
- Antwort mit Zitaten und IDs, um Nachvollziehbarkeit im UI anzuzeigen.
- Datenschutz:
- PII-Reduktion vor Persistenz.
- Kein „Learning on customer prompts“ im Produktivsystem.
Migrationspfad: Von „Proof-of-Concept“ zu „Produktiv mit Haftung“
1) Woche 0–2: Integrationsgrenze definieren
- Datenverträge, Latenz-/Verfügbarkeitsziele, Fehlerbilder, Fallbacks, UI-Verhalten bei Unsicherheit.
- Sicherheits- und Datenschutzanforderungen dokumentieren.
2) Woche 3–6: Shadow-Integration
- KI-Service parallel anbinden, Telemetrie einsammeln.
- Golden-Set zusammenschneiden, erste Kalibration der Konfidenzen.
3) Woche 7–10: Assist-Modus
- Nutzeroberfläche zeigt ML-Vorschläge mit Erklärungen.
- Feedback-Schalter für Falsch-Positiv/Falsch-Negativ.
4) Woche 11–14: Gate-Controlled Autonomy
- Automatische Entscheidungen in niedrigriskanten Fällen.
- Enges Monitoring, Canary-Rollout nach Standort/Schicht.
5) Laufend: Governance und Pflege
- Regelmäßige Drift-Checks, Neutraining/Feintuning nach klaren Triggern.
- Versionierte Updates, signifikanter Change nur über Freigabeprozess.
Anti-Pattern, die wir konsequent vermeiden