QGate-Sln-MLRun
Ворота качества для решения MLRun (и Iguazio). Основными целями проекта являются:
- независимый тест качества (функциональность, интеграция, производительность, уязвимость, приемка, ... тесты)
- более глубокие проверки качества перед полным внедрением/использованием в корпоративной среде
- выявление возможных проблем совместимости (если таковые имеются)
- внешнее и независимое тестовое покрытие
- поддержка сообщества
- и т. д.
В тестах используются эти ключевые компоненты: решение MLRun см. в GIT mlrun , пример модели метаданных см. в GIT qgate-model и этот проект.
Тестовые сценарии
Ворота качества охватывают следующие сценарии тестирования (✔ выполнено, ✔ в процессе, запланировано):
- 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: оценка обслуживания из КОРЗИНЫ
- TS902: Оценка обслуживания от XGBoost
- TS903: Оценка обслуживания от DNN
- 10 - Мониторинг/дрейф модели
- TS1001: Мониторинг в реальном времени
- TS1002: Пакетный мониторинг
- 11 - Тесты производительности
- TS1101: Простой конвейер
- TS1102: Сложные трубопроводы
- TS11xx: подлежит уточнению.
ПРИМЕЧАНИЕ. Каждый сценарий тестирования содержит дополнительные тестовые сценарии (например, с различными целевыми наборами функций и т. д.).
Тестовые входы/выходы
Система контроля качества проверяет следующие входы/выходы (✔ выполнено, ✔ в процессе, запланировано):
- Результаты (цели)
- ✅ RedisTarget, ✅ SQLTarget/MySQL, ✔ SQLTarget/Postgres, ✅ KafkaTarget
- ✅ ParquetTarget, ✅ CSVTarget
- ✅ Файловая система, S3, BlobStorage
- Входы (источники)
- ✅ Pandas/DataFrame, ✅ SQLSource/MySQL, SQLSource/Postgres, KafkaSource
- ✅ ParquetSource, ✅ CSVSource
- ✅ Файловая система, S3, BlobStorage
Текущие поддерживаемые источники/цели в MLRun.
Пример результатов
Отчеты ЧАСТИ в оригинальном виде см.:
- все ГОТОВО - HTML, TXT
- с ОШИБКАМИ – HTML, TXT
Использование
Вы можете легко использовать это решение в четыре шага:
- Загрузите содержимое этих двух репозиториев GIT в свою локальную среду.
- qgate-sln-mlrun
- qgate-модель
- Обновить файл
qgate-sln-mlrun.env
из qgate-model.- Обновите переменные для MLRun/Iguazio, см.
MLRUN_DBPATH
, V3IO_USERNAME
, V3IO_ACCESS_KEY
, V3IO_API
- установка
V3IO_*
необходима только в случае установки Iguazio (не для чисто бесплатного MLRun)
- Обновите переменные для QGate, см.
QGATE_*
(базовое описание непосредственно в *.env)- подробная настройка конфигурации
- Запускаем из
qgate-sln-mlrun
- См. выходные данные (расположение основано на
QGATE_OUTPUT
в конфигурации)- './output/qgt-mlrun-.html'
- './output/qgt-mlrun-.txt'
Предварительное условие: у вас есть доступное решение MLRun или Iguazio (MLRun является его частью), см. официальные инструкции по установке или непосредственную установку для Desktop Docker.
Протестировано с
Проект тестировался со следующими версиями MLRun (см. журнал изменений):
- MLRun (в Kubernates или Desktop Docker)
- MLRun 1.8.0 (план на 1 квартал 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
- Игуацио (k8s, локально, виртуальная машина на VMware)
- ✅ Игуацио 3.5.3 (с MLRun 1.4.1)
- ✅ Игуацио 3.5.1 (с MLRun 1.3.0)
ПРИМЕЧАНИЕ. Текущее состояние: тестируются только последние версии MLRun/Iguazio (обратная совместимость основана на MLRun/Iguazio, см.).
Другие
- To-Do , список ожидаемых/будущих улучшений см.
- Примененные лимиты , список примененных лимитов/проблем см.
- Как можно протестировать решение? , вам нужно сосредоточиться на Linux env. или Windows с WSL2 (см. пошаговое руководство)
- MLRun/Iguazio , краткое описание основных изменений (взгляд клиента), см.
- MLR Запускаем локальную установку , смотрим хак