QGate-Sln-MLRun
Le Quality Gate pour la solution MLRun (et Iguazio). Les principaux objectifs du projet sont :
- test qualité indépendant (tests de fonctionnement, d'intégration, de performance, de vulnérabilité, d'acceptation, ...)
- contrôles de qualité plus approfondis avant le déploiement/l'utilisation complet dans les environnements de l'entreprise
- identification des problèmes de compatibilité possibles (le cas échéant)
- couverture de tests externes et indépendants
- soutien communautaire
- etc.
Les tests utilisent ces composants clés, la solution MLRun voir GIT mlrun , un exemple de modèle de métadonnées voir GIT qgate-model et ce projet.
Scénarios de tests
Le portail qualité couvre ces scénarios de tests (✅ terminés, ✔ en cours, planifiés) :
- 01 - Projet
- ✅ TS101 : Créer un ou plusieurs projets
- ✅ TS102 : Supprimer le(s) projet(s)
- 02 - Ensemble de fonctionnalités
- ✅ TS201 : Créer un ou plusieurs ensembles de fonctionnalités
- ✅ TS202 : Créer un ou plusieurs ensembles de fonctionnalités et ingérer à partir de la source DataFrame (une étape)
- ✅ TS203 : Créer un ou plusieurs ensembles de fonctionnalités et ingérer à partir d'une source CSV (une étape)
- ✅ TS204 : Créer un ou plusieurs ensembles de fonctionnalités et ingérer à partir de la source Parquet (une étape)
- ✅ TS205 : Créer un ou plusieurs ensembles de fonctionnalités et ingérer à partir d'une source SQL (une étape)
- ✔ TS206 : Créer un ou plusieurs ensembles de fonctionnalités et ingérer à partir de la source Kafka (une étape)
- ✔ TS207 : Créer un ou plusieurs ensembles de fonctionnalités et ingérer à partir d'une source HTTP (une étape)
- 03 - Ingérer des données
- ✅ TS301 : Ingérer des données (mode Aperçu)
- ✅ TS302 : ingérer des données vers des ensembles de fonctionnalités à partir de la source DataFrame
- ✅ TS303 : ingérer des données vers des ensembles de fonctionnalités à partir d'une source CSV
- ✅ TS304 : ingérer des données vers des ensembles de fonctionnalités à partir de la source Parquet
- ✅ TS305 : ingérer des données vers des ensembles de fonctionnalités à partir d'une source SQL
- ✔ TS306 : ingérer des données vers des ensembles de fonctionnalités à partir de la source Kafka
- ✔ TS307 : ingérer des données vers des ensembles de fonctionnalités à partir d'une source HTTP
- 04 – Ingérer des données et un pipeline
- ✅ TS401 : Ingérer des données et un pipeline (mode Aperçu)
- ✅ TS402 : ingérer des données et un pipeline vers des ensembles de fonctionnalités à partir de la source DataFrame
- ✅ TS403 : ingérer des données et un pipeline vers des ensembles de fonctionnalités à partir d'une source CSV
- ✅ TS404 : ingérer des données et un pipeline vers des ensembles de fonctionnalités à partir de la source Parquet
- ✅ TS405 : ingérer des données et un pipeline vers des ensembles de fonctionnalités à partir d'une source SQL
- ✔ TS406 : Ingérer des données et un pipeline vers des ensembles de fonctionnalités à partir de la source Kafka
- TS407 : Ingérer des données et un pipeline vers des ensembles de fonctionnalités à partir d'une source HTTP
- 05 - Vecteur de caractéristiques
- ✅ TS501 : Créer un ou plusieurs vecteurs de fonctionnalités
- 06 - Obtenir des données à partir d'un vecteur
- ✅ TS601 : obtenez des données à partir de vecteurs de fonctionnalités hors ligne
- ✅ TS602 : obtenez des données à partir de vecteurs de fonctionnalités en ligne
- 07 - Pipeline
- ✅ TS701 : Pipeline(s) simple(s)
- ✅ TS702 : Pipeline(s) complexe(s)
- ✅ TS703 : Pipeline(s) complexe(s), exploitation en masse
- 08 - Construire le modèle
- ✅ TS801 : Construire le modèle CART
- TS802 : Construire le modèle XGBoost
- TS803 : Construire un modèle DNN
- 09 - Servir le modèle
- ✅ TS901 : score de service de CART
- TS902 : score de service de XGBoost
- TS903 : score de service de DNN
- 10 - Suivi/dérive du modèle
- TS1001 : Surveillance en temps réel
- TS1002 : Surveillance des lots
- 11 - Essais de performances
- TS1101 : pipeline simple
- TS1102 : Pipeline(s) complexe(s)
- TS11xx : à déterminer.
REMARQUE : Chaque scénario de test contient des cas de test spécifiques supplémentaires (par exemple avec des cibles différentes pour les ensembles de fonctionnalités, etc.).
Tester les entrées/sorties
Le portail qualité teste ces entrées/sorties (✅ terminé, ✔ en cours, prévu) :
- Résultats (cibles)
- ✅ RedisTarget, ✅ SQLTarget/MySQL, ✔ SQLTarget/Postgres, ✅ KafkaTarget
- ✅ ParquetTarget, ✅ CSVTarget
- ✅ Système de fichiers, S3, BlobStorage
- Entrées (sources)
- ✅ Pandas/DataFrame, ✅ SQLSource/MySQL, SQLSource/Postgres, KafkaSource
- ✅ ParquetSource, ✅ CSVSource
- ✅ Système de fichiers, S3, BlobStorage
Les sources/cibles actuellement prises en charge dans MLRun.
Échantillon de résultats
Les rapports PART sous forme originale, voir :
- tout est FAIT - HTML, TXT
- avec des erreurs - HTML, TXT
Usage
Vous pouvez facilement utiliser cette solution en quatre étapes :
- Téléchargez le contenu de ces deux référentiels GIT sur votre environnement local
- qgate-sln-mlrun
- modèle qgate
- Mettre à jour le fichier
qgate-sln-mlrun.env
à partir de qgate-model- Mettez à jour les variables pour MLRun/Iguazio, voir
MLRUN_DBPATH
, V3IO_USERNAME
, V3IO_ACCESS_KEY
, V3IO_API
- le réglage de
V3IO_*
n'est nécessaire qu'en cas d'installation d'Iguazio (pas pour MLRun purement gratuit)
- Mettez à jour les variables pour QGate, voir
QGATE_*
(description de base directement dans *.env)- configuration détaillée de l'installation
- Exécuter depuis
qgate-sln-mlrun
- Voir les sorties (l'emplacement est basé sur
QGATE_OUTPUT
dans la configuration)- './output/qgt-mlrun- .html'
- './output/qgt-mlrun- .txt'
Condition préalable : Vous disposez d'une solution MLRun ou Iguazio (MLRun en fait partie), consultez les étapes d'installation officielles ou installez directement pour Desktop Docker.
Testé avec
Le projet a été testé avec ces versions de MLRun (voir journal des modifications) :
- MLRun (dans Kubernates ou Desktop Docker)
- MLRun 1.8.0 (plan T1/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, sur site, VM sur VMware)
- ✅ Iguazio 3.5.3 (avec MLRun 1.4.1)
- ✅ Iguazio 3.5.1 (avec MLRun 1.3.0)
NOTE : Etat actuel, seules les dernières versions de MLRun/Iguazio sont testées (la rétrocompatibilité est basée sur MLRun/Iguazio, voir).
Autres
- To-Do , la liste des améliorations attendues/futures, voir
- Limites appliquées , la liste des limites/problèmes appliqués, voir
- Comment tester la solution ? , vous devez vous concentrer sur l'environnement Linux. ou Windows avec WSL2 (voir tutoriel étape par étape)
- MLRun/Iguazio , les changements clés en quelques mots (vue client), voir
- MLRun installation locale , voir le hack