Para iniciar um job de monitoramento, o Monitoramento de modelos precisa conhecer o esquema do conjunto de dados tabular para analisar corretamente o payload de entrada.
Para modelos do AutoML, o Model Monitoring analisa o esquema automaticamente, porque a Vertex AI já tem acesso aos dados de treinamento.
Para modelos treinados de forma personalizada:
O monitoramento de modelos pode analisar automaticamente esquemas para modelos que usam um formato de entrada de chave-valor padrão.
Para modelos treinados de forma personalizada que não usam um formato de entrada de chave-valor, pode ser necessário fornecer um esquema ao criar seu job de monitoramento.
A geração de esquema varia dependendo se você está ativando o monitoramento de modelos para um endpoint de previsão on-line ou em lote.
Análise de esquema para endpoints de previsão on-line
Para endpoints de previsão on-line, é possível permitir que o Model Monitoring analise o esquema automaticamente ou faça upload de um esquema ao criar um job de monitoramento.
Análise automática de esquema
Depois de ativar a detecção de desvio ou deslocamento de um endpoint on-line, o monitoramento de modelos geralmente pode analisar automaticamente o esquema de entrada. Para a análise automática de esquemas, o Model Monitoring analisa as primeiras 1.000 solicitações de entrada para determinar o esquema.
A análise automática de esquema funciona melhor quando as solicitações de entrada são formatadas como pares chave-valor, em que "key"
é o nome do recurso e "value"
é o valor do recurso. Exemplo:
"key":"value"
{"TenYearCHD":"0", "glucose":"5.4", "heartRate":"1", "age":"30", "prevalentStroke":"0", "gender":"f", "ethnicity":"latin american"}
Se as entradas não estiverem no formato "key":"value"
, o Monitoramento de modelos tentará identificar o tipo de dados de cada atributo e atribuirá automaticamente um nome de recurso padrão a cada entrada.
Esquemas de instâncias personalizadas
É possível fornecer seu próprio esquema de entrada ao criar um job de monitoramento de modelo para garantir que o monitoramento analise as entradas do modelo.
Esse esquema é chamado de esquema de instância de análise. O arquivo de esquema especifica o formato do payload de entrada, os nomes de cada recurso e o tipo de cada recurso.
O esquema precisa ser escrito como um arquivo YAML no formato de Open API. O exemplo a seguir é para uma solicitação de previsão com o formato object
:
type: object properties: age: type: string BMI: type: number TenYearCHD: type: string cigsPerDay: type: array items: type: string BPMeds: type: string required: - age - BMI - TenYearCHD - cigsPerDay - BPMeds
type
indica se a solicitação de previsão é um dos seguintes formatos:object
: pares de chave-valorarray
: semelhante a matrizstring
: string csv
properties
indica o tipo de cada recurso individual.Se a solicitação estiver no formato de matriz ou string de CSV, especifique a ordem em que os recursos são listados em cada solicitação no campo
required
.
Se a solicitação de previsão estiver no formato de matriz ou csv-string, represente todos os recursos ausentes como valores nulos. Por exemplo, considere uma solicitação de previsão com cinco recursos:
[feature_a, feature_b, feature_c, feature_d, feature_e]
Se feature_c
permitir valores ausentes, uma solicitação de amostra ausente feature_c
será: {[1, 2, , 4, 6]}
. O comprimento da lista ainda é cinco, com um valor nulo
no meio.
Análise de esquema para previsões em lote
Para previsões em lote, permita que o monitoramento de modelos analise o esquema automaticamente ou faça upload de um esquema ao criar um job de monitoramento.
Análise automática de esquema
Se você não fornecer um esquema durante o monitoramento da criação do job, o monitoramento de modelos deduzirá os tipos de dados dos seus atributos e gerará o esquema com base nos seus dados de treinamento.
O monitoramento de modelos também precisa saber qual recurso é a coluna de destino, que é o recurso que está sendo previsto. A coluna de destino é excluída do esquema e da métrica de desvio do atributo. É possível especificar a coluna de destino ao criar um job de monitoramento.
Especificação da coluna de destino
Se você não especificar a coluna de destino ao criar um job de monitoramento, o monitoramento de modelos rotulará o último nome de recurso nos dados de treinamento como a coluna de destino.
Por exemplo, o monitoramento de modelos rotula column_c
nesses
dados de treinamento CSV como a coluna de destino porque column_c
está no final da
primeira linha:
column_a, column_b, column_d, column_c 1,"a", 2, "c" 2,"b", 342, "d"
Da mesma forma, o monitoramento de modelos rotula column_c
nesse
arquivo JSONL como a coluna de destino porque column_c
está no final da primeira
linha:
{"column_a": 1, "column_b": "a", "column_d": 2, "column_c": "c" } {"column_a": 2, "column_b": "b", "column_c": "d", "column_d": 342}
Em ambos os exemplos, o esquema final contém apenas column_a
, column_b
e column_d
.
Esquemas personalizados
Seu esquema personalizado especifica o formato do payload da entrada, os nomes de cada recurso e o tipo de cada recurso.
O esquema precisa ser escrito como um arquivo YAML com sintaxe de API aberta. O exemplo a seguir é para uma solicitação de previsão com o formato object
:
type: object properties: age: type: string BMI: type: number TenYearCHD: type: string cigsPerDay: type: array items: type: string BPMeds: type: string required: - age - BMI - TenYearCHD - cigsPerDay - BPMeds
O monitoramento de modelos calcula o desvio do recurso com base na saída da previsão em lote das linhas JSON. Se o tipo de dados contiver uma matriz, o comprimento dela nos dados de entrada precisará ser igual ao número de atributos especificados no arquivo yaml. Caso contrário, o monitoramento de modelos exclui a instância de previsão com o comprimento incorreto da matriz do cálculo do desvio do recurso.
Por exemplo, as matrizes nos seguintes tipos de dados contêm dois atributos:
Array:
{[[1, 2]]}
"Chave"/"Valor":
{"key": 0, "values": [[1, 2]]}
O esquema correspondente também precisa especificar dois recursos:
type: object properties: name: type: string age: type: number required: - name - age
A seguir
- Ative a detecção de desvios e deslocamentos para seus modelos.
- Teste o notebook de exemplo no Colab (em inglês) ou visualize-o no GitHub.