Pular para o conteúdo principal

Detecte e monitore problemas nos rastreamentos do MLflow

info

Beta

O MLflow Issue Detection está em Beta. Um administrador do Workspace deve habilitar MLflow Experiment Issues Tab na página Pré-visualizações . Consulte Gerenciar prévias do Databricks.

A detecção de problemas do MLflow usa o Genie Code para analisar rastreamentos em um experimento do MLflow e encontrar problemas recorrentes de qualidade e operacionais. Ele inspeciona entradas, saídas, extensões, chamadas de ferramentas, tempos, erros, avaliações e metadados e, em seguida, agrupa evidências relacionadas em problemas que podem ser investigados e corrigidos, como:

  • Um agente de suporte ao cliente inventa uma política de reembolso de 30 dias ao responder a uma solicitação de devolução.
  • Um agente de pesquisa repete a mesma pesquisa na Web cinco vezes, tornando a resposta mais lenta e aumentando os custos de ferramentas e tokens.
  • Um agente de viagens omite o argumento obrigatório departure_date, fazendo com que a ferramenta de reserva falhe.
  • Um agente de extração retorna prosa em vez do esquema JSON exigido pelo aplicativo solicitante.

O MLflow é compatível com um ciclo de melhoria contínua, da descoberta ao monitoramento de produção. Você pode revisar os rastreamentos por trás de um problema, corrigir e avaliar sua aplicação e, em seguida, acompanhar a taxa de problemas após a implantação.

Ciclo de vida da detecção de problemas: detectar padrões recorrentes, revisar evidências dos rastreamentos, corrigir e avaliar o agente e monitorar a taxa de problemas na produção.

Comece a detecção de problemas​

Abra um experimento do MLflow, selecione a tab Problemas e clique em Executar detecção de problemas . O Genie Code começa a analisar os rastreamentos no experimento. A análise normalmente leva de 5 a 30 minutos, dependendo do número e do tamanho dos rastreamentos. Você pode sair da página e retornar mais tarde para revisar os resultados.

dica

Use o modo de aprovação automática no Genie Code para evitar que a análise seja pausada para aprovação de ferramentas.

A tab Issues com o botão de execução de detecção de problemas.

Como alternativa, você pode começar o mesmo fluxo de trabalho na tab Rastreamentos clicando em Detectar problemas .

Revise os problemas​

Após a conclusão da análise, a tab Problemas lista os problemas detectados e mostra evidências de apoio para o problema selecionado. Cada evidência contém um link para o rastreamento de origem afetado.

A tab Problemas, com problemas detectados, evidências de apoio para um problema selecionado e o botão Ativar monitoramento.

Se uma constatação não for aplicável, atualize o status para Não é um problema usando o dropdown no canto superior direito. O MLflow aprende com esse feedback para evitar apresentar problemas semelhantes em execuções de detecção posteriores.

Corrija problemas com agentes de programação​

Cada problema inclui um prompt de correção com o contexto e rastreamentos representativos de que um agente de programação precisa para investigar o problema. Copie o prompt da seção Corrigir este problema e cole-o em um agente de programação em execução no repository da sua aplicação. O agente usa as evidências do problema para inspecionar os rastreamentos e o código, propor uma alteração específica e validar a correção.

Antes de usar o prompt:

  • Instale as habilidades do MLflow no seu agente de programação.
  • Verifique se o agente de codificação tem acesso ao seu Workspace do Databricks.

Revise a alteração proposta antes da implantação. Em seguida, avalie o agente atualizado em casos representativos para confirmar a correção e verificar regressões.

Monitorar uma correção em produção​

Uma correção que funciona no desenvolvimento ainda pode falhar com o tráfego de produção. Um monitor de problemas mostra se a taxa de problemas diminui após a implantação e se o problema retorna.

Selecione o problema e clique em Ativar monitor na seção Monitor . O MLflow cria um avaliador para o problema e o aplica retroativamente aos rastreamentos recentes para estabelecer uma linha de base. Em seguida, o MLflow executa o avaliador online em uma amostra de novos rastreamentos para acompanhar a taxa de problemas em produção.

O gráfico Monitor mostrando os rastreamentos sinalizados e não sinalizados e a taxa de problemas nos últimos sete dias.

Depois de implantar a correção, use o gráfico para comparar a taxa de problemas antes e depois do implantado. Quando o problema não aparecer mais na produção, marque-o como Resolvido .

Programar detecção​

Programe a detecção de problemas para analisar novos rastreamentos regularmente.

Clique em Programar detecção na tab Problemas para escolher com que frequência o MLflow verifica se há problemas. Você pode limitar a análise a um subconjunto de rastreamentos filtrando por um campo de metadados ou valor de tag, como environment = production.

A caixa de diálogo Programar detecção de problemas com configurações de cadência e filtro de rastreamentos.

Personalize os critérios de detecção​

Clique em Ícone de engrenagem. na página Problemas para configurar a detecção de problemas. Você pode indicar ao MLflow quais descobertas são importantes para sua aplicação, ativar ou desativar áreas de foco integradas e adicionar categorias personalizadas para falhas específicas da aplicação. Por exemplo, você pode priorizar a frustração do usuário e ignorar problemas de latência.

Acesse problemas usando a API REST​

Use a API REST de problemas para integrar a triagem de problemas a fluxos de trabalho externos. A API usa nomes de recursos de problemas no formato experiments/<experiment-id>/issues/<issue-id>.

Pesquisar problemas​

A pesquisa oferece suporte a texto do título, status, severidade, categoria, tag, ordenação e paginação. A solicitação a seguir retorna problemas abertos de alta severidade com suas descrições completas:

Bash
curl --request POST \
"https://<workspace-host>/api/2.0/mlflow/experiments/<experiment-id>/issues:search" \
--header "Authorization: Bearer <databricks-token>" \
--header "Content-Type: application/json" \
--data '{
"parent": "experiments/<experiment-id>",
"statuses": ["PENDING"],
"severities": ["HIGH"],
"sort_key": "LAST_SEEN_TIME",
"sort_order": "DESCENDING",
"page_size": 100,
"view": "FULL"
}'

Atualizar um problema​

Para atualizar um problema, inclua uma máscara de atualização. Por exemplo, a solicitação a seguir marca um problema como resolvido:

Bash
curl --request PATCH \
"https://<workspace-host>/api/2.0/mlflow/experiments/<experiment-id>/issues/<issue-id>?update_mask=status" \
--header "Authorization: Bearer <databricks-token>" \
--header "Content-Type: application/json" \
--data '{"status": "RESOLVED"}'

Atribuição de custos​

As execuções manuais e programadas de detecção de problemas usam o Genie Code. Para obter informações sobre preços, consulte Preços do Genie.

Outros recursos​