Criar uma linha de base - SageMaker IA da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criar uma linha de base

Os cálculos da linha de base de estatísticas e restrições são necessários como um padrão em relação ao qual o desvio de dados e outros problemas de qualidade de dados podem ser detectados. O Model Monitor fornece um contêiner interno que oferece a capacidade de sugerir automaticamente as restrições para a entrada JSON simples e CSV. Esse sagemaker-model-monitor-analyzercontêiner também fornece uma variedade de recursos de monitoramento de modelos, incluindo validação de restrições em relação a uma linha de base e emissão de métricas da Amazon CloudWatch . Esse contêiner é baseado na versão 3.3.0 do Spark e foi criado com a versão 2.0.2 do Deequ. Todos os nomes das colunas em seu conjunto de dados de linha de base devem estar em conformidade com o Spark. Para os nomes das colunas, use somente caracteres minúsculos e _ como o único caractere especial.

O conjunto de dados de treinamento usado para treinar o modelo geralmente é um bom conjunto de dados de linha de base. O esquema de dados do conjunto de dados de treinamento e o esquema do conjunto de dados de inferência devem ser uma correspondência exata (o número e a ordem dos atributos). Presume-se que as colunas de predição de saída sejam as primeiras colunas no conjunto de dados de treinamento. No conjunto de dados de treinamento, você pode pedir à SageMaker IA que sugira um conjunto de restrições básicas e gere estatísticas descritivas para explorar os dados. Para esse exemplo, faça upload do conjunto de dados de treinamento usado para treinar o modelo pré-treinado incluído neste exemplo. Se você já armazenou o conjunto de dados de treinamento no Amazon S3, poderá apontar diretamente para ele.

Para criar uma linha de base a partir de um conjunto de dados de treinamento

Quando você tiver seus dados de treinamento prontos e armazenados no Amazon S3, inicie um trabalho de processamento básico usando o SDK DefaultModelMonitor.suggest_baseline(..) do Amazon Python SageMaker . Essa ação usa um Contêiner pré-construído Amazon SageMaker Model Monitor que gera estatísticas de linha de base e sugere restrições de linha de base para o conjunto de dados e as grava no local output_s3_uri especificado.

from sagemaker.model_monitor import DefaultModelMonitor from sagemaker.model_monitor.dataset_format import DatasetFormat my_default_monitor = DefaultModelMonitor( role=role, instance_count=1, instance_type='ml.m5.xlarge', volume_size_in_gb=20, max_runtime_in_seconds=3600, ) my_default_monitor.suggest_baseline( baseline_dataset=baseline_data_uri+'/training-dataset-with-header.csv', dataset_format=DatasetFormat.csv(header=True), output_s3_uri=baseline_results_uri, wait=True )
nota

Se você fornecer os nomes dos recursos/colunas no conjunto de dados de treinamento como a primeira linha e definir a header=True opção conforme mostrado na amostra de código anterior, o SageMaker AI usará o nome do recurso no arquivo de restrições e estatísticas.

As estatísticas de linha de base para o conjunto de dados estão contidas no arquivo statistics.json e as restrições de linha de base sugeridas estão contidas no arquivo constraints.json no local especificado com output_s3_uri.

Arquivos de saída para estatísticas e restrições do conjunto de dados tabular

Nome do arquivo Descrição
statistics.json

Espera-se que este arquivo tenha estatísticas colunares para cada atributo no conjunto de dados que é analisado. Para obter mais informações sobre o esquema desse arquivo, consulte Esquema para estatísticas (arquivo statistics.json).

constraints.json

Espera-se que este arquivo tenha as restrições sobre os atributos observados. Para obter mais informações sobre o esquema desse arquivo, consulte Esquema para restrições (arquivo constraints.json).

O Amazon SageMaker Python SDK fornece funções de conveniência descritas para gerar as estatísticas e restrições básicas. No entanto, se você quiser chamar o trabalho de processamento diretamente para essa finalidade, é necessário definir o mapa Environment como mostrado no seguinte exemplo:

"Environment": { "dataset_format": "{\"csv\”: { \”header\”: true}", "dataset_source": "/opt/ml/processing/sm_input", "output_path": "/opt/ml/processing/sm_output", "publish_cloudwatch_metrics": "Disabled", }