Uso di un algoritmo per eseguire un processo di ottimizzazione iperparametri - Amazon SageMaker

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à.

Uso di un algoritmo per eseguire un processo di ottimizzazione iperparametri

La sezione seguente spiega come utilizzare una risorsa algoritmica per eseguire un processo di ottimizzazione degli iperparametri in Amazon. SageMaker Un processo di ottimizzazione iperparametri trova la versione migliore di un modello eseguendo molti processi di addestramento sul set di dati utilizzando l'algoritmo e gli intervalli di iperparametri specificati. Quindi, sceglie i valori iperparametri presenti in un modello che ha la performance migliore, misurata in base a un parametro scelto. Per ulteriori informazioni, consulta Ottimizzazione automatica del modello con SageMaker.

Puoi creare una risorsa algoritmica per creare un processo di ottimizzazione degli iperparametri utilizzando la SageMaker console Amazon, Amazon di basso livello o SageMaker API Amazon Python. SageMaker SDK

Uso di un algoritmo per eseguire un processo di ottimizzazione iperparametri (console)

Per utilizzare un algoritmo per eseguire un processo di ottimizzazione iperparametri (console)
  1. Apri la console all'indirizzo. SageMaker https://console.aws.amazon.com/sagemaker/

  2. Scegli Algoritmi.

  3. Scegli un algoritmo che è stato creato dall'elenco nella scheda I miei algoritmi o scegli un algoritmo a cui è stato effettuato l'abbonamento nella scheda Abbonamenti Marketplace AWS .

  4. Scegli Crea attività di ottimizzazione iperparametri.

    L'algoritmo scelto verrà automaticamente selezionato.

  5. Nella pagina Crea attività di ottimizzazione iperparametri, inserisci le seguenti informazioni:

    1. Per Avvio a caldo, scegli Abilita l'avvio a caldo per utilizzare le informazioni dei precedenti processi di ottimizzazione iperparametri come punto di partenza per questo processo di ottimizzazione iperparametri. Per ulteriori informazioni, consulta Eseguire un processo di ottimizzazione degli iperparametri con avvio a caldo.

      1. Scegli Dati e algoritmo identici se i dati di input sono uguali ai dati di input per i processi padre di questo processo di ottimizzazione iperparametri oppure scegli Apprendimento del trasferimento per utilizzare dati di input aggiuntivi o diversi per questo processo di ottimizzazione iperparametri.

      2. Per Riepilogo dell'attività di ottimizzazione degli iperparametri, scegli fino a 5 processi di ottimizzazione iperparametri da usare come elementi padre di questo processo di ottimizzazione iperparametri.

    2. Per Nome processo di ottimizzazione iperparametri, digita un nome per il processo di ottimizzazione.

    3. Per IAMil ruolo, scegli un IAM ruolo con le autorizzazioni necessarie per eseguire lavori di ottimizzazione degli iperparametri oppure scegli Crea un nuovo ruolo per consentire la creazione di un ruolo SageMaker a cui è associata la policy AmazonSageMakerFullAccess gestita. SageMaker Per informazioni, consultare Come utilizzare i ruoli di SageMaker esecuzione.

    4. Per VPCesempio, scegli un Amazon a VPC cui desideri consentire l'accesso ai lavori di formazione avviati dal processo di ottimizzazione. Per ulteriori informazioni, consulta Offri ai SageMaker corsi di formazione l'accesso alle risorse nel tuo Amazon VPC.

    5. Scegli Next (Successivo).

    6. Per Parametro obiettivo, scegli il parametro utilizzato dal processo di ottimizzazione iperparametri per determinare la migliore combinazione di iperparametri e scegliere se ridurre o massimizzare questo parametro. Per ulteriori informazioni, consulta Visualizzare il processo di addestramento migliore.

    7. Per Configurazione dell'iperparametro, scegli gli intervalli per gli iperparametri ottimizzabili che desideri cercare nel processo di ottimizzazione e imposta i valori statici per gli iperparametri che desideri mantenere costanti in tutti i processi di addestramento avviati dal processo di ottimizzazione iperparametri. Per ulteriori informazioni, consulta Definire gli intervalli degli iperparametri.

    8. Scegli Next (Successivo).

    9. Per Configurazione dei dati di input, specifica i valori riportati di seguito per ogni canale di dati di input da utilizzare per il processo di ottimizzazione iperparametri. Puoi vedere quali canali sono supportati dall'algoritmo in uso per i processi di ottimizzazione iperparametri e il tipo di contenuto, il tipo di compressione supportato e le modalità di input supportate per ciascun canale, nella sezione Specifica del canale della pagina Riepilogo dell'algoritmo per l'algoritmo in uso.

      1. Per Nome canale digita il nome del canale di input.

      2. Per Tipo di contenuto digita il tipo di contenuto dei dati previsti dall'algoritmo per il canale.

      3. Per Tipo di compressione, scegli il tipo di compressione dei dati da utilizzare, se presente.

      4. Per Wrapper dei record, scegli RecordIO se l'algoritmo prevede dati nel formato RecordIO.

      5. Per Tipo di dati S3, Tipo di distribuzione dei dati S3 e Percorso S3, specifica i valori appropriati. Per informazioni sul significato dei valori, consulta S3DataSource.

      6. Per Modalità di input, scegli File per scaricare i dati dal volume di storage ML assegnato e montare la directory su un volume Docker. Scegli Pipe per eseguire lo streaming dei dati direttamente da Amazon S3 al container.

      7. Per aggiungere un altro canale di input, scegli Aggiungi canale. Una volta terminata l'aggiunta dei canali di input, scegli Fatto.

    10. Per il percorso di output, specifica i seguenti valori:

      1. Per Percorso di output S3, scegli il percorso S3 in cui i processi di addestramento avviati da questo processo di ottimizzazione iperparametri archiviano l'output, come gli artefatti del modello.

        Nota

        Gli artefatti del modello memorizzati in questa posizione vengono utilizzati per creare un modello o un pacchetto di modelli da questo processo di ottimizzazione iperparametri.

      2. Per la chiave di crittografia, se desideri SageMaker utilizzare una AWS KMS chiave per crittografare i dati di output archiviati nella posizione S3.

    11. Per Configurazione delle risorse, specifica le seguenti informazioni:

      1. Per Tipo di istanza, scegli il tipo di istanza da usare per ogni processo di addestramento avviato dal processo di ottimizzazione iperparametri.

      2. Per Conteggio istanze, digita il numero di istanze ML da usare per ogni processo di addestramento avviato dal processo di ottimizzazione iperparametri.

      3. Per Volume aggiuntivo per istanza (GB), digita la dimensione del volume di storage ML che desideri assegnare a ogni processo di addestramento avviato dal processo di ottimizzazione iperparametri. I volumi di storage ML memorizzano gli artefatti di modello e gli stati incrementali.

      4. Per la chiave di crittografia, se desideri che Amazon SageMaker utilizzi una AWS chiave del servizio di gestione delle chiavi per crittografare i dati nel volume di archiviazione ML collegato alle istanze di formazione, specifica la chiave.

    12. Per Limiti delle risorse, specifica le seguenti informazioni:

      1. Per Numero massimo di processi di addestramento, specifica il numero massimo di processi di addestramento da avviare con il processo di ottimizzazione iperparametri. Un processo di ottimizzazione degli iperparametri può avviare al massimo 500 processi di addestramento.

      2. Per Numero massimo di processi di addestramento paralleli, specifica il numero massimo di processi di addestramento simultanei che il processo di ottimizzazione iperparametri può avviare. Un processo di ottimizzazione degli iperparametri può avviare al massimo 10 processi di addestramento simultanei.

      3. Per Condizione di arresto, specifica il periodo di tempo massimo in secondi, minuti, ore o giorni che può durare l'esecuzione dell'avvio del processo di ottimizzazione iperparametri.

    13. Per Tag, specifica uno o più tag per gestire il processo di ottimizzazione iperparametri. Ciascun tag è formato da una chiave e da un valore facoltativo. Le chiavi dei tag devono essere univoche per ogni risorsa.

    14. Scegli Creazione di processi per eseguire il processo di ottimizzazione iperparametri.

Usa un algoritmo per eseguire un job di ottimizzazione degli iperparametri () API

Per utilizzare un algoritmo per eseguire un processo di ottimizzazione degli iperparametri utilizzando il SageMaker API, specifica il nome o l'Amazon Resource Name (ARN) dell'algoritmo come AlgorithmName campo dell'AlgorithmSpecificationoggetto a cui passi. CreateHyperParameterTuningJob Per informazioni sull'ottimizzazione degli iperparametri, consulta. SageMaker Ottimizzazione automatica del modello con SageMaker

Utilizzo di un algoritmo per eseguire un job di ottimizzazione degli iperparametri (Amazon Python SageMaker ) SDK

Usa un algoritmo che hai creato o a cui ti sei abbonato Marketplace AWS per creare un processo di ottimizzazione degli iperparametri, crea un AlgorithmEstimator oggetto e specifica Amazon Resource Name (ARN) o il nome dell'algoritmo come valore dell'argomento. algorithm_arn Quindi, inizializza un oggetto HyperparameterTuner con l'elemento AlgorithmEstimator creato come valore dell'argomento estimator. Infine, chiama il metodo fit di AlgorithmEstimator. Per esempio:

from sagemaker import AlgorithmEstimator from sagemaker.tuner import HyperparameterTuner data_path = os.path.join(DATA_DIR, 'marketplace', 'training') algo = AlgorithmEstimator( algorithm_arn='arn:aws:sagemaker:us-east-2:764419575721:algorithm/scikit-decision-trees-1542410022', role='SageMakerRole', instance_count=1, instance_type='ml.c4.xlarge', sagemaker_session=sagemaker_session, base_job_name='test-marketplace') train_input = algo.sagemaker_session.upload_data( path=data_path, key_prefix='integ-test-data/marketplace/train') algo.set_hyperparameters(max_leaf_nodes=10) tuner = HyperparameterTuner(estimator=algo, base_tuning_job_name='some-name', objective_metric_name='validation:accuracy', hyperparameter_ranges=hyperparameter_ranges, max_jobs=2, max_parallel_jobs=2) tuner.fit({'training': train_input}, include_cls_metadata=False) tuner.wait()