QGate-Sln-MLRun
O Quality Gate para solução MLRun (e Iguazio). Os principais objetivos do projeto são:
- teste de qualidade independente (função, integração, desempenho, vulnerabilidade, aceitação, ... testes)
- verificações de qualidade mais profundas antes da implantação/uso completo em ambientes empresariais
- identificação de possíveis problemas de compatibilidade (se houver)
- cobertura de testes externos e independentes
- apoio comunitário
- etc.
Os testes usam esses componentes principais, solução MLRun, consulte GIT mlrun , modelo de metadados de amostra, consulte GIT qgate-model e este projeto.
Cenários de teste
O portão de qualidade cobre estes cenários de teste (✅ concluído, ✔ em andamento, planejado):
- 01 - Projeto
- ✅ TS101: Criar projeto(s)
- ✅ TS102: Excluir projeto(s)
- 02 - Conjunto de recursos
- ✅ TS201: Crie conjuntos de recursos
- ✅ TS202: Criar conjunto(s) de recursos e ingerir da fonte DataFrame (uma etapa)
- ✅ TS203: Criar conjunto(s) de recursos e ingerir da fonte CSV (uma etapa)
- ✅ TS204: Criar conjunto(s) de recursos e ingerir da fonte Parquet (uma etapa)
- ✅ TS205: Criar conjunto(s) de recursos e ingerir da fonte SQL (uma etapa)
- ✔ TS206: Criar conjunto(s) de recursos e ingerir da fonte Kafka (uma etapa)
- ✔ TS207: Criar conjunto(s) de recursos e ingerir da fonte HTTP (uma etapa)
- 03 - Ingerir dados
- ✅ TS301: Ingestão de dados (modo de visualização)
- ✅ TS302: Ingerir dados para conjuntos de recursos da fonte DataFrame
- ✅ TS303: Ingerir dados para conjuntos de recursos da fonte CSV
- ✅ TS304: Ingerir dados para conjuntos de recursos da fonte Parquet
- ✅ TS305: Ingerir dados para conjuntos de recursos da fonte SQL
- ✔ TS306: Ingerir dados para conjuntos de recursos da fonte Kafka
- ✔ TS307: Ingerir dados para conjuntos de recursos da fonte HTTP
- 04 - Ingestão de dados e pipeline
- ✅ TS401: Ingestão de dados e pipeline (modo de visualização)
- ✅ TS402: Ingerir dados e pipeline para conjuntos de recursos da fonte DataFrame
- ✅ TS403: Ingerir dados e pipeline para conjuntos de recursos da fonte CSV
- ✅ TS404: Ingerir dados e pipeline para conjuntos de recursos da fonte Parquet
- ✅ TS405: Ingerir dados e pipeline para conjuntos de recursos da fonte SQL
- ✔ TS406: Ingerir dados e pipeline para conjuntos de recursos da fonte Kafka
- TS407: Ingerir dados e pipeline para conjuntos de recursos da origem HTTP
- 05 - Vetor de características
- ✅ TS501: Criar vetor(es) de recursos
- 06 – Obtenha dados do vetor
- ✅ TS601: Obtenha dados de vetores de recursos off-line
- ✅ TS602: Obtenha dados de vetores de recursos on-line
- 07 - Pipeline
- ✅ TS701: Pipeline(s) simples
- ✅ TS702: Pipelines complexos
- ✅ TS703: Pipeline(s) complexo(s), operação em massa
- 08 - Construir modelo
- ✅ TS801: Construir modelo CART
- TS802: Construir modelo XGBoost
- TS803: Construir modelo DNN
- 09 – Modelo de servir
- ✅ TS901: Pontuação de veiculação do CART
- TS902: Pontuação de veiculação do XGBoost
- TS903: Pontuação de exibição do DNN
- 10 - Monitoramento/desvio de modelo
- TS1001: Monitoramento em tempo real
- TS1002: Monitoramento em lote
- 11 – Testes de desempenho
- TS1101: Pipeline simples
- TS1102: Pipelines complexos
- TS11xx: A definir.
NOTA: Cada cenário de teste contém casos de teste específicos adicionais (por exemplo, com alvos diferentes para conjuntos de recursos, etc.).
Testar entradas/saídas
O portão de qualidade testa essas entradas/saídas (✅ concluídas, ✔ em andamento, planejadas):
- Resultados (metas)
- ✅ RedisTarget, ✅ SQLTarget/MySQL, ✔ SQLTarget/Postgres, ✅ KafkaTarget
- ✅ ParquetTarget, ✅ CSVTarget
- ✅ Sistema de arquivos, S3, BlobStorage
- Entradas (fontes)
- ✅ Pandas/DataFrame, ✅ SQLSource/MySQL, SQLSource/Postgres, KafkaSource
- ✅ ParquetSource, ✅ CSVSource
- ✅ Sistema de arquivos, S3, BlobStorage
As fontes/destinos atualmente suportados no MLRun.
Amostra de resultados
Os relatórios da PART na forma original, veja:
- tudo FEITO - HTML, TXT
- com ERROS - HTML, TXT
Uso
Você pode usar esta solução facilmente em quatro etapas:
- Baixe o conteúdo desses dois repositórios GIT para o seu ambiente local
- qgate-sln-mlrun
- modelo qgate
- Atualizar arquivo
qgate-sln-mlrun.env
do qgate-model- Atualize variáveis para MLRun/Iguazio, veja
MLRUN_DBPATH
, V3IO_USERNAME
, V3IO_ACCESS_KEY
, V3IO_API
- a configuração de
V3IO_*
é necessária apenas no caso de instalação do Iguazio (não para MLRun puro e gratuito)
- Atualize variáveis para QGate, veja
QGATE_*
(descrição básica diretamente em *.env)- configuração de configuração detalhada
- Executar de
qgate-sln-mlrun
- Veja as saídas (a localização é baseada em
QGATE_OUTPUT
na configuração)- './output/qgt-mlrun-.html'
- './output/qgt-mlrun-.txt'
Pré-requisito: você tem a solução MLRun ou Iguazio disponível (o MLRun faz parte disso), consulte as etapas oficiais de instalação ou instalação direta do Desktop Docker.
Testado com
O projeto foi testado com estas versões do MLRun (veja o log de alterações):
- MLRun (em Kubernates ou Desktop Docker)
- MLRun 1.8.0 (plano 1º trimestre de 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 no VMware)
- ✅ Iguazio 3.5.3 (com MLRun 1.4.1)
- ✅ Iguazio 3.5.1 (com MLRun 1.3.0)
NOTA: Estado atual, apenas as últimas versões do MLRun/Iguazio são testadas (a compatibilidade com versões anteriores é baseada no MLRun/Iguazio, consulte).
Outros
- To-Do , a lista de melhorias esperadas/futuras, consulte
- Limites aplicados , a lista de limites/problemas aplicados, consulte
- Como você pode testar a solução? , você precisa se concentrar no ambiente Linux. ou Windows com WSL2 (veja tutorial passo a passo)
- MLRun/Iguazio , a chave muda em poucas palavras (visão do cliente), veja
- Instalação local do MLRun , veja o hack