QGate-Sln-MLRun
Das Quality Gate für die Lösung MLRun (und Iguazio). Die Hauptziele des Projekts sind:
- Unabhängiger Qualitätstest (Funktions-, Integrations-, Performance-, Schwachstellen-, Akzeptanz-, ... Tests)
- vertiefte Qualitätsprüfungen vor dem vollständigen Rollout/Einsatz in Unternehmensumgebungen
- Identifizierung möglicher Kompatibilitätsprobleme (falls vorhanden)
- externe und unabhängige Testabdeckung
- Unterstützung durch die Gemeinschaft
- usw.
Die Tests nutzen diese Schlüsselkomponenten: MLRun-Lösung siehe GIT mlrun , Beispiel-Metadatenmodell siehe GIT qgate-model und dieses Projekt.
Testszenarien
Das Quality Gate deckt diese Testszenarien ab (✅ erledigt, ✔ in Bearbeitung, geplant):
- 01 - Projekt
- ✅ TS101: Projekt(e) erstellen
- ✅ TS102: Projekt(e) löschen
- 02 – Funktionsumfang
- ✅ TS201: Feature-Set(s) erstellen
- ✅ TS202: Feature-Set(s) erstellen und aus DataFrame-Quelle aufnehmen (ein Schritt)
- ✅ TS203: Feature-Set(s) erstellen und aus CSV-Quelle aufnehmen (ein Schritt)
- ✅ TS204: Feature-Set(s) erstellen und aus Parquet-Quelle aufnehmen (ein Schritt)
- ✅ TS205: Feature-Set(s) erstellen und aus SQL-Quelle aufnehmen (ein Schritt)
- ✔ TS206: Feature-Set(s) erstellen und aus Kafka-Quelle aufnehmen (ein Schritt)
- ✔ TS207: Feature-Set(s) erstellen und aus HTTP-Quelle aufnehmen (ein Schritt)
- 03 – Daten aufnehmen
- ✅ TS301: Daten aufnehmen (Vorschaumodus)
- ✅ TS302: Daten aus der DataFrame-Quelle in Funktionssätze aufnehmen
- ✅ TS303: Daten aus einer CSV-Quelle in Feature-Sets aufnehmen
- ✅ TS304: Erfassen Sie Daten aus der Parquet-Quelle in Feature-Sets
- ✅ TS305: Daten aus der SQL-Quelle in Funktionssätze aufnehmen
- ✔ TS306: Daten aus der Kafka-Quelle in Feature-Sets aufnehmen
- ✔ TS307: Daten aus einer HTTP-Quelle in Funktionssätze aufnehmen
- 04 – Daten und Pipeline aufnehmen
- ✅ TS401: Daten und Pipeline aufnehmen (Vorschaumodus)
- ✅ TS402: Daten und Pipeline zu Funktionssätzen aus der DataFrame-Quelle aufnehmen
- ✅ TS403: Daten und Pipeline zu Funktionssätzen aus CSV-Quelle aufnehmen
- ✅ TS404: Daten und Pipeline zu Feature-Sets aus der Parquet-Quelle aufnehmen
- ✅ TS405: Daten und Pipeline zu Funktionssätzen aus SQL-Quelle aufnehmen
- ✔ TS406: Daten und Pipeline zu Feature-Sets aus der Kafka-Quelle aufnehmen
- TS407: Daten und Pipeline zu Funktionssätzen aus HTTP-Quelle aufnehmen
- 05 – Merkmalsvektor
- ✅ TS501: Feature-Vektor(e) erstellen
- 06 – Daten vom Vektor abrufen
- ✅ TS601: Daten von Offline-Feature-Vektoren abrufen
- ✅ TS602: Daten aus Online-Feature-Vektor(en) abrufen
- 07 - Pipeline
- ✅ TS701: Einfache Pipeline(s)
- ✅ TS702: Komplexe Pipeline(s)
- ✅ TS703: Komplexe Pipeline(s), Massenbetrieb
- 08 - Modell bauen
- ✅ TS801: CART-Modell erstellen
- TS802: XGBoost-Modell erstellen
- TS803: DNN-Modell erstellen
- 09 – Modell servieren
- ✅ TS901: Servierergebnis von CART
- TS902: Serving-Score von XGBoost
- TS903: Serving-Score von DNN
- 10 – Modellüberwachung/-drift
- TS1001: Echtzeitüberwachung
- TS1002: Chargenüberwachung
- 11 – Leistungstests
- TS1101: Einfache Pipeline
- TS1102: Komplexe Pipeline(s)
- TS11xx: TBD.
HINWEIS: Jedes Testszenario enthält zusätzliche spezifische Testfälle (z. B. mit unterschiedlichen Zielen für Funktionssätze usw.).
Ein-/Ausgänge testen
Das Quality Gate testet diese Ein-/Ausgänge (✅ erledigt, ✔ in Bearbeitung, geplant):
- Outputs (Ziele)
- ✅ RedisTarget, ✅ SQLTarget/MySQL, ✔ SQLTarget/Postgres, ✅ KafkaTarget
- ✅ ParquetTarget, ✅ CSVTarget
- ✅ Dateisystem, S3, BlobStorage
- Eingaben (Quellen)
- ✅ Pandas/DataFrame, ✅ SQLSource/MySQL, SQLSource/Postgres, KafkaSource
- ✅ ParquetSource, ✅ CSVSource
- ✅ Dateisystem, S3, BlobStorage
Die aktuell unterstützten Quellen/Ziele in MLRun.
Beispielausgaben
Die PART-Berichte im Original finden Sie unter:
- alles FERTIG - HTML, TXT
- mit FEHLER - HTML, TXT
Verwendung
Sie können diese Lösung einfach in vier Schritten anwenden:
- Laden Sie den Inhalt dieser beiden GIT-Repositorys in Ihre lokale Umgebung herunter
- qgate-sln-mlrun
- qgate-Modell
- Aktualisieren Sie die Datei
qgate-sln-mlrun.env
von qgate-model- Aktualisieren Sie Variablen für MLRun/Iguazio, siehe
MLRUN_DBPATH
, V3IO_USERNAME
, V3IO_ACCESS_KEY
, V3IO_API
- Die Einstellung von
V3IO_*
ist nur bei der Iguazio-Installation erforderlich (nicht für reines kostenloses MLRun).
- Variablen für QGate aktualisieren, siehe
QGATE_*
(grundlegende Beschreibung direkt in *.env)- detaillierte Setup-Konfiguration
- Von
qgate-sln-mlrun
ausführen - Siehe Ausgaben (Speicherort basiert auf
QGATE_OUTPUT
in der Konfiguration)- './output/qgt-mlrun-.html'
- './output/qgt-mlrun-.txt'
Voraussetzung: Sie verfügen über eine verfügbare MLRun- oder Iguazio-Lösung (MLRun ist Teil davon), sehen Sie sich die offiziellen Installationsschritte an oder installieren Sie direkt Desktop Docker.
Getestet mit
Das Projekt wurde mit diesen MLRun-Versionen getestet (siehe Änderungsprotokoll):
- MLRun (in Kubernates oder Desktop Docker)
- MLRun 1.8.0 (Plan Q1/2025)
- ✔ MLRun 1.7.0 (? 1.7.1 ?)
- ✅ MLRun 1.6.4, 1.6.3, 1.6.2, 1.6.1, 1.6.0
- ✅ MLRun 1.5.2, 1.5.1, 1.5.0
- ✅ MLRun 1.4.1
- ✅ MLRun 1.3.0
- Iguazio (k8s, lokal, VM auf VMware)
- ✅ Iguazio 3.5.3 (mit MLRun 1.4.1)
- ✅ Iguazio 3.5.1 (mit MLRun 1.3.0)
HINWEIS: Aktueller Stand, nur die letzten MLRun/Iguazio-Versionen werden getestet (die Abwärtskompatibilität basiert auf MLRun/Iguazio, siehe).
Andere
- To-Do , die Liste der erwarteten/zukünftigen Verbesserungen, siehe
- Angewandte Grenzwerte , die Liste der angewendeten Grenzwerte/Probleme finden Sie unter
- Wie können Sie die Lösung testen? , müssen Sie sich auf die Linux-Umgebung konzentrieren. oder Windows mit WSL2 (siehe Schritt-für-Schritt-Anleitung)
- MLRun/Iguazio , die wichtigsten Änderungen in Kürze (Kundenansicht), siehe
- MLFühren Sie die lokale Installation aus , siehe Hack