Agora Amazon Sage Maker anunciou o suporte de fallbacks de instância de treinamento do SageMaker para Ajuste automático de modelo do Amazon SageMaker (AMT) que permitem que os usuários especifiquem configurações alternativas de recursos de computação.
O ajuste automático de modelos do SageMaker encontra a melhor versão de um modelo executando muitos trabalhos de treinamento em seu conjunto de dados usando o gamas de hiperparâmetros que você especifica para seu algoritmo. Em seguida, ele escolhe os valores de hiperparâmetros que resultam em um modelo que apresenta o melhor desempenho, conforme medido por um métrico que você escolher.
Anteriormente, os usuários só tinham a opção de especificar uma configuração de instância única. Isso pode levar a problemas quando o tipo de instância especificado não está disponível devido à alta utilização. No passado, seus trabalhos de treinamento falhavam com um InsufficientCapacityError (ICE). A AMT usou tentativas inteligentes para evitar essas falhas em muitos casos, mas permaneceu impotente diante da baixa capacidade sustentada.
Esse novo recurso significa que você pode especificar uma lista de configurações de instância na ordem de preferência, de modo que seu trabalho AMT retorne automaticamente para a próxima instância da lista em caso de baixa capacidade.
Nas seções a seguir, percorremos essas etapas de alto nível para superar um ICE:
- Definir configuração do trabalho de ajuste de hiperparâmetros
- Definir os parâmetros do trabalho de treinamento
- Criar o trabalho de ajuste de hiperparâmetro
- Descreva o trabalho de treinamento
Definir configuração do trabalho de ajuste de hiperparâmetros
A HyperParameterTuningJobConfig O objeto descreve o trabalho de ajuste, incluindo a estratégia de pesquisa, a métrica objetiva usada para avaliar os trabalhos de treinamento, os intervalos dos parâmetros a serem pesquisados e os limites de recursos para o trabalho de ajuste. Esse aspecto não foi alterado com o lançamento de recursos de hoje. No entanto, vamos analisá-lo para dar um exemplo completo.
A ResourceLimits
O objeto especifica o número máximo de trabalhos de treinamento e trabalhos de treinamento paralelos para este trabalho de ajuste. Neste exemplo, estamos fazendo um busca aleatória estratégia e especificando um máximo de 10 postos de trabalho (MaxNumberOfTrainingJobs
) e 5 empregos simultâneos (MaxParallelTrainingJobs
) de uma vez.
A ParameterRanges
O objeto especifica os intervalos de hiperparâmetros que esse trabalho de ajuste pesquisa. Especificamos o nome, bem como o valor mínimo e máximo do hiperparâmetro a ser pesquisado. Neste exemplo, definimos os valores mínimo e máximo para os intervalos de parâmetros Contínuo e Inteiro e o nome do hiperparâmetro (“eta”, “max_depth”).
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"
}
]
}
}
Definir os parâmetros do trabalho de treinamento
Na definição do job de treinamento, definimos a entrada necessária para executar um job de treinamento usando o algoritmo que especificamos. Após a conclusão do treinamento, o SageMaker salva os artefatos de modelo resultantes em um Serviço de armazenamento simples da Amazon (Amazon S3) local que você especificar.
Anteriormente, especificamos o tipo de instância, a contagem e o tamanho do volume no ResourceConfig
parâmetro. Quando a instância sob este parâmetro estava indisponível, um erro de capacidade insuficiente (ICE) foi gerado.
Para evitar isso, temos agora o HyperParameterTuningResourceConfig
parâmetro sob o TrainingJobDefinition
, onde especificamos uma lista de instâncias às quais recorrer. O formato dessas instâncias é o mesmo que no ResourceConfig
. O trabalho percorrerá a lista de cima para baixo para encontrar uma configuração de instância disponível. Se uma instância não estiver disponível, em vez de um erro de capacidade insuficiente (ICE), a próxima instância na lista é escolhida, superando assim o 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"
},
}
Executar um trabalho de ajuste de hiperparâmetro
Nesta etapa, estamos criando e executando um trabalho de ajuste de hiperparâmetros com a configuração do recurso de ajuste de hiperparâmetros definida acima.
Inicializamos um cliente SageMaker e criamos o trabalho especificando a configuração de ajuste, a definição do trabalho de treinamento e um nome de trabalho.
import boto3
sm = boto3.client('sagemaker')
sm.create_hyper_parameter_tuning_job(
HyperParameterTuningJobName="my-job-name",
HyperParameterTuningJobConfig=AmtTuningJobConfig,
TrainingJobDefinition=TrainingJobDefinition)
Descrever trabalhos de treinamento
A função a seguir lista todos os tipos de instância usados durante o experimento e pode ser usada para verificar se uma instância de treinamento do SageMaker voltou automaticamente para a próxima instância da lista durante a alocação de recursos.
Conclusão
Nesta postagem, demonstramos como agora você pode definir um conjunto de instâncias nas quais seu experimento AMT pode recorrer no caso de InsufficientCapacityError
. Vimos como definir uma configuração de trabalho de ajuste de hiperparâmetro, bem como especificar o número máximo de trabalhos de treinamento e o máximo de trabalhos paralelos. Por fim, vimos como superar o InsufficientCapacityError
usando o HyperParameterTuningResourceConfig
parâmetro, que pode ser especificado na definição da tarefa de treinamento.
Para saber mais sobre a AMT, visite Ajuste automático de modelo do Amazon SageMaker.
Sobre os autores
Doug Mbaya é um arquiteto de soluções de parceiro sênior com foco em dados e análises. Doug trabalha em estreita colaboração com os parceiros da AWS, ajudando-os a integrar a solução de dados e análises na nuvem.
Kruthi Jayasimha Rao é um Partner Solutions Architect na equipe Scale-PSA. A Kruthi realiza validações técnicas para Parceiros, permitindo que eles progridam no Caminho do Parceiro.
Bernardo Jollans é engenheiro de desenvolvimento de software para o ajuste automático de modelos do Amazon SageMaker.
- AI
- arte ai
- gerador de arte ai
- ai robô
- Aprendizado de máquina da Amazon
- Amazon Sage Maker
- inteligência artificial
- certificação de inteligência artificial
- inteligência artificial em bancos
- robô de inteligência artificial
- robôs de inteligência artificial
- software de inteligência artificial
- Aprendizado de máquina da AWS
- blockchain
- conferência blockchain ai
- Coingenius
- inteligência artificial conversacional
- conferência de criptografia ai
- dall's
- deep learning
- google ai
- aprendizado de máquina
- platão
- platão ai
- Inteligência de Dados Platão
- Jogo de Platão
- PlatãoData
- jogo de platô
- escala ai
- sintaxe
- zefirnet