Oggi Amazon Sage Maker ha annunciato il supporto per i fallback delle istanze di formazione SageMaker Ottimizzazione automatica del modello (AMT) di Amazon SageMaker che consentono agli utenti di specificare configurazioni di risorse di calcolo alternative.
L'ottimizzazione automatica del modello SageMaker trova la versione migliore di un modello eseguendo molti processi di addestramento sul set di dati utilizzando il file gamme di iperparametri che specifichi per il tuo algoritmo. Quindi, sceglie i valori dell'iperparametro che si traducono in un modello con le prestazioni migliori, come misurato da a metrico che scegli tu.
In precedenza, gli utenti avevano solo la possibilità di specificare una configurazione a istanza singola. Ciò può causare problemi quando il tipo di istanza specificato non è disponibile a causa dell'utilizzo elevato. In passato, i tuoi lavori di formazione fallivano con un InsufficientCapacityError (ICE). AMT ha utilizzato tentativi intelligenti per evitare questi errori in molti casi, ma è rimasta impotente di fronte alla bassa capacità prolungata.
Questa nuova funzionalità significa che puoi specificare un elenco di configurazioni di istanze nell'ordine di preferenza, in modo tale che il tuo lavoro AMT esegua automaticamente il fallback all'istanza successiva nell'elenco in caso di capacità insufficiente.
Nelle sezioni seguenti, esamineremo questi passaggi di alto livello per il superamento di un GHIACCIO:
- Definire la configurazione del lavoro di ottimizzazione di HyperParameter
- Definire i parametri del lavoro di formazione
- Crea il lavoro di ottimizzazione degli iperparametri
- Descrivi il lavoro di formazione
Definire la configurazione del lavoro di ottimizzazione di HyperParameter
I HyperParameterTuningJobConfig object descrive il processo di ottimizzazione, inclusa la strategia di ricerca, la metrica obiettivo utilizzata per valutare i processi di addestramento, gli intervalli dei parametri da cercare e i limiti delle risorse per il processo di ottimizzazione. Questo aspetto non è stato modificato con il rilascio delle funzionalità di oggi. Tuttavia, lo esamineremo per fare un esempio completo.
I ResourceLimits
oggetto specifica il numero massimo di lavori di addestramento e lavori di addestramento paralleli per questo lavoro di ottimizzazione. In questo esempio, stiamo facendo a ricerca casuale strategia e specificando un massimo di 10 lavori (MaxNumberOfTrainingJobs
) e 5 lavori simultanei (MaxParallelTrainingJobs
) Al tempo.
I ParameterRanges
object specifica gli intervalli di iperparametri che questo processo di ottimizzazione cerca. Specifichiamo il nome, nonché il valore minimo e massimo dell'iperparametro da cercare. In questo esempio, definiamo i valori minimo e massimo per gli intervalli di parametri Continuo e Intero e il nome dell'iperparametro ("eta", "profondità_max").
AmtTuningJobConfig={
"Strategy": "Random",
"ResourceLimits": {
"MaxNumberOfTrainingJobs": 10,
"MaxParallelTrainingJobs": 5
},
"HyperParameterTuningJobObjective": {
"MetricName": "validation:rmse",
"Type": "Minimize"
},
"ParameterRanges": {
"CategoricalParameterRanges": [],
"ContinuousParameterRanges": [
{
"MaxValue": "1",
"MinValue": "0",
"Name": "eta"
}
],
"IntegerParameterRanges": [
{
"MaxValue": "6",
"MinValue": "2",
"Name": "max_depth"
}
]
}
}
Definire i parametri del lavoro di formazione
Nella definizione del lavoro di addestramento, definiamo l'input necessario per eseguire un lavoro di addestramento utilizzando l'algoritmo che specifichiamo. Al termine dell'addestramento, SageMaker salva gli artefatti del modello risultanti in un file Servizio di archiviazione semplice Amazon (Amazon S3) posizione che specifichi.
In precedenza, abbiamo specificato il tipo di istanza, il conteggio e la dimensione del volume in ResourceConfig
parametro. Quando l'istanza in questo parametro non era disponibile, è stato generato un errore di capacità insufficiente (ICE).
Per evitare ciò, ora abbiamo il HyperParameterTuningResourceConfig
parametro sotto il TrainingJobDefinition
, dove specifichiamo un elenco di istanze su cui fare affidamento. Il formato di queste istanze è lo stesso di ResourceConfig
. Il lavoro attraverserà l'elenco dall'alto verso il basso per trovare una configurazione dell'istanza disponibile. Se un'istanza non è disponibile, invece di un errore di capacità insufficiente (ICE), viene scelta l'istanza successiva nell'elenco, superando così l'ICE.
TrainingJobDefinition={
"HyperParameterTuningResourceConfig": {
"InstanceConfigs": [
{
"InstanceType": "ml.m4.xlarge",
"InstanceCount": 1,
"VolumeSizeInGB": 5
},
{
"InstanceType": "ml.m5.4xlarge",
"InstanceCount": 1,
"VolumeSizeInGB": 5
}
]
},
"AlgorithmSpecification": {
"TrainingImage": "433757028032.dkr.ecr.us-west-2.amazonaws.com/xgboost:latest",
"TrainingInputMode": "File"
},
"InputDataConfig": [
{
"ChannelName": "train",
"CompressionType": "None",
"ContentType": "json",
"DataSource": {
"S3DataSource": {
"S3DataDistributionType": "FullyReplicated",
"S3DataType": "S3Prefix",
"S3Uri": "s3://<bucket>/test/"
}
},
"RecordWrapperType": "None"
}
],
"OutputDataConfig": {
"S3OutputPath": "s3://<bucket>/output/"
},
"RoleArn": "arn:aws:iam::340308762637:role/service-role/AmazonSageMaker-ExecutionRole-20201117T142856",
"StoppingCondition": {
"MaxRuntimeInSeconds": 259200
},
"StaticHyperParameters": {
"training_script_loc": "q2bn-sagemaker-test_6"
},
}
Eseguire un processo di ottimizzazione degli iperparametri
In questo passaggio, creiamo ed eseguiamo un processo di ottimizzazione degli iperparametri con la configurazione della risorsa di ottimizzazione degli iperparametri definita sopra.
Inizializziamo un client SageMaker e creiamo il lavoro specificando la configurazione di ottimizzazione, la definizione del lavoro di addestramento e un nome del lavoro.
import boto3
sm = boto3.client('sagemaker')
sm.create_hyper_parameter_tuning_job(
HyperParameterTuningJobName="my-job-name",
HyperParameterTuningJobConfig=AmtTuningJobConfig,
TrainingJobDefinition=TrainingJobDefinition)
Descrivi i lavori di formazione
La seguente funzione elenca tutti i tipi di istanza utilizzati durante l'esperimento e può essere utilizzata per verificare se un'istanza di addestramento SageMaker è passata automaticamente all'istanza successiva nell'elenco durante l'allocazione delle risorse.
Conclusione
In questo post, abbiamo dimostrato come ora puoi definire un pool di istanze su cui il tuo esperimento AMT può ricadere nel caso di InsufficientCapacityError
. Abbiamo visto come definire una configurazione del lavoro di ottimizzazione degli iperparametri, nonché specificare il numero massimo di lavori di addestramento e il numero massimo di lavori paralleli. Infine, abbiamo visto come superare il InsufficientCapacityError
tramite la configurazione di ricerca HyperParameterTuningResourceConfig
parametro, che può essere specificato nella definizione del lavoro di formazione.
Per saperne di più su AMT, visita Ottimizzazione automatica del modello di Amazon SageMaker.
Circa gli autori
Doug Mbaya è un Senior Partner Solution architect con un focus su dati e analisi. Doug lavora a stretto contatto con i partner AWS, aiutandoli a integrare dati e soluzioni di analisi nel cloud.
Kruthi Jayasimha Rao è un Partner Solutions Architect nel team Scale-PSA. Kruthi conduce le convalide tecniche per i Partner consentendo loro di progredire nel Percorso Partner.
Bernard Jollans è un ingegnere di sviluppo software per l'ottimizzazione automatica dei modelli Amazon SageMaker.
- AI
- oh arte
- generatore d'arte
- un robot
- Apprendimento automatico di Amazon
- Amazon Sage Maker
- intelligenza artificiale
- certificazione di intelligenza artificiale
- intelligenza artificiale nel settore bancario
- robot di intelligenza artificiale
- robot di intelligenza artificiale
- software di intelligenza artificiale
- Apprendimento automatico di AWS
- blockchain
- conferenza blockchain ai
- geniale
- intelligenza artificiale conversazionale
- criptoconferenza ai
- dall's
- apprendimento profondo
- google ai
- machine learning
- Platone
- platone ai
- Platone Data Intelligence
- Gioco di Platone
- PlatoneDati
- gioco di plato
- scala ai
- sintassi
- zefiro