Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Eseguire il training di un modello
In questo passaggio, scegli un algoritmo di addestramento ed esegui un processo di addestramento per il modello. Amazon SageMaker Python SDK
Argomenti
Scegliere l'algoritmo di addestramento
Per scegliere l'algoritmo giusto per il tuo set di dati, in genere devi valutare diversi modelli per trovare i modelli più adatti ai tuoi dati. Per semplicità, l'algoritmo SageMaker XGBoostalgoritmo con Amazon SageMaker integrato viene utilizzato in tutto questo tutorial senza la valutazione preliminare dei modelli.
Suggerimento
Se desideri SageMaker trovare un modello appropriato per il tuo set di dati tabulari, usa Amazon SageMaker Autopilot che automatizza una soluzione di machine learning. Per ulteriori informazioni, consulta SageMaker Pilota automatico.
Creazione ed esecuzione di un processo di addestramento
Dopo aver capito quale modello usare, inizia a costruire uno stimatore per l'addestramento. SageMaker Questo tutorial utilizza l'algoritmo XGBoost integrato per lo stimatore generico. SageMaker
Per eseguire il processo di addestramento di un modello
-
Importa Amazon SageMaker Python SDK
e inizia recuperando le informazioni di base dalla sessione corrente. SageMaker import sagemaker region = sagemaker.Session().boto_region_name print("AWS Region: {}".format(region)) role = sagemaker.get_execution_role() print("RoleArn: {}".format(role))
Questa procedura restituisce le seguenti informazioni:
-
region
— La AWS regione corrente in cui è in esecuzione l'istanza del SageMaker notebook. -
role
— Il IAM ruolo utilizzato dall'istanza del notebook.
Nota
Controlla la SDK versione di SageMaker Python eseguendo.
sagemaker.__version__
Questo tutorial è basato susagemaker>=2.20
. Se non SDK è aggiornato, installa l'ultima versione eseguendo il seguente comando:! pip install -qU sagemaker
Se esegui questa installazione nelle istanze di SageMaker Studio o notebook esistenti, devi aggiornare manualmente il kernel per completare l'applicazione dell'aggiornamento della versione.
-
-
Crea uno XGBoost stimatore usando la classe.
sagemaker.estimator.Estimator
Nel codice di esempio seguente, lo XGBoost stimatore è denominato.xgb_model
from sagemaker.debugger import Rule, ProfilerRule, rule_configs from sagemaker.session import TrainingInput s3_output_location='s3://{}/{}/{}'.format(bucket, prefix, 'xgboost_model') container=sagemaker.image_uris.retrieve("xgboost", region, "1.2-1") print(container) xgb_model=sagemaker.estimator.Estimator( image_uri=container, role=role, instance_count=1, instance_type='ml.m4.xlarge', volume_size=5, output_path=s3_output_location, sagemaker_session=sagemaker.Session(), rules=[ Rule.sagemaker(rule_configs.create_xgboost_report()), ProfilerRule.sagemaker(rule_configs.ProfilerReport()) ] )
Per costruire lo SageMaker stimatore, specificate i seguenti parametri:
-
image_uri
— Specificare l'immagine del contenitore di formazione. URI In questo esempio, il contenitore SageMaker XGBoost di formazione URI viene specificato utilizzandosagemaker.image_uris.retrieve
. -
role
— Il ruolo AWS Identity and Access Management (IAM) SageMaker utilizzato per eseguire attività per tuo conto (ad esempio, leggere i risultati della formazione, chiamare gli artefatti del modello di chiamata da Amazon S3 e scrivere i risultati della formazione su Amazon S3). -
instance_count
einstance_type
: il tipo e il numero di istanze di calcolo Amazon EC2 ML da utilizzare per la formazione dei modelli. Per questo esercizio di formazione, utilizzi una singolaml.m4.xlarge
istanza con CPUs 4,16 GB di memoria, uno storage Amazon Elastic Block Store (AmazonEBS) e prestazioni di rete elevate. Per ulteriori informazioni sui tipi di istanze di EC2 calcolo, consulta Amazon EC2 Instance Types. Per ulteriori informazioni sulla fatturazione, consulta i SageMaker prezzi di Amazon . -
volume_size
— La dimensione, in GB, del volume di EBS archiviazione da collegare all'istanza di formazione. Deve avere spazio sufficiente per archiviare i dati di addestramento se utilizzi la modalitàFile
(la modalitàFile
è attivata per impostazione predefinita). Se non specifichi questo parametro, il suo valore predefinito è 30. -
output_path
— Il percorso verso il bucket S3 in cui vengono SageMaker archiviati gli artefatti del modello e i risultati dell'allenamento. -
sagemaker_session
— L'oggetto della sessione che gestisce le interazioni con le SageMaker API operazioni e gli altri AWS servizi utilizzati dal processo di formazione. -
rules
— Specificare un elenco di regole integrate nel SageMaker Debugger. In questo esempio, lacreate_xgboost_report()
regola crea un XGBoost report che fornisce informazioni dettagliate sull'avanzamento e sui risultati della formazione e laProfilerReport()
regola crea un rapporto sull'utilizzo delle risorse di EC2 calcolo. Per ulteriori informazioni, consulta SageMaker Report interattivo del debugger per XGBoost.
Suggerimento
Se desideri eseguire l'addestramento distribuito di modelli di deep learning di grandi dimensioni, come reti neurali convoluzionali (CNN) e modelli di elaborazione del linguaggio naturale (), usa SageMaker Distributed per il parallelismo NLP dei dati o il parallelismo dei modelli. Per ulteriori informazioni, consulta Formazione distribuita in Amazon SageMaker.
-
-
Imposta gli iperparametri per l'XGBoostalgoritmo chiamando il metodo dello stimatore.
set_hyperparameters
Per un elenco completo degli XGBoost iperparametri, vedere. XGBoostiperparametrixgb_model.set_hyperparameters( max_depth = 5, eta = 0.2, gamma = 4, min_child_weight = 6, subsample = 0.7, objective = "binary:logistic", num_round = 1000 )
Suggerimento
È inoltre possibile regolare gli iperparametri utilizzando la funzione di ottimizzazione degli SageMaker iperparametri. Per ulteriori informazioni, consulta Ottimizzazione automatica del modello con SageMaker.
-
Utilizza la classe
TrainingInput
per configurare un flusso di input di dati per l'addestramento. Il seguente codice di esempio mostra come configurare gli oggettiTrainingInput
per utilizzare i set di dati di addestramento e di convalida che hai caricato su Amazon S3 nella sezione Suddivisione del set di dati in set di dati di addestramento, di convalida e di test.from sagemaker.session import TrainingInput train_input = TrainingInput( "s3://{}/{}/{}".format(bucket, prefix, "data/train.csv"), content_type="csv" ) validation_input = TrainingInput( "s3://{}/{}/{}".format(bucket, prefix, "data/validation.csv"), content_type="csv" )
-
Per iniziare l'addestramento del modello, chiama il metodo
fit
dello strumento di valutazione con i set di dati di addestramento e di convalida. Impostandowait=True
, il metodofit
visualizza i log di avanzamento e attende il completamento dell'addestramento.xgb_model.fit({"train": train_input, "validation": validation_input}, wait=True)
Per ulteriori informazioni sull’addestramento del modello, consulta Addestra un modello con Amazon SageMaker. Questo processo di addestramento del tutorial potrebbe richiedere fino a 10 minuti.
Al termine del processo di formazione, puoi scaricare un rapporto di XGBoost formazione e un rapporto di profilazione generati da Debugger. SageMaker Il rapporto sull'XGBoostallenamento offre informazioni dettagliate sui progressi e sui risultati dell'allenamento, ad esempio la funzione di perdita rispetto all'iterazione, l'importanza delle funzionalità, la matrice di confusione, le curve di precisione e altri risultati statistici dell'allenamento. Ad esempio, è possibile trovare la seguente curva di perdita nel rapporto sull'XGBoostallenamento, che indica chiaramente l'esistenza di un problema di sovradattamento.
Esegui il codice seguente per specificare il bucket S3 URI in cui vengono generati i report di formazione del Debugger e controlla se i report esistono.
rule_output_path = xgb_model.output_path + "/" + xgb_model.latest_training_job.job_name + "/rule-output" ! aws s3 ls {rule_output_path} --recursive
Scarica i report di XGBoost formazione e profilazione del Debugger nell'area di lavoro corrente:
! aws s3 cp {rule_output_path} ./ --recursive
Eseguite lo IPython script seguente per ottenere il collegamento al file del rapporto di formazione: XGBoost
from IPython.display import FileLink, FileLinks display("Click link below to view the XGBoost Training report", FileLink("CreateXgboostReport/xgboost_report.html"))
IPythonLo script seguente restituisce il collegamento al file del rapporto di profilazione del Debugger che mostra riepiloghi e dettagli sull'utilizzo delle risorse dell'EC2istanza, sui risultati del rilevamento dei colli di bottiglia del sistema e sui risultati della profilazione delle operazioni in Python:
profiler_report_name = [rule["RuleConfigurationName"] for rule in xgb_model.latest_training_job.rule_job_summary() if "Profiler" in rule["RuleConfigurationName"]][0] profiler_report_name display("Click link below to view the profiler report", FileLink(profiler_report_name+"/profiler-output/profiler-report.html"))
Suggerimento
Se i HTML report non visualizzano grafici nella JupyterLab vista, è necessario scegliere Trust nella parte superiore dei report. HTML
Per identificare problemi di formazione, come l'overfit, la scomparsa dei gradienti e altri problemi che impediscono la convergenza del modello, usa SageMaker Debugger e intraprendi azioni automatiche durante la prototipazione e l'addestramento dei modelli ML. Per ulteriori informazioni, consulta Amazon SageMaker Debugger. Per trovare un'analisi completa dei parametri del modello, consulta il notebook di esempio Explainability with Amazon SageMaker Debugger
.
Ora disponi di un modello addestrato. XGBoost SageMaker memorizza l'artefatto del modello nel tuo bucket S3. Per trovare la posizione dell'artefatto del modello, esegui il seguente codice per stampare l'attributo model_data dello strumento di valutazione xgb_model
:
xgb_model.model_data
Suggerimento
Per misurare le distorsioni che possono verificarsi durante ogni fase del ciclo di vita del machine learning (raccolta dei dati, addestramento e ottimizzazione dei modelli e monitoraggio dei modelli ML implementati per la previsione), usa Clarify. SageMaker Per ulteriori informazioni, consulta Spiegabilità del modello. Per un end-to-end esempio, consultate il taccuino di esempio Fairness