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_ è 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 AmazonSageMakeroutput_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 SageMakerEnvironment 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", }