Monitora e imposta i criteri di completamento del tuo processo di ottimizzazione - 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à.

Monitora e imposta i criteri di completamento del tuo processo di ottimizzazione

Puoi utilizzare i criteri di completamento per indicare ad Automatic model tuning (AMT) di interrompere il processo di ottimizzazione se vengono soddisfatte determinate condizioni. Con queste condizioni, puoi impostare le prestazioni minime del modello o il numero massimo di processi di addestramento che non migliorano se valutati rispetto al parametro obiettivo. Puoi anche monitorare lo stato di avanzamento del processo di ottimizzazione e decidere di lasciarlo continuare o di interromperlo manualmente. Questa guida mostra come impostare i criteri di completamento, controllare lo stato di avanzamento e interrompere manualmente il processo di ottimizzazione.

Imposta i criteri di completamento per il tuo processo di ottimizzazione

Durante l'ottimizzazione degli iperparametri, un processo di ottimizzazione avvierà diversi processi di addestramento all'interno di un ciclo. Il processo di ottimizzazione eseguirà le seguenti operazioni.

  • Verifica che i tuoi processi di addestramento siano completati e aggiorna le statistiche di conseguenza

  • Decide quale combinazione di iperparametri valutare successivamente.

AMTcontrollerà continuamente i processi di formazione avviati dal processo di ottimizzazione per aggiornare le statistiche. Queste statistiche includono l'ottimizzazione della durata del processo e il miglior processo di addestramento. Quindi, AMT determina se interrompere il lavoro in base ai criteri di completamento specificati. Puoi anche controllare queste statistiche e interrompere il processo manualmente. Per ulteriori informazioni sull'interruzione manuale di un processo, consulta la sezione Interruzione manuale del processo di ottimizzazione.

Ad esempio, se il processo di ottimizzazione soddisfa l'obiettivo, è possibile interromperlo in anticipo per risparmiare risorse o garantire la qualità del modello. AMTverifica le prestazioni del lavoro in base ai criteri di completamento e interrompe il lavoro di ottimizzazione se alcuni sono stati soddisfatti.

È possibile specificare i seguenti tipi di criteri di completamento:

  • MaxNumberOfTrainingJobs: il numero massimo di processi di addestramento da eseguire prima che l'ottimizzazione venga interrotta.

  • MaxNumberOfTrainingJobsNotImproving: il numero massimo di processi di addestramento che non migliorano le prestazioni rispetto al parametro obiettivo del migliore processo di addestramento attuale. Ad esempio, se il migliore processo di addestramento restituisce un parametro obiettivo con una precisione di 90%, e MaxNumberOfTrainingJobsNotImproving è impostato su 10. In questo esempio, l'ottimizzazione si interromperà dopo che 10 processi di addestramento non riusciranno a restituire con un'accuratezza superiore a 90%.

  • MaxRuntimeInSeconds: il limite massimo del tempo di funzionamento di un orologio da parete, espresso in secondi, che indica la durata di un processo di ottimizzazione.

  • TargetObjectiveMetricValue: il valore del parametro obiettivo rispetto al quale viene valutato il processo di ottimizzazione. Una volta raggiunto questo valore, AMT interrompe il processo di ottimizzazione.

  • CompleteOnConvergence: un indicatore per interrompere l'ottimizzazione dopo che un algoritmo interno indica che è improbabile che il processo di ottimizzazione migliori di oltre l'1% rispetto al parametro obiettivo del miglior processo di addestramento.

Selezione dei criteri di completamento

È possibile scegliere uno o più criteri di completamento per interrompere il processo di ottimizzazione degli iperparametri dopo che una condizione è stata soddisfatta. Le seguenti istruzioni mostrano come selezionare i criteri di completamento e come decidere qual è il più appropriato per il tuo caso d'uso.

  • Utilizzate MaxNumberOfTrainingJobs in ResourceLimitsAPIper impostare un limite massimo per il numero di lavori di formazione che possono essere eseguiti prima che il lavoro di ottimizzazione venga interrotto. Inizia con un numero elevato e modificalo in base alle prestazioni del modello rispetto all'obiettivo del processo di ottimizzazione. Per trovare una configurazione degli iperparametri ottimale la maggior parte degli utenti inserisce valori di circa 50 o più processi di addestramento. Gli utenti che cercano livelli più elevati di prestazioni del modello utilizzeranno 200 o più processi di taining.

  • MaxNumberOfTrainingJobsNotImprovingUtilizzatelo sul BestObjectiveNotImprovingAPIcampo per interrompere l'addestramento se le prestazioni del modello non migliorano dopo un determinato numero di lavori. Le prestazioni del modello vengono valutate rispetto a una funzione obiettiva. Una volta soddisfatto, AMT interromperà il lavoro di ottimizzazione. MaxNumberOfTrainingJobsNotImproving I processi di ottimizzazione tendono a fare i maggiori progressi all'inizio del lavoro. Il miglioramento delle prestazioni del modello rispetto a una funzione obiettiva richiederà un maggior numero di processi di addestramento verso la fine dell’ottimizzazione. Seleziona un valore per MaxNumberOfTrainingJobsNotImproving confrontando le prestazioni di processi di addestramento simili rispetto al tuo parametro obiettivo.

  • MaxRuntimeInSecondsUtilizzatelo ResourceLimitsAPIper impostare un limite massimo per il tempo che l'orologio da parete può impiegare per il lavoro di sintonizzazione. Utilizza questo campo per rispettare una scadenza entro la quale il processo di ottimizzazione deve essere completato o per limitare le risorse di calcolo.

    Per ottenere un tempo di calcolo totale stimato in secondi per un processo di ottimizzazione, utilizza la formula seguente:

    Tempo massimo di elaborazione stimato in secondi= MaxRuntimeInSeconds* MaxParallelTrainingJobs* MaxInstancesPerTrainingJob

    Nota

    La durata effettiva di un processo di ottimizzazione può differire leggermente dal valore specificato in questo campo.

  • Utilizzalo TargetObjectiveMetricValue in TuningJobCompletionCriteriaAPIper interrompere il lavoro di ottimizzazione. Il processo di ottimizzazione viene interrotto dopo che qualsiasi processo di addestramento avviato dal processo di ottimizzazione raggiunge questo valore di parametro obiettivo. Utilizza questo campo se il tuo caso d'uso dipende dal raggiungimento di un livello di prestazioni specifico, anziché spendere risorse di calcolo per trovare il miglior modello possibile.

  • Utilizzare CompleteOnConvergence in TuningJobCompletionCriteriaAPIper interrompere un processo di ottimizzazione dopo aver AMT rilevato che il lavoro di ottimizzazione è convergente ed è improbabile che compia ulteriori progressi significativi. Utilizza questo campo quando non è chiaro quali valori utilizzare per gli altri criteri di completamento. AMTdetermina la convergenza sulla base di un algoritmo sviluppato e testato su un'ampia gamma di benchmark diversi. Si definisce convergente un processo di ottimizzazione quando nessuno dei processi di addestramento produce un miglioramento significativo (1% o meno). Il miglioramento viene misurato rispetto al parametro obiettivo restituito dal processo con le prestazioni più elevate, fino a quel punto.

Combinazione di diversi criteri di completamento

È inoltre possibile, nello stesso processo di ottimizzazione, combinare uno qualsiasi dei diversi criteri di completamento. AMTinterromperà il lavoro di ottimizzazione quando uno dei criteri di completamento sarà soddisfatto. Ad esempio, se desideri ottimizzare il modello fino a raggiungere un parametro obiettivo, ma non vuoi continuare a perfezionarlo se il tuo processo è convergente, usa la seguente guida.

  • Specificate TargetObjectiveMetricValue nel TuningJobCompletionCriteriaAPIcampo per impostare un valore metrico obiettivo da raggiungere.

  • Imposta questa Enabled opzione CompleteOnConvergenceper interrompere un processo di ottimizzazione se AMT è stato determinato che è improbabile che le prestazioni del modello migliorino.

Monitora l'avanzamento del processo di ottimizzazione

È possibile utilizzare il DescribeHyperParameterTuningJob API per tenere traccia dell'avanzamento del lavoro di ottimizzazione in qualsiasi momento mentre è in esecuzione. Non è necessario specificare i criteri di completamento per ottenere informazioni di tracciamento relative al processo di ottimizzazione. Utilizza i seguenti campi per ottenere statistiche sul tuo processo di ottimizzazione.

  • BestTrainingJob— Un oggetto che descrive il miglior lavoro formativo ottenuto finora, valutato sulla base di una metrica oggettiva. Utilizza questo campo per verificare le prestazioni attuali del modello e il valore del parametro obiettivo di questo miglior processo di addestramento.

  • ObjectiveStatusCounters— Un oggetto che specifica il numero totale di lavori di formazione completati in un lavoro di ottimizzazione. Per stimare la durata media di un processo di ottimizzazione, utilizza ObjectiveStatusCounters e la durata totale di un processo di ottimizzazione. È possibile utilizzare la durata media per stimare per quanto tempo durerà il processo di ottimizzazione.

  • ConsumedResources: le risorse totali, ad esempio RunTimeInSeconds, spesi dal processo di ottimizzazione. ConfrontaConsumedResources, trovato nel DescribeHyperParameterTuningJob API, con lo BestTrainingJob stesso. API Puoi anche fare un ConsumedResources confronto con la risposta del team ListTrainingJobsForHyperParameterTuningJobAPIper valutare se il tuo lavoro di tuning sta facendo progressi soddisfacenti considerando le risorse consumate.

  • TuningJobCompletionDetails— Informazioni sul completamento del processo di ottimizzazione che includono quanto segue:

    • Il timestamp di quando viene rilevata la convergenza se il processo è convergente.

    • Il numero di processi di addestramento che non hanno migliorato le prestazioni del modello. Le prestazioni del modello vengono valutate in base al parametro obiettivo del miglior processo di addestramento.

    Utilizza i criteri di completamento del processo di ottimizzazione per valutare la probabilità che il processo di ottimizzazione migliori le prestazioni del modello. Le prestazioni del modello vengono valutate sulla base del migliore parametro obiettivo, se il modello è stato completato.

Interruzione manuale del processo di ottimizzazione

È possibile determinare se lasciare che il processo di ottimizzazione venga eseguito fino al suo completamento o se interrompere il processo di ottimizzazione manualmente. Per determinare ciò, utilizzate le informazioni restituite dai parametri di DescribeHyperParameterTuningJobAPI, come mostrato nella precedente sezione Tracciamento dell'avanzamento del lavoro di ottimizzazione. Ad esempio, se le prestazioni del modello non migliorano dopo il completamento di diversi processi di addestramento, è possibile scegliere di interrompere il processo di ottimizzazione. Le prestazioni del modello vengono valutate sulla base del miglior parametro obiettivo.

Per interrompere il lavoro di ottimizzazione manualmente, utilizzate StopHyperParameterTuningJobAPIe fornite il nome del lavoro di ottimizzazione da interrompere.