QGate-Sln-MLRun
El Quality Gate para la solución MLRun (e Iguazio). Los principales objetivos del proyecto son:
- Pruebas de calidad independientes (pruebas de función, integración, rendimiento, vulnerabilidad, aceptación, ...)
- controles de calidad más profundos antes de su implementación/uso completo en entornos empresariales
- identificación de posibles problemas de compatibilidad (si los hubiera)
- Cobertura de pruebas externa e independiente.
- apoyo comunitario
- etc.
Las pruebas utilizan estos componentes clave, la solución MLRun consulte GIT mlrun , el modelo de metadatos de muestra consulte GIT qgate-model y este proyecto.
Escenarios de prueba
El control de calidad cubre estos escenarios de prueba (✅ realizados, ✔ en curso, planificados):
- 01 - Proyecto
- ✅ TS101: Crear proyecto(s)
- ✅ TS102: Eliminar proyecto(s)
- 02 - Conjunto de características
- ✅ TS201: Crear conjunto(s) de funciones
- ✅ TS202: Crear conjunto(s) de funciones e ingesta desde la fuente DataFrame (un paso)
- ✅ TS203: cree conjuntos de funciones e ingiera desde una fuente CSV (un paso)
- ✅ TS204: Crear conjunto(s) de funciones e ingesta desde la fuente de Parquet (un paso)
- ✅ TS205: cree conjuntos de funciones e ingiera desde una fuente SQL (un paso)
- ✔ TS206: cree conjuntos de funciones e ingiera desde la fuente de Kafka (un paso)
- ✔ TS207: Crear conjunto(s) de funciones e ingesta desde fuente HTTP (un paso)
- 03 - Ingerir datos
- ✅ TS301: Ingesta de datos (modo de vista previa)
- ✅ TS302: ingesta de datos en conjuntos de funciones desde la fuente DataFrame
- ✅ TS303: ingesta de datos para conjuntos de funciones desde una fuente CSV
- ✅ TS304: ingesta de datos para conjuntos de funciones desde la fuente de Parquet
- ✅ TS305: ingesta de datos para conjuntos de funciones desde una fuente SQL
- ✔ TS306: ingesta de datos para conjuntos de funciones desde la fuente Kafka
- ✔ TS307: ingesta de datos para conjuntos de funciones desde una fuente HTTP
- 04 - Ingesta de datos y canalización
- ✅ TS401: ingesta de datos y canalización (modo de vista previa)
- ✅ TS402: ingesta de datos y canalización a conjuntos de funciones desde la fuente DataFrame
- ✅ TS403: ingesta de datos y canalización a conjuntos de funciones desde una fuente CSV
- ✅ TS404: ingesta de datos y canalización para conjuntos de funciones desde la fuente de Parquet
- ✅ TS405: ingesta de datos y canalización a conjuntos de funciones desde una fuente SQL
- ✔ TS406: ingesta de datos y canalización a conjuntos de funciones desde la fuente de Kafka
- TS407: ingesta de datos y canalización a conjuntos de funciones desde una fuente HTTP
- 05 - Vector de características
- ✅ TS501: Crear vectores de características
- 06 - Obtener datos del vector
- ✅ TS601: obtenga datos de vectores de características fuera de línea
- ✅ TS602: obtenga datos de vectores de características en línea
- 07 - Tubería
- ✅ TS701: Tuberías simples
- ✅ TS702: Tuberías complejas
- ✅ TS703: Tubería(s) compleja(s), operación masiva
- 08 - Construir modelo
- ✅ TS801: construir modelo CART
- TS802: construir el modelo XGBoost
- TS803: construir modelo DNN
- 09 - Modelo de servicio
- ✅ TS901: Puntuación de servicio del CART
- TS902: puntuación de servicio de XGBoost
- TS903: puntuación de servicio de DNN
- 10 - Monitoreo/deriva del modelo
- TS1001: Monitoreo en tiempo real
- TS1002: Monitoreo de lotes
- 11 - Pruebas de rendimiento
- TS1101: canalización sencilla
- TS1102: Tuberías complejas
- TS11xx: Por determinar.
NOTA: Cada escenario de prueba contiene casos de prueba específicos adicionales (por ejemplo, con diferentes objetivos para conjuntos de características, etc.).
Entradas/salidas de prueba
El control de calidad prueba estas entradas/salidas (✅ realizadas, ✔ en curso, planificadas):
- Productos (objetivos)
- ✅ RedisTarget, ✅ SQLTarget/MySQL, ✔ SQLTarget/Postgres, ✅ KafkaTarget
- ✅ ParquetTarget, ✅ CSVTarget
- ✅ Sistema de archivos, S3, BlobStorage
- Entradas (fuentes)
- ✅ Pandas/DataFrame, ✅ SQLSource/MySQL, SQLSource/Postgres, KafkaSource
- ✅ ParquetSource, ✅ CSVSource
- ✅ Sistema de archivos, S3, BlobStorage
Las fuentes/destinos actualmente admitidos en MLRun.
Muestra de resultados
Los informes PART en forma original, ver:
- todo HECHO - HTML, TXT
- con ERRores - HTML, TXT
Uso
Puede utilizar fácilmente esta solución en cuatro pasos:
- Descargue el contenido de estos dos repositorios GIT a su entorno local
- qgate-sln-mlrun
- modelo qgate
- Actualizar el archivo
qgate-sln-mlrun.env
desde qgate-model- Actualizar variables para MLRun/Iguazio, ver
MLRUN_DBPATH
, V3IO_USERNAME
, V3IO_ACCESS_KEY
, V3IO_API
- La configuración de
V3IO_*
es necesaria sólo en el caso de la instalación de Iguazio (no para MLRun puro y gratuito)
- Actualice las variables para QGate, consulte
QGATE_*
(descripción básica directamente en *.env)
- Ejecutar desde
qgate-sln-mlrun
- Ver salidas (la ubicación se basa en
QGATE_OUTPUT
en la configuración)- './output/qgt-mlrun-.html'
- './output/qgt-mlrun-.txt'
Condición previa: tiene disponible la solución MLRun o Iguazio (MLRun es parte de ella), consulte los pasos de instalación oficiales o instale directamente para Desktop Docker.
Probado con
El proyecto fue probado con estas versiones de MLRun (ver registro de cambios):
- MLRun (en Kubernates o 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, local, VM en VMware)
- ✅ Iguazio 3.5.3 (con MLRun 1.4.1)
- ✅ Iguazio 3.5.1 (con MLRun 1.3.0)
NOTA: Estado actual, sólo se prueban las últimas versiones de MLRun/Iguazio (la compatibilidad con versiones anteriores se basa en MLRun/Iguazio, ver).
Otros
- Tareas pendientes , la lista de mejoras esperadas/futuras, consulte
- Límites aplicados , la lista de límites/problemas aplicados, consulte
- ¿Cómo puedes probar la solución? , debes concentrarte en el entorno de Linux. o Windows con WSL2 (ver tutorial paso a paso)
- MLRun/Iguazio , la clave cambia en pocas palabras (vista del cliente), consulte
- MLRejecute la instalación local , vea el truco