Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
APLICA-SE A:
Extensão de ML da CLI do Azure v2 (atual)
SDK do Python azure-ai-ml v2 (atual)
No Azure Machine Learning, você pode usar o monitoramento de modelos para acompanhar continuamente o desempenho de modelos de machine learning em produção. O monitoramento de modelos fornece uma visão ampla dos sinais de monitoramento. Ele também alerta você para possíveis problemas. Ao monitorar sinais e métricas de desempenho de modelos em produção, você pode avaliar criticamente os riscos inerentes aos seus modelos. Você também pode identificar pontos cegos que podem afetar negativamente sua empresa.
Neste artigo, você verá como executar as seguintes tarefas:
- Configurar o monitoramento avançado e pronto para uso para modelos que estão implantados nos pontos de extremidade online do Azure Machine Learning
- Monitorar métricas de desempenho para modelos em produção
- Monitorar modelos implantados fora do Azure Machine Learning ou implantados em pontos de extremidade de lote do Azure Machine Learning
- Configurar sinais e métricas personalizados para usar no monitoramento de modelos
- Interpretar resultados do monitoramento
- Integrar o monitoramento de modelo do Azure Machine Learning à Grade de Eventos do Azure
Pré-requisitos
A CLI do Azure e a extensão
mlpara a CLI do Azure, instalada e configurada. Para obter mais informações, consulte Instalar e configurar a CLI (v2).Um shell bash ou um shell compatível, por exemplo, um shell em um sistema Linux ou Subsistema do Windows para Linux. Os exemplos da CLI do Azure neste artigo pressupõem que você use esse tipo de shell.
Um Workspace do Azure Machine Learning. Para obter instruções para criar um workspace, consulte Configurar.
Uma conta de usuário que tem pelo menos uma das seguintes funções de RBAC (controle de acesso baseado em função) do Azure:
- Uma função de Proprietário para o workspace do Azure Machine Learning
- Uma função de Colaborador para o workspace do Azure Machine Learning
- Uma função personalizada que tem permissões
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*
Para obter mais informações, consulte Gerenciar acesso a workspaces do Azure Machine Learning.
Para monitorar um ponto de extremidade online gerenciado pelo Azure Machine Learning ou um ponto de extremidade online do Kubernetes:
Um modelo implantado no endpoint online do Azure Machine Learning. Há suporte para pontos de extremidade online gerenciados e pontos de extremidade online do Kubernetes. Para obter instruções sobre como implantar um modelo em um ponto de extremidade online do Azure Machine Learning, consulte Implantar e pontuar um modelo de machine learning usando um ponto de extremidade online.
A coleta de dados está habilitada para a implantação do seu modelo. Você pode habilitar a coleta de dados durante a etapa de implantação de pontos de extremidade online do Azure Machine Learning. Para obter mais informações, consulte Coletar dados de produção de modelos implantados para inferência em tempo real.
Para monitorar um modelo implantado em um ponto de extremidade em lote do Azure Machine Learning ou implantado fora do Azure Machine Learning:
- Um meio de coletar dados de produção e registrá-los como um ativo de dados do Azure Machine Learning
- Significa atualizar o ativo de dados registrado continuamente para monitoramento de modelo
- (Recomendado) Registro do modelo em um workspace do Azure Machine Learning para acompanhamento de linhagem
Configurar um pool de computação spark sem servidor
Os trabalhos de monitoramento de modelo são agendados para serem executados em pools de computação spark sem servidor. Há suporte para os seguintes tipos de instância de Máquinas Virtuais do Azure:
- Standard_E4s_v3
- Standard_E8s_v3
- Standard_E16s_v3
- Standard_E32s_v3
- Standard_E64s_v3
Para especificar um tipo de instância de máquina virtual ao seguir os procedimentos neste artigo, execute as seguintes etapas:
Ao usar a CLI do Azure para criar um monitor, você usa um arquivo de configuração YAML. Nesse arquivo, defina o create_monitor.compute.instance_type valor como o tipo que você deseja usar.
Configurar o monitoramento de modelo pronto para uso
Considere um cenário no qual você implanta seu modelo em produção em um endpoint online do Azure Machine Learning e habilita a coleta de dados no momento da implantação. Nesse caso, o Azure Machine Learning coleta dados de inferência de produção e os armazena automaticamente no Armazenamento de Blobs do Azure. Você pode usar o monitoramento de modelo do Azure Machine Learning para monitorar continuamente esses dados de inferência de produção.
Você pode usar a CLI do Azure, o SDK do Python ou o estúdio para obter uma configuração pronta para uso do monitoramento de modelo. A configuração de monitoramento de modelo pronta para uso fornece os seguintes recursos de monitoramento:
- O Azure Machine Learning detecta automaticamente o ativo de dados de inferência de produção associado a uma implantação online do Azure Machine Learning e usa o ativo de dados para monitoramento de modelos.
- O ativo de dados de referência de comparação é definido como o ativo de dados de inferência de produção recente e anterior.
- A configuração de monitoramento inclui e rastreia automaticamente os seguintes sinais de monitoramento internos: desvio de dados, desvio de previsão e qualidade de dados. Para cada sinal de monitoramento, o Azure Machine Learning usa:
- Os ativos de dados de inferência de produção recentes e passados são usados como ativos de dados de referência para comparação.
- Valores padrão inteligentes para métricas e limites.
- Um trabalho de monitoramento é configurado para ser executado em uma programação regular. Esse trabalho adquire sinais de monitoramento e avalia cada resultado de métrica em relação ao limite correspondente. Por padrão, quando qualquer limite é excedido, o Azure Machine Learning envia um email de alerta para o usuário que configurou o monitor.
Para configurar o monitoramento de modelos pronto para uso, siga as etapas abaixo.
Na CLI do Azure, você usa az ml schedule para agendar um trabalho de monitoramento.
Crie uma definição de monitoramento em um arquivo YAML. Para uma definição pronta para uso, consulte o código YAML a seguir, que também está disponível no repositório azureml-examples.
Antes de usar essa definição, ajuste os valores para se ajustarem ao seu ambiente. Para
endpoint_deployment_id, use um valor no formatoazureml:<endpoint-name>:<deployment-name>.# out-of-box-monitoring.yaml $schema: http://azureml/sdk-2-0/Schedule.json name: credit_default_model_monitoring display_name: Credit default model monitoring description: Credit default model monitoring setup with minimal configurations trigger: # perform model monitoring activity daily at 3:15am type: recurrence frequency: day #can be minute, hour, day, week, month interval: 1 # #every day schedule: hours: 3 # at 3am minutes: 15 # at 15 mins after 3am create_monitor: compute: # specify a spark compute for monitoring job instance_type: standard_e4s_v3 runtime_version: "3.4" monitoring_target: ml_task: classification # model task type: [classification, regression, question_answering] endpoint_deployment_id: azureml:credit-default:main # azureml endpoint deployment id alert_notification: # emails to get alerts emails: - abc@example.com - def@example.comExecute o seguinte comando para criar o modelo:
az ml schedule create -f ./out-of-box-monitoring.yaml
Configurar monitoramento avançado de modelo
O Azure Machine Learning fornece muitos recursos para monitoramento contínuo de modelo. Para obter uma lista abrangente dessa funcionalidade, consulte Recursos de monitoramento de modelo. Em muitos casos, você precisa configurar o monitoramento de modelo que dá suporte a tarefas de monitoramento avançadas. A seção a seguir fornece alguns exemplos de monitoramento avançado:
- O uso de vários sinais de monitoramento para uma visão ampla
- O uso de dados de treinamento de modelo histórico ou dados de validação como referência de dados para comparação
- Monitoramento das N funcionalidades mais importantes e funcionalidades individuais
Configurar importância do recurso
A importância do recurso representa a importância relativa de cada recurso de entrada para a saída de um modelo. Por exemplo, a temperatura pode ser mais importante para a previsão de um modelo do que a elevação. Ao ativar a importância das características, você pode fornecer visibilidade sobre quais características você não deseja que desviem ou tenham problemas de qualidade de dados na produção.
Para habilitar a importância do recurso com qualquer um de seus sinais, como descompasso de dados ou qualidade de dados, você precisa fornecer:
- O seu ativo de dados de treinamento como ativo de dados de
reference_data. - A propriedade
reference_data.data_column_names.target_column, que é o nome da coluna de saída do seu modelo, ou coluna de previsão.
Depois de ativar a importância do recurso, você verá uma importância de recurso para cada recurso que você monitora no Azure Machine Learning Studio.
Você pode ativar ou desativar alertas para cada sinal definindo a alert_enabled propriedade ao usar o SDK do Python ou a CLI do Azure.
Você pode usar a CLI do Azure, o SDK do Python ou o estúdio para configurar o monitoramento avançado de modelos.
Crie uma definição de monitoramento em um arquivo YAML. Para obter uma definição avançada de exemplo, consulte o seguinte código YAML, que também está disponível no repositório azureml-examples.
Antes de usar essa definição, ajuste as seguintes configurações e todas as outras para atender às necessidades do seu ambiente:
- Para
endpoint_deployment_id, use um valor no formatoazureml:<endpoint-name>:<deployment-name>. - Para
pathnas seções de dados de entrada de referência, use um valor no formatoazureml:<reference-data-asset-name>:<version>. - Para
target_column, use o nome da coluna de saída que contém valores que o modelo prevê, comoDEFAULT_NEXT_MONTH. - Para
features, liste os recursos comoSEX,EDUCATIONeAGEque você deseja usar em um sinal de qualidade de dados avançado. - Em
emails, liste os endereços de email que você deseja usar para notificações.
# advanced-model-monitoring.yaml $schema: http://azureml/sdk-2-0/Schedule.json name: fraud_detection_model_monitoring display_name: Fraud detection model monitoring description: Fraud detection model monitoring with advanced configurations trigger: # perform model monitoring activity daily at 3:15am type: recurrence frequency: day #can be minute, hour, day, week, month interval: 1 # #every day schedule: hours: 3 # at 3am minutes: 15 # at 15 mins after 3am create_monitor: compute: instance_type: standard_e4s_v3 runtime_version: "3.4" monitoring_target: ml_task: classification endpoint_deployment_id: azureml:credit-default:main monitoring_signals: advanced_data_drift: # monitoring signal name, any user defined name works type: data_drift # reference_dataset is optional. By default referece_dataset is the production inference data associated with Azure Machine Learning online endpoint reference_data: input_data: path: azureml:credit-reference:1 # use training data as comparison reference dataset type: mltable data_context: training data_column_names: target_column: DEFAULT_NEXT_MONTH features: top_n_feature_importance: 10 # monitor drift for top 10 features alert_enabled: true metric_thresholds: numerical: jensen_shannon_distance: 0.01 categorical: pearsons_chi_squared_test: 0.02 advanced_data_quality: type: data_quality # reference_dataset is optional. By default reference_dataset is the production inference data associated with Azure Machine Learning online endpoint reference_data: input_data: path: azureml:credit-reference:1 type: mltable data_context: training features: # monitor data quality for 3 individual features only - SEX - EDUCATION alert_enabled: true metric_thresholds: numerical: null_value_rate: 0.05 categorical: out_of_bounds_rate: 0.03 feature_attribution_drift_signal: type: feature_attribution_drift # production_data: is not required input here # Please ensure Azure Machine Learning online endpoint is enabled to collected both model_inputs and model_outputs data # Azure Machine Learning model monitoring will automatically join both model_inputs and model_outputs data and used it for computation reference_data: input_data: path: azureml:credit-reference:1 type: mltable data_context: training data_column_names: target_column: DEFAULT_NEXT_MONTH alert_enabled: true metric_thresholds: normalized_discounted_cumulative_gain: 0.9 alert_notification: emails: - abc@example.com - def@example.com- Para
Execute o seguinte comando para criar o modelo:
az ml schedule create -f ./advanced-model-monitoring.yaml
Configurar o modelo de monitoramento de desempenho
Ao usar o monitoramento de modelo do Azure Machine Learning, você pode acompanhar o desempenho de seus modelos em produção calculando suas métricas de desempenho. No momento, há suporte para as seguintes métricas de desempenho do modelo:
- Para modelos de classificação:
- Precisão
- Precisão
- Recuperação
- Para modelos de regressão:
- Erro médio absoluto (MAE)
- Erro quadrado médio (MSE)
- Raiz do erro quadrático médio (REQM)
Pré-requisitos para monitoramento de desempenho do modelo
Dados de saída para o modelo de produção (previsões do modelo) com uma ID exclusiva para cada linha. Se você usar o coletor de dados do Azure Machine Learning para coletar dados de produção, uma ID de correlação será fornecida para cada solicitação de inferência para você. O coletor de dados também oferece a opção de registrar sua própria ID exclusiva no aplicativo.
Observação
Para o monitoramento de desempenho do modelo do Azure Machine Learning, recomendamos que você use o coletor de dados do Azure Machine Learning para registrar sua ID exclusiva em sua própria coluna.
Dados de verdade básica (reais) com uma ID exclusiva para cada linha. A ID exclusiva de uma determinada linha deve corresponder à ID exclusiva dos dados de saída do modelo para essa solicitação de inferência específica. Essa ID exclusiva é usada para unir seu ativo de dados de verdade fundamental (ground truth) com os dados de saída do modelo.
Se você não tiver dados de verdade fundamental, não poderá realizar o monitoramento de desempenho do modelo. Dados de verdade básica são encontrados no nível do aplicativo, portanto, é sua responsabilidade recolhê-los à medida que ficam disponíveis. Você também deve manter um ativo de dados no Azure Machine Learning que contenha esses dados de verdade fundamental.
(Opcional) Um ativo de dados tabular pré-unidos com os dados de saída do modelo e os dados de verdade fundamental já unidos.
Requisitos para monitoramento de desempenho de modelo ao usar o coletor de dados
O Azure Machine Learning gera uma ID de correlação para você quando você atende aos seguintes critérios:
- Use o coletor de dados do Azure Machine Learning para coletar dados de inferência de produção.
- Você não fornece sua própria ID exclusiva para cada linha em uma coluna separada.
A ID de correlação gerada está incluída no objeto JSON registrado. No entanto, o coletor de dados agrupa linhas que são enviadas em intervalos de tempo curtos entre si. As linhas em lote se enquadram no mesmo objeto JSON. Em cada objeto, todas as linhas têm a mesma ID de correlação.
Para diferenciar entre as linhas em um objeto JSON, o monitoramento de desempenho do modelo do Azure Machine Learning usa a indexação para determinar a ordem das linhas dentro do objeto. Por exemplo, se um lote contém três linhas e a ID de correlação é test, a primeira linha tem uma ID de test_0, a segunda linha tem uma ID de test_1, e a terceira linha tem uma ID de test_2. Para corresponder as IDs exclusivas do ativo de dados de verdade fundamental com as IDs dos dados de saída do modelo de inferência de produção coletados, aplique um índice adequado a cada ID de correlação. Se o objeto JSON registrado tiver apenas uma linha, use correlationid_0 como o valor correlationid.
Para evitar o uso dessa indexação, recomendamos que você registre sua ID exclusiva em sua própria coluna. Coloque essa coluna dentro do quadro de dados pandas que o coletor de dados do Azure Machine Learning registra. Na configuração de monitoramento do seu modelo, especifique o nome dessa coluna para unir os dados de saída do modelo com seus dados de verdade fundamental. Desde que as IDs de cada linha em ambos os ativos de dados sejam iguais, o monitoramento do modelo do Azure Machine Learning pode executar o monitoramento de desempenho do modelo.
Exemplo de fluxo de trabalho para monitorar o desempenho do modelo
Para entender os conceitos associados ao monitoramento de desempenho do modelo, considere o fluxo de trabalho de exemplo a seguir. Ele se aplica a um cenário no qual você implanta um modelo para prever se as transações de cartão de crédito são fraudulentas:
- Configure sua implantação para coletar os dados de inferência de produção do modelo (dados de entrada e saída). Armazene os dados de saída em uma coluna chamada
is_fraud. - Para cada linha dos dados de inferência coletados, registre uma ID exclusiva. A ID exclusiva pode vir do aplicativo ou você pode usar o
correlationidvalor gerado exclusivamente pelo Azure Machine Learning para cada objeto JSON registrado. - Quando os dados de verdade fundamental (ou reais)
is_fraudestiverem disponíveis, registre e mapeie cada linha à mesma ID exclusiva registrada para a linha correspondente nos dados de saída do modelo. - Registre um ativo de dados no Azure Machine Learning e use-o para coletar e manter os dados de verdade fundamental
is_fraud. - Crie um sinal de monitoramento de desempenho do modelo que use as colunas de ID exclusiva para unir os dados de inferência de produção com os ativos de dados de verdade fundamental.
- Compute as métricas de desempenho do modelo.
Depois de atender aos pré-requisitos para o monitoramento de desempenho do modelo, execute as seguintes etapas para configurar o monitoramento de modelos:
Crie uma definição de monitoramento em um arquivo YAML. A especificação de exemplo a seguir define o monitoramento de modelo com dados de inferência de produção. Antes de usar essa definição, ajuste as seguintes configurações e todas as outras para atender às necessidades do seu ambiente:
- Para
endpoint_deployment_id, use um valor no formatoazureml:<endpoint-name>:<deployment-name>. - Para cada
pathvalor em uma seção de dados de entrada, use um valor no formatoazureml:<data-asset-name>:<version>. - Para o
predictionvalor, use o nome da coluna de saída que contém valores que o modelo prevê. - Para o
actualvalor, use o nome da coluna ground truth que contém os valores reais que o modelo tenta prever. - Para os valores de
correlation_id, use os nomes das colunas que são usadas para unir os dados de saída e os dados de verdade fundamental. - Em
emails, liste os endereços de email que você deseja usar para notificações.
# model-performance-monitoring.yaml $schema: http://azureml/sdk-2-0/Schedule.json name: model_performance_monitoring display_name: Credit card fraud model performance description: Credit card fraud model performance trigger: type: recurrence frequency: day interval: 7 schedule: hours: 10 minutes: 15 create_monitor: compute: instance_type: standard_e8s_v3 runtime_version: "3.3" monitoring_target: ml_task: classification endpoint_deployment_id: azureml:loan-approval-endpoint:loan-approval-deployment monitoring_signals: fraud_detection_model_performance: type: model_performance production_data: input_data: path: azureml:credit-default-main-model_outputs:1 type: mltable data_column_names: prediction: is_fraud correlation_id: correlation_id reference_data: input_data: path: azureml:my_model_ground_truth_data:1 type: mltable data_column_names: actual: is_fraud correlation_id: correlation_id data_context: ground_truth alert_enabled: true metric_thresholds: tabular_classification: accuracy: 0.95 precision: 0.8 alert_notification: emails: - abc@example.com- Para
Execute o seguinte comando para criar o modelo:
az ml schedule create -f ./model-performance-monitoring.yaml
Configurar o monitoramento de modelos de dados de produção
Você também pode monitorar modelos implantados em pontos de extremidade em lote do Azure Machine Learning ou implantados fora do Azure Machine Learning. Se você não tiver uma implantação, mas tiver dados de produção, poderá usar os dados para executar o monitoramento contínuo do modelo. Para monitorar esses modelos, é necessário:
- Coletar dados de inferência de produção de modelos implantados em produção.
- Registrar os dados de inferência de produção como um ativo de dados do Azure Machine Learning e garantir atualizações contínuas dos dados.
- Forneça um componente de pré-processamento de dados personalizado e registre-o como um componente do Azure Machine Learning se você não usar o coletor de dados para coletar dados. Sem esse componente de pré-processamento de dados personalizado, o sistema de monitoramento de modelos do Azure Machine Learning não pode processar seus dados em um formulário tabular que dê suporte a janelas de tempo.
O componente de pré-processamento personalizado deve ter as seguintes assinaturas de entrada e saída:
| Entrada ou saída | Nome da assinatura | Tipo | Descrição | Valor de exemplo |
|---|---|---|---|---|
| entrada | data_window_start |
literal, cadeia de caracteres | A hora de início da janela de dados no formato ISO8601 | 2023-05-01T04:31:57.012Z |
| entrada | data_window_end |
literal, cadeia de caracteres | O hora de término da janela de dados no formato ISO8601 | 2023-05-01T04:31:57.012Z |
| entrada | input_data |
uri_folder | Os dados de inferência de produção coletados, que são registrados como um ativo de dados do Azure Machine Learning | azureml:myproduction_inference_data:1 |
| saída | preprocessed_data |
mltable | Um ativo de dados tabular que corresponde a um subconjunto do esquema de dados de referência |
Para obter um exemplo de um componente personalizado de pré-processamento de dados, consulte custom_preprocessing no repositório GitHub azuremml-examples.
Para obter instruções sobre como registrar um componente do Azure Machine Learning, consulte o componente Registrar em seu workspace.
Depois de registrar os dados de produção e o componente de pré-processamento, você pode configurar o monitoramento de modelos.
Crie um arquivo YAML de definição de monitoramento semelhante ao seguinte. Antes de usar essa definição, ajuste as seguintes configurações e todas as outras para atender às necessidades do seu ambiente:
- Para
endpoint_deployment_id, use um valor no formatoazureml:<endpoint-name>:<deployment-name>. - Para
pre_processing_component, use um valor no formatoazureml:<component-name>:<component-version>. Especifique a versão exata, como1.0.0, não1. - Para cada
path, use um valor no formatoazureml:<data-asset-name>:<version>. - Para o
target_columnvalor, use o nome da coluna de saída que contém valores que o modelo prevê. - Em
emails, liste os endereços de email que você deseja usar para notificações.
# model-monitoring-with-collected-data.yaml $schema: http://azureml/sdk-2-0/Schedule.json name: fraud_detection_model_monitoring display_name: Fraud detection model monitoring description: Fraud detection model monitoring with your own production data trigger: # perform model monitoring activity daily at 3:15am type: recurrence frequency: day #can be minute, hour, day, week, month interval: 1 # #every day schedule: hours: 3 # at 3am minutes: 15 # at 15 mins after 3am create_monitor: compute: instance_type: standard_e4s_v3 runtime_version: "3.4" monitoring_target: ml_task: classification endpoint_deployment_id: azureml:fraud-detection-endpoint:fraud-detection-deployment monitoring_signals: advanced_data_drift: # monitoring signal name, any user defined name works type: data_drift # define production dataset with your collected data production_data: input_data: path: azureml:my_production_inference_data_model_inputs:1 # your collected data is registered as Azure Machine Learning asset type: uri_folder data_context: model_inputs pre_processing_component: azureml:production_data_preprocessing:1.0.0 reference_data: input_data: path: azureml:my_model_training_data:1 # use training data as comparison baseline type: mltable data_context: training data_column_names: target_column: is_fraud features: top_n_feature_importance: 20 # monitor drift for top 20 features alert_enabled: true metric_thresholds: numerical: jensen_shannon_distance: 0.01 categorical: pearsons_chi_squared_test: 0.02 advanced_prediction_drift: # monitoring signal name, any user defined name works type: prediction_drift # define production dataset with your collected data production_data: input_data: path: azureml:my_production_inference_data_model_outputs:1 # your collected data is registered as Azure Machine Learning asset type: uri_folder data_context: model_outputs pre_processing_component: azureml:production_data_preprocessing:1.0.0 reference_data: input_data: path: azureml:my_model_validation_data:1 # use training data as comparison reference dataset type: mltable data_context: validation alert_enabled: true metric_thresholds: categorical: pearsons_chi_squared_test: 0.02 alert_notification: emails: - abc@example.com - def@example.com- Para
Execute o comando a seguir para criar o modelo.
az ml schedule create -f ./model-monitoring-with-collected-data.yaml
Configurar o monitoramento de modelo com sinais e métricas personalizadas
Ao usar o monitoramento de modelo do Azure Machine Learning, você pode definir um sinal personalizado e implementar qualquer métrica de sua escolha para monitorar seu modelo. Você pode registrar seu sinal personalizado como um componente do Azure Machine Learning. Quando você executa o trabalho de monitoramento de modelo conforme a programação definida, ele calcula as métricas do seu sinal personalizado da mesma forma que calcula para os sinais predefinidos, como descompasso de dados, descompasso de previsão e qualidade dos dados.
Para configurar um sinal personalizado a ser usado para monitoramento de modelo, primeiro defina o sinal personalizado e registre-o como um componente do Azure Machine Learning. O componente do Azure Machine Learning deve ter as seguintes assinaturas de entrada e saída.
Assinatura de entrada do componente
O quadro de dados de entrada do componente deve conter os seguintes itens:
- Uma
mltableestrutura que contém os dados processados do componente de pré-processamento. - Todo número de literais, cada um representando uma métrica implementada como parte do componente do sinal personalizado. Por exemplo, se você implementar a
std_deviationmétrica, precisará de uma entrada parastd_deviation_threshold. Em geral, deve haver uma entrada com o nome<metric-name>_thresholdpor métrica.
| Nome da assinatura | Tipo | Descrição | Valor de exemplo |
|---|---|---|---|
production_data |
mltable | Um ativo de dados tabular que corresponde a um subconjunto do esquema de dados de referência | |
std_deviation_threshold |
literal, cadeia de caracteres | O respectivo limite para a métrica implementada | 2 |
Assinatura de saída do componente
A porta de saída do componente deve ter a seguinte assinatura:
| Nome da assinatura | Tipo | Descrição |
|---|---|---|
signal_metrics |
mltable | A estrutura mltable que contém as métricas computadas. Para obter o esquema dessa assinatura, consulte a próxima seção, signal_metrics esquema. |
esquema de métricas de sinal
O quadro de dados de saída do componente deve conter quatro colunas: group, , metric_namee metric_valuethreshold_value.
| Nome da assinatura | Tipo | Descrição | Valor de exemplo |
|---|---|---|---|
group |
literal, cadeia de caracteres | O agrupamento lógico de nível superior a ser aplicado à métrica personalizada | TRANSACTIONAMOUNT |
metric_name |
literal, cadeia de caracteres | O nome da métrica personalizada | std_deviation |
metric_value |
numérico | O valor da métrica personalizada | 44,896.082 |
threshold_value |
numérico | O limite para a métrica personalizada | 2 |
A tabela a seguir mostra o exemplo de saída de um componente de sinal personalizado que calcula a std_deviation métrica:
| agrupar | valor_métrico | metric_name | valor_limiar |
|---|---|---|---|
| TRANSACTIONAMOUNT | 44,896.082 | std_deviation | 2 |
| LOCALHOUR | 3.983 | std_deviation | 2 |
| TRANSACTIONAMOUNTUSD | 54.004,902 | std_deviation | 2 |
| DIGITALITEMCOUNT | 7.238 | std_deviation | 2 |
| PHYSICALITEMCOUNT | 5.509 | std_deviation | 2 |
Para ver um exemplo de uma definição de componente de sinal personalizado e um código de computação de métrica, consulte custom_signal no repositório azureml-examples.
Para obter instruções sobre como registrar um componente do Azure Machine Learning, consulte o componente Registrar em seu workspace.
Depois de criar e registrar seu componente de sinal personalizado no Azure Machine Learning, execute as seguintes etapas para configurar o monitoramento de modelo:
Crie uma definição de monitoramento em um arquivo YAML semelhante ao seguinte. Antes de usar essa definição, ajuste as seguintes configurações e todas as outras para atender às necessidades do seu ambiente:
- Para
component_id, use um valor no formatoazureml:<custom-signal-name>:1.0.0. - Na
pathseção de dados de entrada, use um valor no formatoazureml:<production-data-asset-name>:<version>. - Para
pre_processing_component:- Se você usar o coletor de dados para coletar seus dados, poderá omitir a
pre_processing_componentpropriedade. - Se você não usar o coletor de dados e quiser usar um componente para pré-processar dados de produção, use um valor no formato
azureml:<custom-preprocessor-name>:<custom-preprocessor-version>.
- Se você usar o coletor de dados para coletar seus dados, poderá omitir a
- Em
emails, liste os endereços de email que você deseja usar para notificações.
# custom-monitoring.yaml $schema: http://azureml/sdk-2-0/Schedule.json name: my-custom-signal trigger: type: recurrence frequency: day # Possible frequency values include "minute," "hour," "day," "week," and "month." interval: 7 # Monitoring runs every day when you use the value 1. create_monitor: compute: instance_type: "standard_e4s_v3" runtime_version: "3.3" monitoring_signals: customSignal: type: custom component_id: azureml:my_custom_signal:1.0.0 input_data: production_data: input_data: type: uri_folder path: azureml:my_production_data:1 data_context: test data_window: lookback_window_size: P30D lookback_window_offset: P7D pre_processing_component: azureml:custom_preprocessor:1.0.0 metric_thresholds: - metric_name: std_deviation threshold: 2 alert_notification: emails: - abc@example.com- Para
Execute o seguinte comando para criar o modelo:
az ml schedule create -f ./custom-monitoring.yaml
Interpretar resultados do monitoramento
Depois de configurar o monitor do modelo e a primeira execução for concluída, você poderá exibir os resultados no Azure Machine Learning Studio.
No estúdio, em Gerenciar, selecione Monitoramento. Na página Monitoramento, selecione o nome do monitor de modelo para ver a página de visão geral. Esta página mostra o modelo de monitoramento, o ponto de extremidade e a implantação. Ele também fornece informações detalhadas sobre sinais configurados. A imagem a seguir mostra uma página de visão geral do monitoramento que inclui desvio de dados e sinais de qualidade de dados.
Examine a seção Notificações da página de visão geral. Nesta seção, você pode ver o recurso para cada sinal que viola o limite configurado para sua respectiva métrica.
Na seção Sinais , selecione data_drift para ver informações detalhadas sobre o sinal de descompasso de dados. Na página de detalhes, você pode ver o valor da métrica de descompasso de dados para cada recurso numérico e categórico que sua configuração de monitoramento inclui. Se o monitor tiver mais de uma execução, você verá uma linha de tendência para cada recurso.
Na página de detalhes, selecione o nome de um recurso individual. Uma exibição detalhada é aberta que mostra a distribuição de produção em comparação com a distribuição de referência. Você também pode usar esse modo de exibição para acompanhar o descompasso ao longo do tempo do recurso.
Retorne à página de visão geral do monitoramento. Na seção Sinais , selecione data_quality para exibir informações detalhadas sobre esse sinal. Nesta página, você pode ver as taxas de valor nulo, as taxas fora dos limites e as taxas de erro de tipo de dados para cada recurso que você monitora.
O monitoramento de modelo é um processo contínuo. Ao usar o monitoramento de modelos do Azure Machine Learning, você pode configurar vários sinais de monitoramento para obter uma visão ampla do desempenho de seus modelos em produção.
Integrar o monitoramento de modelos do Azure Machine Learning com a Grade de Eventos
Ao usar a Grade de Eventos, você pode configurar eventos gerados pelo monitoramento do modelo do Azure Machine Learning para disparar aplicativos, processos e fluxos de trabalho de CI/CD. Você pode consumir eventos por meio de vários manipuladores de eventos, como Hubs de Eventos do Azure, Azure Functions e Aplicativos Lógicos do Azure. Quando os monitores detectam descompasso, você pode agir programaticamente, como executando um pipeline de machine learning para treinar novamente um modelo e reimplantá-lo.
Para integrar o monitoramento de modelo do Azure Machine Learning à Grade de Eventos, execute as etapas nas seções a seguir.
Criar um tópico do sistema
Se você não tiver um tópico do sistema da Grade de Eventos a ser usado para monitoramento, crie um. Para obter instruções, consulte Criar, exibir e gerenciar tópicos do sistema da Grade de Eventos no portal do Azure.
Criar uma assinatura de evento
No portal do Azure, acesse o workspace do Azure Machine Learning.
Selecione Eventos e, em seguida, selecione Assinatura de evento.
Ao lado de Nome, insira um nome para sua assinatura de evento, como MonitoringEvent.
Em Tipos de Evento, selecione apenas Status de execução modificado.
Aviso
Selecione apenas Status da execução alterado como tipo de evento. Não selecione Descompasso de conjunto de dados detectado, pois isso se aplica ao descompasso de dados v1, e não ao monitoramento de modelos do Azure Machine Learning.
Selecione a guia Filtros . Em Filtros Avançados, selecione Adicionar novo filtro e insira os seguintes valores:
- Em Chave, insira data.RunTags.azureml_modelmonitor_threshold_breached.
- Em Operador, selecione A cadeia de caracteres contém.
- Em Valor, o enter falhou devido a um ou mais recursos que violam os limites de métrica.
Quando você usa esse filtro, os eventos são gerados quando o status de execução de qualquer monitor no workspace do Azure Machine Learning é alterado. O status da execução pode mudar de "Concluído" "Falhou" ou de "Falhou" para "Concluído".
Para filtrar no nível de monitoramento, selecione Adicionar novo filtro novamente e insira os seguintes valores:
- Em Chave, insira data.RunTags.azureml_modelmonitor_threshold_breached.
- Em Operador, selecione A cadeia de caracteres contém.
- Em Valor, insira o nome de um sinal de monitor para o qual você deseja filtrar eventos, como credit_card_fraud_monitor_data_drift. O nome inserido deve corresponder ao nome do sinal de monitoramento. Qualquer sinal usado na filtragem deve ter um nome no formato
<monitor-name>_<signal-description>que inclua o nome do monitor e uma descrição do sinal.
Selecione a guia Noções Básicas. Configure o ponto de extremidade que você usará como manipulador de eventos, como Hubs de Eventos.
Selecione Criar para criar a assinatura de evento.
Exibir eventos
Depois de capturar os eventos, você poderá exibi-los na página do ponto de extremidade do manipulador de eventos:
Você também pode exibir eventos na guia Métricas do Azure Monitor: