ML Observability: monitoramento do comportamento do modelo ao longo do tempo

O comportamento do modelo pode mudar com o tempo devido a desvios de entrada, suposições de treinamento obsoletas e problemas de pipeline de dados, além dos fatores usuais, incluindo alterações no hardware e software subjacentes e a natureza fluida do tráfego. O ML Observability permite que você acompanhe a qualidade dos modelos de produção implantados por meio do Snowflake Model Registry em várias dimensões, como desempenho, desvio e volume.

Atualmente, o monitor de modelos suporta modelos de regressão e classificação binária.

Nota

Para se aprofundar e começar a usar o ML Observability, consulte o guia de início rápido.

Fluxo de trabalho do ML Observability

Quando você usa um modelo que foi registrado no Snowflake Model Registry para inferência, receberá resultados na forma de um Snowpark ou pandas DataFrame, dependendo do tipo de entrada DataFrame passada para o método de inferência. Esses dados normalmente se originam no Snowflake. Mesmo nos casos em que a inferência é executada fora do Snowflake, é comum armazenar os resultados no Snowflake. O ML Observability permite que você monitore o desempenho do seu modelo em ambos os cenários, trabalhando com os dados de inferência armazenados. O fluxo de trabalho típico é mostrado abaixo.

Fluxo de trabalho do ML Observability

Os registros de monitoramento armazenam os dados de inferência e as previsões para que o recurso ML Observability possa observar as alterações nas previsões ao longo do tempo. Os registros de monitoramento são armazenados em uma tabela que contém um ID, um carimbo de data/hora, recursos, previsões e um rótulo de verdade básica, que indica se uma determinada linha é uma previsão ou dados observados. A estrutura básica é mostrada abaixo.

ML Observability em ação

Você deve criar explicitamente um objeto de monitor de modelo para cada versão de modelo que deseja monitorar. Cada versão de modelo pode ter exatamente um monitor, e cada monitor pode monitorar exatamente uma versão de modelo; eles não podem ser compartilhados. O objeto monitor atualiza automaticamente os logs do monitor consultando os dados de origem e atualiza os relatórios de monitoramento com base nos logs.

Cada monitor encapsula as seguintes informações:

  • A versão do modelo a ser monitorada.

  • A tabela na qual os logs do monitor são armazenados.

  • A granularidade mínima de tempo em que os dados são armazenados (janela de agregação), atualmente com um mínimo de 1 dia.

  • Uma tabela de linha de base opcional para operações de métrica comparativa, como desvio.

Pré-requisitos

Antes de começar, certifique-se de ter o seguinte:

  • Uma conta Snowflake.

  • Versão 1.7.1 ou posterior do pacote Python snowflake-ml-python.

  • Familiaridade com o Snowflake Model Registry.

Criação de um monitor de modelo

Crie um monitor de modelo usando o comando CREATE MODEL MONITOR. O monitor de modelo deve ser criado no mesmo esquema que a versão do modelo a ser monitorada. Você deve ter o privilégio CREATE MODEL MONITOR no esquema em que o monitor é criado. Você pode criar um máximo de 250 monitores de modelo por conta.

Consulte CREATE MODEL MONITOR para obter mais detalhes sobre o comando CREATE MODEL MONITOR.

Dica

Para obter detalhes sobre outros comandos de SQL que você pode usar com monitores de modelos, consulte Comandos de monitoramento de modelo.

Como interromper e retomar temporariamente o monitoramento

Você pode suspender (parar temporariamente) um monitor de modelo usando ALTER MODEL MONITOR… SUSPEND. Para retomar o monitoramento, emita ALTER MODEL MONITOR… RESUME.

Suspensão automática em caso de falha de atualização

Os monitores de modelo suspendem automaticamente as atualizações quando encontram cinco falhas consecutivas de atualização relacionadas às tabelas de origem. Você pode visualizar o status e a causa da suspensão da atualização usando o comando DESCRIBE MODEL MONITOR. A saída inclui as seguintes colunas, entre outras:

  • aggregation_status: o valor dessa coluna é um objeto JSON. Um ou mais dos valores desse objeto serão SUSPENDED se o monitor de modelo for suspenso.

  • aggregation_last_error: o valor dessa coluna é um objeto JSON que contém o erro específico de SQL que causou a suspensão.

Depois de resolver a causa raiz da falha de atualização, retome o monitor emitindo ALTER MODEL MONITOR… RESUME.

Visualização de relatórios de monitoramento

Para visualizar os relatórios do monitor, acesse o painel do ML Monitoring no Snowsight. No painel de navegação do Snowsight, selecione AI & ML e, em seguida, selecione Models. A lista resultante contém todos os modelos no Snowflake Model Registry em todos os bancos de dados e esquemas aos quais sua função atual tem acesso.

Abra a página de detalhes de um modelo selecionando a linha correspondente na lista Models. A página de detalhes exibe as principais informações do modelo, incluindo a descrição do modelo, as tags, as versões e os monitores.

A lista Monitors na página de detalhes exibe a lista de monitores de modelo, as versões de modelo às quais estão anexados, seu status e quando foram criados.

Abra a página do painel de um monitor de modelo selecionando a linha correspondente na lista Monitores. O painel é preenchido com gráficos que exibem as principais métricas do modelo ao longo do tempo. Os gráficos exatos exibidos dependem do tipo de modelo no qual o monitor se baseia (ou seja, classificação binária ou regressão).

No painel, você pode realizar as seguintes ações:

  • Alterar o intervalo dos gráficos clicando no seletor de intervalo de tempo.

  • Alterar os gráficos exibidos clicando no botão Settings. (Passe o mouse sobre o nome de uma métrica para ver mais informações sobre ela)

  • Comparar os modelos de monitores clicando no menu suspenso do seletor de modelos Compare.

  • Para exibir mais informações sobre o modelo do monitor, selecione Display monitor details.

Requisitos de controle de acesso

Os privilégios a seguir são necessários para trabalhar com objetos do monitor de modelo.

Comando

Privilégios obrigatórios

CREATE MODEL MONITOR

  • O privilégio CREATE MODEL MONITOR no esquema no qual você deseja criar o modelo.

  • SELECT na fonte de dados (tabela ou exibição)

  • USAGE em banco de dados, esquema, warehouse e modelo

SHOW MODEL MONITORS

Qualquer privilégio no monitor de modelo

DESCRIBE MODEL MONITOR

Qualquer privilégio no monitor de modelo

ALTER MODEL MONITOR

MODIFY no monitor de modelo

DROP MODEL MONITOR

OWNERSHIP no monitor de modelo

Painel de controle do monitor de modelo

USAGE no modelo e no monitor de modelo

Limitações conhecidas

As seguintes limitações se aplicam aos monitores de modelo:

  • Os monitores devem ser criados no mesmo banco de dados e esquema que a versão do modelo que está sendo monitorada.

  • Atualmente, somente modelos de regressão de saída única e de classificação binária são suportados.

  • É necessário ter pelo menos uma coluna de previsão (classe ou pontuação). As colunas reais são opcionais, mas são necessárias para calcular as métricas de precisão.

  • Se os dados de linha de base não forem fornecidos, o desvio não poderá ser calculado. Você precisará descartar o monitor e criá-lo novamente para adicionar dados de linha de base.

  • Uma determinada coluna pode ser usada apenas uma vez no monitor. Por exemplo, você não pode usar a mesma coluna como ID e como previsão.

  • Os monitores de modelo esperam que seus dados não contenham valores inválidos, como nulos, NaNs, +/-Inf, pontuações de probabilidade fora do intervalo de 0-1, classes que não sejam exatamente 0 ou 1 ou mais de duas classes em uma coluna PREDICTION_CLASS_COLUMNS. Esses problemas podem fazer com que o monitor falhe e acabe sendo suspenso.

  • As colunas de carimbo de data/hora devem ser do tipo TIMESTAMP_NTZ ou DATE. As colunas de previsão e real devem ser do tipo NUMBER.

  • As janelas de agregação devem ser especificadas em dias.

  • O número de recursos monitorados pode ser de, no máximo, 500.

  • Você pode criar no máximo 250 monitores.

Considerações sobre custo

Computação de warehouse virtual

Os monitores de modelos são executados em um warehouse virtual. Este warehouse incorre em custo quando o usuário cria o monitor e cada vez que o serviço é atualizado. Um warehouse virtual também é usado ao carregar o painel do Snowsight associado e incorre em cobranças.

Armazenamento

Os monitores de modelo materializam os dados de origem em uma tabela armazenada em sua conta.

Computação de serviços de nuvem

Os monitores de modelo usam a computação dos serviços de nuvem para acionar atualizações quando um objeto de base subjacente é alterado. O custo de computação dos serviços de nuvem só é cobrado se o custo diário dos serviços de nuvem for superior a 10% do custo diário do warehouse da conta.