Creazione di una linea di base - Amazon SageMaker AI

Creazione di una linea di base

I calcoli della linea di base su statistiche e vincoli sono necessari come standard rispetto al quale è possibile rilevare deviazioni dei dati e altri problemi di qualità dei dati. Il monitoraggio del modello fornisce un container integrato che consente di suggerire automaticamente i vincoli per input CSV e JSON appiattiti. Questo container sagemaker-model-monitor-analyzer fornisce inoltre una gamma di funzionalità di monitoraggio del modello, tra cui la convalida dei vincoli rispetto a una linea di base e l'emissione di parametri Amazon CloudWatch. Questo container è basato sulla versione 3.3.0 di Spark ed è costruito con la versione 2.0.2 di Deequ. Tutte le colonne nel set di dati della linea di base devono essere conformi a Spark. Per i nomi delle colonne, usa solo caratteri minuscoli e _ è l’unico carattere speciale.

Il set di dati di addestramento utilizzato per l’addestramento del modello è in genere un set di dati adatto per definire la linea di base. Lo schema dei dati del set di dati di addestramento e lo schema del set di dati di inferenza devono corrispondere esattamente (devono presentare lo stesso numero e lo stesso ordine delle caratteristiche). Si presuppone che le colonne di previsione/output siano le prime colonne del set di dati di addestramento. Dal set di dati di addestramento, puoi chiedere a SageMaker AI di suggerire una serie di vincoli della baseline e generare statistiche descrittive per esplorare i dati. Per questo esempio, carica il set di dati di addestramento utilizzato per eseguire l’addestramento del modello già sottoposto a tale e qui incluso. Se hai già archiviato il set di dati di addestramento in Amazon S3, puoi indicarlo direttamente.

Per creare una linea di base da un set di dati di addestramento

Quando i dati di addestramento sono pronti e archiviati in Amazon S3, avvia un processo di elaborazione della linea di base con DefaultModelMonitor.suggest_baseline(..) utilizzando l'SDK Python di AmazonSageMaker. Viene utilizzato un Container predefinito Amazon SageMaker Model Monitor che genera statistiche della linea di base e suggerisce vincoli della stessa per il set di dati e li scrive nel percorso output_s3_uri specificato.

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 fornisci i nomi di funzionalità/colonna nel set di dati di addestramento come prima riga e imposti l’opzione header=True come nell’esempio di codice precedente, SageMaker AI utilizza il nome della funzionalità nel file dei vincoli e delle statistiche.

Le statistiche della linea di base per il set di dati sono contenute nel file statistics.json e i vincoli della linea di base suggeriti sono contenuti nel file constraints.json nel percorso specificato con output_s3_uri.

File di output per vincoli e statistiche di set di dati tabulari

Nome del file Descrizione
statistics.json

Si prevede che questo file abbia statistiche a colonne per ogni funzionalità del set di dati che viene analizzato. Per ulteriori informazioni sullo schema di questo file, consulta Schema per le statistiche (file statistics.json).

constraints.json

Si prevede che questo file abbia vincoli sulle funzionalità osservate. Per ulteriori informazioni sullo schema di questo file, consulta Schema per vincoli (file constraints.json).

L'SDK Python di Amazon SageMaker offre le funzioni pratiche descritte per generare le statistiche e i vincoli della linea di base. Tuttavia, per chiamare l'attività di elaborazione direttamente per questo scopo, è necessario impostare la mappa Environment come illustrato nell'esempio seguente:

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