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 questa fase, scegli un algoritmo di addestramento ed esegui un job di addestramento per il modello. L'SDK Amazon SageMaker Python
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 Algoritmo XGBoost con Amazon AI SageMaker integrato di SageMaker intelligenza artificiale viene utilizzato in questo tutorial senza la valutazione preliminare dei modelli.
Suggerimento
Se desideri che l' SageMaker intelligenza artificiale trovi un modello appropriato per il tuo set di dati tabulari, utilizza Amazon SageMaker Autopilot che automatizza una soluzione di apprendimento automatico. Per ulteriori informazioni, consulta SageMaker Pilota automatico.
Creazione ed esecuzione di un processo di addestramento
Dopo aver capito quale modello utilizzare, inizia a creare un lavoro di formazione. Questo tutorial utilizza l'algoritmo integrato XGBoost.
Per eseguire il processo di addestramento di un modello
-
Importa l'SDK Amazon SageMaker Python
e inizia recuperando le informazioni di base dalla tua sessione AI corrente. SageMaker from sagemaker.core.helper.session_helper import Session, get_execution_role sagemaker_session = Session() region = sagemaker_session.boto_region_name print(f"AWS Region: {region}") role = get_execution_role() print(f"RoleArn: {role}")Nota
Controlla la versione dell'SDK SageMaker Python eseguendo.
sagemaker.__version__Questo tutorial è basato susagemaker>=3.0. Se l'SDK non è aggiornato, installa la versione più recente eseguendo il seguente comando:! pip install -qU sagemakerSe esegui questa installazione nelle istanze di SageMaker Studio o notebook in uscita, devi aggiornare manualmente il kernel per completare l'applicazione dell'aggiornamento della versione.
Questa procedura restituisce le seguenti informazioni:
-
region— La AWS regione corrente in cui è in esecuzione l'istanza del notebook SageMaker AI. -
role: il ruolo IAM utilizzato dall'istanza del notebook.
-
-
Crea una configurazione di addestramento e imposta gli iperparametri per l'algoritmo XGBoost.
Create una
ModelTrainerutilizzando lasagemaker.train.ModelTrainerclasse con gli iperparametri passati direttamente nel costruttore. Nel codice di esempio seguente, ModelTrainer viene denominato.xgb_model_trainerfrom sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute, OutputDataConfig from sagemaker.core import image_uris s3_output_location='s3://{}/{}/{}'.format(bucket, prefix, 'xgboost_model') container = image_uris.retrieve("xgboost", region, "1.2-1") print(container) compute = Compute( instance_type='ml.m4.xlarge', instance_count=1, volume_size_in_gb=5 ) xgb_model_trainer = ModelTrainer( training_image=container, role=role, compute=compute, output_data_config=OutputDataConfig(s3_output_path=s3_output_location), hyperparameters={ "max_depth": "5", "eta": "0.2", "gamma": "4", "min_child_weight": "6", "subsample": "0.7", "objective": "binary:logistic", "num_round": "1000" } )Per costruire l' SageMaker IA
ModelTrainer, specifica i seguenti parametri:-
training_image: specifica l'URI dell'immagine del container di addestramento. In questo esempio, l'URI del contenitore di formazione SageMaker AI XGBoost viene specificato utilizzando.image_uris.retrieve -
role— Il ruolo AWS Identity and Access Management (IAM) che l' SageMaker IA utilizza per eseguire attività per tuo conto (ad esempio, leggere i risultati della formazione, richiamare artefatti del modello da Amazon S3 e scrivere i risultati della formazione su Amazon S3). -
compute— Un oggetto diComputeconfigurazione che specifica il tipo e il numero di istanze di calcolo ML di Amazon EC2 da utilizzare per l'addestramento dei modelli. Per questo esercizio di addestramento, utilizza una singola istanzaml.m4.xlargecon 4 CPU, 16 GB di memoria, uno storage Amazon Elastic Block Store (Amazon EBS) e prestazioni di rete elevate. Per ulteriori informazioni sui tipi di istanze di calcolo EC2, consulta Amazon EC2 Instance Types. Per ulteriori informazioni sulla fatturazione, consulta i prezzi di Amazon. SageMaker -
hyperparameters— Un dizionario di iperparametri per l'algoritmo di addestramento. Tutti i valori devono essere stringhe.
Suggerimento
Se desideri eseguire un training distribuito di modelli di deep learning di grandi dimensioni, come le reti neurali convoluzionali (CNN) e i modelli di elaborazione del linguaggio naturale (NLP), utilizza SageMaker AI Distributed per il parallelismo dei dati o il parallelismo dei modelli. Per ulteriori informazioni, consulta Formazione distribuita in Amazon SageMaker AI.
Suggerimento
Puoi anche regolare gli iperparametri utilizzando la funzione di ottimizzazione degli iperparametri AI. SageMaker Per ulteriori informazioni, consulta Ottimizzazione automatica dei modelli con AI SageMaker.
-
-
Configura l'input dei dati per l'allenamento.
Utilizza la classe
InputDataper configurare un flusso di input di dati per l'addestramento. Il seguente codice di esempio mostra come configurare gli oggettiInputDataper 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.train.configs import InputData train_input = InputData( channel_name="train", data_source="s3://{}/{}/{}".format(bucket, prefix, "data/train.csv") ) validation_input = InputData( channel_name="validation", data_source="s3://{}/{}/{}".format(bucket, prefix, "data/validation.csv") ) -
Inizia l'addestramento del modello.
Per iniziare l'addestramento dei modelli, richiama il
trainmetodo del trainer con i set di dati di addestramento e convalida. Per impostazione predefinita, iltrainmetodo visualizza i registri di avanzamento e attende il completamento dell'addestramento.xgb_model_trainer.train(input_data_config=[train_input, validation_input])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, è possibile scaricare un rapporto di formazione XGBoost e un rapporto di profilazione generato da Debugger. SageMaker Il report di addestramento XGBoost offre informazioni dettagliate sull'avanzamento e sui risultati dell'addestramento, ad esempio la funzione di perdita rispetto all'iterazione, l'importanza della funzionalità, la matrice di confusione, le curve di precisione e altri risultati statistici dell'addestramento. Ad esempio, puoi trovare la seguente curva di perdita del report di addestramento XGBoost che indica chiaramente che esiste un problema di overfitting.
Esegui il seguente codice per specificare l'URI del bucket S3 in cui vengono generati i report di addestramento di Debugger e controlla se i report esistono.
training_job = xgb_model_trainer._latest_training_job rule_output_path = training_job.output_data_config.s3_output_path + "/" + training_job.training_job_name + "/rule-output" ! aws s3 ls {rule_output_path} --recursiveScarica i report di addestramento e di profiling XGBoost di Debugger nel workspace corrente:
! aws s3 cp {rule_output_path} ./ --recursiveEsegui il seguente script IPython per ottenere il collegamento al file del report di addestramento XGBoost:
from IPython.display import FileLink, FileLinks display("Click link below to view the XGBoost Training report", FileLink("CreateXgboostReport/xgboost_report.html"))Il seguente script IPython restituisce il collegamento al file del report di profiling di Debugger che mostra riepiloghi e dettagli relativi a utilizzo delle risorse dell'istanza EC2, risultati del rilevamento dei colli di bottiglia del sistema e risultati di profiling delle operazioni Python:
# Note: In V3, debugger rule outputs can be accessed via the SageMaker console # or the boto3 DescribeTrainingJob API (DebugRuleEvaluationStatuses field). # Example using boto3: # import boto3 # sm = boto3.client("sagemaker") # resp = sm.describe_training_job(TrainingJobName=training_job.training_job_name) # rule_statuses = resp["DebugRuleEvaluationStatuses"] profiler_report_name = "ProfilerReport-1234567890" display("Click link below to view the profiler report", FileLink(profiler_report_name+"/profiler-output/profiler-report.html"))Suggerimento
Se i report HTML non visualizzano i grafici nella JupyterLab vista, devi scegliere Trust HTML nella parte superiore dei report.
Per identificare i problemi di formazione, come l'overfitting, la scomparsa dei gradienti e altri problemi che impediscono la convergenza del modello, utilizzate SageMaker Debugger e intraprendete azioni automatiche durante la prototipazione e l'addestramento dei modelli ML. Per ulteriori informazioni, consulta SageMaker Debugger Amazon. Per trovare un'analisi completa dei parametri del modello, consulta il taccuino di esempio Explainability with Amazon Debugger. SageMaker
Ora hai un modello XGBoost addestrato. SageMaker L'intelligenza artificiale memorizza l'artefatto del modello nel bucket S3. Per trovare la posizione dell'artefatto del modello, esegui il codice seguente per stampare l'attributo: model_data
xgb_model_trainer._latest_training_job.model_artifacts.s3_model_artifacts
Suggerimento
Per misurare le distorsioni che possono verificarsi durante ogni fase del ciclo di vita del machine learning (raccolta dati, addestramento e ottimizzazione dei modelli e monitoraggio dei modelli ML utilizzati per la previsione), usa Clarify. SageMaker Per ulteriori informazioni, consulta Spiegabilità del modello. Per un esempio completo, consulta il taccuino di esempio Fairness and Explainability with Clarify. SageMaker