QGate-Sln-MLRun简介
QGate-Sln-MLRun是为MLRun和Iguazio解决方案开发的质量门控工具。该项目的主要目标包括:
- 提供独立的质量测试,涵盖功能、集成、性能、漏洞和验收等多个方面
- 在企业环境中全面部署和使用前进行更深入的质量检查
- 识别可能存在的兼容性问题
- 提供外部和独立的测试覆盖率
- 支持社区贡献
- 其他质量保证相关功能
该工具使用三个关键组件:MLRun解决方案(参见MLRun GitHub仓库)、示例元数据模型(参见qgate-model仓库)以及本项目本身。
测试场景
QGate-Sln-MLRun涵盖了以下测试场景(✅ 已完成, ✔ 进行中, ❌ 计划中):
01 - 项目
- ✅ TS101: 创建项目
- ✅ TS102: 删除项目
02 - 特征集
- ✅ TS201: 创建特征集
- ✅ TS202: 创建特征集并从DataFrame源摄取数据(单步骤)
- ✅ TS203: 创建特征集并从CSV源摄取数据(单步骤)
- ✅ TS204: 创建特征集并从Parquet源摄取数据(单步骤)
- ✅ TS205: 创建特征集并从SQL源摄取数据(单步骤)
- ✔ TS206: 创建特征集并从Kafka源摄取数据(单步骤)
- ✔ TS207: 创建特征集并从HTTP源摄取数据(单步骤)
03 - 数据摄取
- ✅ TS301: 数据摄取(预览模式)
- ✅ TS302: 从DataFrame源向特征集摄取数据
- ✅ TS303: 从CSV源向特征集摄取数据
- ✅ TS304: 从Parquet源向特征集摄取数据
- ✅ TS305: 从SQL源向特征集摄取数据
- ✔ TS306: 从Kafka源向特征集摄取数据
- ✔ TS307: 从HTTP源向特征集摄取数据
04 - 数据摄取与管道
- ✅ TS401: 数据摄取与管道(预览模式)
- ✅ TS402: 从DataFrame源向特征集摄取数据并执行管道
- ✅ TS403: 从CSV源向特征集摄取数据并执行管道
- ✅ TS404: 从Parquet源向特征集摄取数据并执行管道
- ✅ TS405: 从SQL源向特征集摄取数据并执行管道
- ✔ TS406: 从Kafka源向特征集摄取数据并执行管道
- ❌ TS407: 从HTTP源向特征集摄取数据并执行管道
05 - 特征向量
- ✅ TS501: 创建特征向量
06 - 从向量获取数据
- ✅ TS601: 从离线特征向量获取数据
- ✅ TS602: 从在线特征向量获取数据
07 - 管道
- ✅ TS701: 简单管道
- ✅ TS702: 复杂管道
- ✅ TS703: 复杂管道,批量操作
08 - 构建模型
- ✅ TS801: 构建CART模型
- ❌ TS802: 构建XGBoost模型
- ❌ TS803: 构建DNN模型
09 - 服务模型
- ✅ TS901: 从CART模型提供评分服务
- ❌ TS902: 从XGBoost模型提供评分服务
- ❌ TS903: 从DNN模型提供评分服务
10 - 模型监控/漂移
- ❌ TS1001: 实时监控
- ❌ TS1002: 批量监控
注意:每个测试场景都包含额外的特定测试用例(例如,针对特征集的不同目标等)。
测试输入/输出
QGate-Sln-MLRun测试以下输入/输出(✅ 已完成, ✔ 进行中, ❌ 计划中):
输出(目标)
- ✅ RedisTarget, ✅ SQLTarget/MySQL, ✔ SQLTarget/Postgres, ✅ KafkaTarget
- ✅ ParquetTarget, ✅ CSVTarget
- ✅ 文件系统, ❌ S3, ❌ BlobStorage
输入(源)
- ✅ Pandas/DataFrame, ✅ SQLSource/MySQL, ❌ SQLSource/Postgres, ❌ KafkaSource
- ✅ ParquetSource, ✅ CSVSource
- ✅ 文件系统, ❌ S3, ❌ BlobStorage
MLRun当前支持的源和目标可在文档中查看。
输出示例
部分报告的原始形式可以查看:
使用方法
您可以通过以下四个步骤轻松使用这个解决方案:
-
将以下两个Git仓库的内容下载到本地环境:
-
更新qgate-model中的
qgate-sln-mlrun.env
文件:- 更新MLRun/Iguazio的变量,包括
MLRUN_DBPATH
,V3IO_USERNAME
,V3IO_ACCESS_KEY
,V3IO_API
- 注意:
V3IO_*
设置仅在Iguazio安装时需要(纯MLRun不需要)
- 注意:
- 更新QGate的变量,见
QGATE_*
(基本描述直接在*.env文件中)- 详细设置请参考配置文档
- 更新MLRun/Iguazio的变量,包括
-
在
qgate-sln-mlrun
目录下运行:python main.py
-
查看输出(位置基于配置中的
QGATE_OUTPUT
):- './output/qgt-mlrun- .html'
- './output/qgt-mlrun- .txt'
前提条件:您需要有可用的MLRun或Iguazio解决方案(MLRun是其中的一部分)。请参考官方的安装步骤,或直接参考桌面Docker安装。
已测试版本
该项目已经在以下MLRun版本上进行了测试(参见变更日志):
MLRun (桌面Docker环境)
- MLRun 1.7.0 (计划于2024年8月)
- 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, 本地部署, VMware上的VM)
- Iguazio 3.5.3 (包含MLRun 1.4.1)
- Iguazio 3.5.1 (包含MLRun 1.3.0)
注意:目前只测试最新的MLRun/Iguazio版本(向后兼容性基于MLRun/Iguazio,详见文档)。
其他信息
- 待办事项: 预期/未来改进的列表,查看详情
- 应用限制: 应用限制/问题的列表,查看详情
- 如何测试该解决方案?: 您需要专注于Linux环境或带有WSL2的Windows(查看步骤教程)
- MLRun/Iguazio: 主要变更概述(客户视角),查看详情
QGate-Sln-MLRun为MLRun和Iguazio平台提供了全面的质量保证解决方案。通过执行各种测试场景和支持多种输入/输出格式,该工具帮助用户在企业环境中安全、高效地部署和使用这些平台。随着持续的开发和社区支持,QGate-Sln-MLRun将不断完善其功能,为MLOps和AI应用开发提供更强大的质量保证支持。🚀💻🔍