Práticas recomendadas para pools mornos gerenciados de treinamento do Amazon SageMaker

Os Warm Pools gerenciados de treinamento do Amazon SageMaker oferecem a flexibilidade de optar por reutilizar e manter a infraestrutura subjacente por um período de tempo definido pelo usuário. Isso é feito enquanto mantém o benefício de passar o trabalho pesado indiferenciado de gerenciar instâncias de computação para Treinamento do modelo Amazon SageMaker. Nesta postagem, descrevemos os principais benefícios e pontos problemáticos abordados pelos Warm Pools gerenciados de treinamento do SageMaker, bem como benchmarks e práticas recomendadas.

Visão geral dos pools mornos gerenciados de treinamento do SageMaker

O SageMaker Model Training é um recurso totalmente gerenciado que ativa instâncias para cada trabalho, treina um modelo, executa e, em seguida, desativa instâncias após o trabalho. Você é cobrado apenas pela duração do trabalho até o segundo. Esse recurso totalmente gerenciado oferece a liberdade de se concentrar em seu algoritmo de aprendizado de máquina (ML) e não se preocupar com trabalho pesado indiferenciado, como gerenciamento de infraestrutura, enquanto treina seus modelos.

Esse mecanismo requer um tempo de inicialização finito para um trabalho de treinamento. Embora esse tempo de inicialização, também conhecido como tempo de inicialização a frio, é bastante baixo, alguns dos casos de uso de clientes mais exigentes exigem tempos de inicialização ainda menores, como menos de 20 segundos. Existem dois casos de uso proeminentes que têm estes requisitos:

  • A primeira é a experimentação ativa de ML por cientistas de dados usando o Amazon Sage Maker plataforma de treinamento, especialmente durante o treinamento de modelos grandes, como GPT3, que exigem várias iterações para chegar a um estado pronto para produção.
  • A segunda é o lançamento programático de um grande número (na ordem de várias centenas ou milhares) de trabalhos consecutivos no mesmo tipo de instâncias em uma cadência programada. Por exemplo, pesquisa de parâmetros ou treinamento incremental.

Para esses casos de uso, cada segundo gasto em sobrecarga, como o tempo de inicialização de um trabalho de treinamento, tem um efeito cumulativo em todos esses trabalhos.

Com os Warm Pools gerenciados de treinamento do SageMaker, cientistas de dados e engenheiros de ML podem optar por manter instâncias de treinamento do SageMaker ou clusters de várias instâncias aquecidos por um tempo pré-especificado e reconfigurável (keep_alive_period_in_seconds) após a conclusão de cada trabalho de treinamento. Portanto, mesmo que você incorra em uma penalidade de inicialização a frio para o primeiro trabalho de treinamento executado em uma instância ou cluster, para todos os trabalhos de treinamento subsequentes, as instâncias já estão funcionando. Como resultado, esses trabalhos de treinamento subsequentes que começam em uma instância antes da keep_alive_period_in_seconds expires não incorrem na sobrecarga de tempo de inicialização de inicialização a frio. Isso pode reduzir os tempos de inicialização do trabalho de treinamento para aproximadamente menos de 20 segundos (P90).

Cientistas de dados e engenheiros de ML podem usar pools mornos gerenciados de treinamento do SageMaker para manter uma ou várias instâncias aquecidas entre as execuções de treinamento para experimentação ou executar vários trabalhos consecutivamente no mesmo cluster de uma ou várias instâncias. Você paga apenas pela duração dos trabalhos de treinamento e pelo reconfigurável keep_alive_period_in_seconds como em qualquer outro lugar que você especificar para cada instância.

Em essência, com os Warm Pools gerenciados de treinamento do SageMaker, você obtém uma combinação de utilização de instância gerenciada do SageMaker com a capacidade de aceitar e provisionar capacidade e autogerenciar a utilização por curtos intervalos de tempo. Esses intervalos são configuráveis ​​antes de um trabalho, mas se durante o keep_alive_period_in_seconds intervalo, você precisa reduzi-lo ou aumentá-lo, você pode fazê-lo. aumenta para keep_alive_period_in_seconds pode ser feito em intervalos de até 60 minutos, sendo o período máximo para uma instância ou cluster de 7 dias.

Para começar com piscinas quentes, primeiro solicitar um aumento de limite de cota de pool mornoe especifique o keep_alive_period_in_seconds parâmetro ao iniciar um trabalho de treinamento.

Benchmarks

Realizamos testes de benchmarking para medir a latência de inicialização do trabalho usando uma imagem TensorFlow de 1.34 GB, 2 GB de dados e diferentes modos de entrada de dados de treinamento (Amazon FSx, Fast File Mode, File Mode). Os testes foram executados em vários tipos de instância das famílias m4, c4, m5 e c5 na região us-east-2. A latência de inicialização foi medida como o tempo da criação do trabalho até o início do trabalho de treinamento real nas instâncias. Os primeiros trabalhos que iniciaram o cluster e criaram o pool morno tiveram uma latência de inicialização de 2 a 3 minutos. Essa latência maior se deve ao tempo gasto para provisionar a infraestrutura, baixar a imagem e baixar os dados. Os trabalhos subsequentes que utilizaram o cluster de pool quente tiveram uma latência de inicialização de aproximadamente 20 segundos para Fast File Mode (FFM) ou Amazon FSx e 70 segundos para File Mode (FM). Esse delta é resultado de FM exigir que todo o conjunto de dados seja baixado do Amazon S3 antes do início do trabalho.

Sua escolha do modo de entrada de dados de treinamento afeta o tempo de inicialização, mesmo com Warm Pools. A orientação sobre qual modo de entrada selecionar está na seção de práticas recomendadas posteriormente nesta postagem.

A tabela a seguir resume a latência de inicialização do trabalho P90 para diferentes modos de entrada de dados de treinamento.

Modo de entrada de dados Latência de inicialização P90 (segundos)
Primeiro emprego Warm Pool Jobs (do segundo trabalho em diante)
FSx 136 19
Modo de Arquivo Rápido 143 21
Modo de Arquivo 176 70

Práticas recomendadas para o uso de piscinas quentes

Na seção a seguir, compartilhamos algumas práticas recomendadas ao usar piscinas quentes.

Quando você deve usar piscinas quentes?

Piscinas quentes são recomendadas nos seguintes cenários:

  • Você está experimentando e ajustando seu script interativamente em uma série de tarefas curtas.
  • Você está executando sua própria otimização de hiperparâmetros de grande escala personalizada (por exemplo, Sintonia Syne).
  • Você tem um processo em lote que executa um grande número (na ordem de várias centenas ou milhares) de trabalhos consecutivos no mesmo tipo de instâncias em uma cadência diária ou semanal. Por exemplo, treinar um modelo de ML por cidade.

Os pools quentes não são recomendados quando é improvável que alguém reutilize o pool quente antes que ele expire. Por exemplo, um único trabalho demorado executado por meio de um pipeline de ML automatizado.

Minimize a latência de inicialização do trabalho de treinamento de pool quente

Os trabalhos de treinamento que reutilizam um pool morno iniciam mais rápido do que o primeiro trabalho que criou o pool morno. Isso se deve ao fato de manter as instâncias de ML em execução entre os trabalhos com uma imagem do Docker de contêiner de treinamento em cache para ignorar a extração do contêiner Registro do Amazon Elastic Container (Amazon ECR). No entanto, mesmo ao reutilizar um pool morno, algumas etapas de inicialização ocorrem para todos os trabalhos. A otimização dessas etapas pode reduzir o tempo de inicialização do trabalho (tanto o primeiro quanto os subseqüentes). Considere o seguinte:

  • O modo de entrada de dados de treinamento pode afetar o tempo de inicialização – Os canais de entrada de dados de treinamento gerenciados são recriados para cada trabalho de treinamento, contribuindo para a latência de inicialização do trabalho. Portanto, fazer experimentos iniciais em um conjunto de dados menor permitirá um tempo de inicialização mais rápido (e um tempo de treinamento mais rápido). Para estágios posteriores de experimentação, quando um grande conjunto de dados for necessário, considere o uso de um tipo de modo de entrada que tenha um tempo de inicialização mínimo ou fixo. Por exemplo, o modo de entrada FILE copia todo o conjunto de dados de Serviço de armazenamento simples da Amazon (Amazon S3) para a instância de treinamento, que é demorada para grandes conjuntos de dados (mesmo com pools quentes). O Fast File Mode é mais adequado para latência de inicialização mais baixa porque apenas os metadados do objeto S3 precisam ser lidos do Amazon S3 antes que a carga de trabalho possa ser iniciada. o Amazon FSx para Lustreou Sistema de arquivos elástico da Amazon (Amazon EFS) modo de entrada do sistema de arquivos, tem um tempo de inicialização fixo, independentemente do número de arquivos no sistema de arquivos, o que é benéfico ao trabalhar com um grande conjunto de dados.
    Para obter mais informações sobre como escolher um canal de entrada, consulte Escolha a melhor fonte de dados para seu trabalho de treinamento do Amazon SageMaker.
  • Reduzir a instalação de pacotes em tempo de execução – Qualquer instalação de software que ocorra durante a inicialização do contêiner, por exemplo, pip do Python ou sistema operacional apt-get, aumentará a latência do trabalho de treinamento. Minimizar essa latência de inicialização requer uma compensação entre a flexibilidade e a simplicidade das instalações de tempo de execução versus a instalação no tempo de construção do contêiner. Se você usar seu próprio contêiner do Docker com o SageMaker, consulte Adaptando seu próprio contêiner do Docker para funcionar com o SageMaker. Se você confiar em imagens de contêiner SageMaker pré-criadasvocê precisará estender um contêiner pré-criado e gerenciar explicitamente esses contêineres. Considere isso se suas instalações de tempo de execução aumentarem significativamente a latência de inicialização.
  • Evite atualizar sua imagem do Docker com frequência – Se você usar seu próprio contêiner do Docker com o SageMaker, tente evitar atualizá-lo a cada execução de trabalho. Se a imagem do Docker for alterada entre os envios de trabalho, o pool quente será reutilizado, mas o processo de inicialização precisará extrair novamente a imagem do contêiner do Amazon ECR em vez de reutilizar uma imagem de contêiner armazenada em cache. Se a imagem do Docker precisar ser atualizada, limite as atualizações à última camada do Docker para aproveitar o cache da camada do Docker. Idealmente, você deve remover o conteúdo do Dockerfile que provavelmente mudará nas iterações, como hiperparâmetros, definições de conjunto de dados e o próprio código ML. Para iterar no código ML sem precisar recriar imagens do Docker a cada alteração, você pode adotar o paradigma de contêiner de estrutura defendido no SageMaker Training Toolkit. Se você gostaria de desenvolver um contêiner de estrutura com seu próprio código, consulte este Tutorial do Amazon SageMaker.

Compartilhe pools quentes entre vários usuários

Ao trabalhar com uma grande equipe de cientistas de dados, você pode compartilhar pools quentes que tenham critérios de trabalho correspondentes, como o mesmo Gerenciamento de acesso e identidade da AWS (IAM) ou imagem de contêiner.

Vejamos um exemplo de linha do tempo. O usuário-1 inicia um trabalho de treinamento que é concluído e resulta na criação de um novo pool quente. Quando o usuário-2 iniciar um trabalho de treinamento, o trabalho reutilizará o pool quente existente, resultando em uma inicialização rápida do trabalho. Enquanto o trabalho do usuário 2 estiver em execução com o pool morno em uso, se outro usuário iniciar um trabalho de treinamento, um segundo pool morno será criado.

Esse comportamento de reutilização ajuda a reduzir custos compartilhando pools quentes entre usuários que iniciam trabalhos semelhantes. Se você deseja evitar o compartilhamento de pools mornos entre os usuários, os trabalhos dos usuários não devem ter critérios de trabalho correspondentes (por exemplo, eles devem usar uma função IAM diferente).

Notificar os usuários sobre a conclusão do trabalho

Ao usar pools quentes para experimentação, recomendamos notificar os usuários quando o trabalho for concluído. Isso permite que os usuários retomem a experimentação antes que o pool morno expire ou Pare a piscina aquecida se não for mais necessária. Você também pode acionar notificações automaticamente NFT`s Amazon Event Bridge.

Outras ferramentas para experimentação rápida e trabalhos de treinamento de solução de problemas

Com piscinas quentes, você pode iniciar um trabalho em menos de 20 segundos. Alguns cenários exigem experimentação interativa prática em tempo real e solução de problemas. O código aberto Biblioteca auxiliar SageMaker SSH permite que você faça shell em um contêiner de treinamento do SageMaker e conduza desenvolvimento e depuração remotos.

Conclusão

Com os pools mornos gerenciados de treinamento do SageMaker, você pode manter as instâncias de hardware de treinamento de modelo aquecidas após cada trabalho por um período especificado. Isso pode reduzir a latência de inicialização para um trabalho de treinamento de modelo em até 8 vezes. Os Warm Pools gerenciados do SageMaker Training estão disponíveis em todas as regiões públicas da AWS onde o SageMaker Model Training está disponível.

Para começar, consulte Treine usando pools mornos gerenciados pelo SageMaker.


Sobre os autores

Romi DattaDra. Romi Datta  é gerente sênior de gerenciamento de produtos na equipe do Amazon SageMaker responsável pelo treinamento, processamento e armazenamento de recursos. Ele está na AWS há mais de 4 anos, ocupando vários cargos de liderança em gerenciamento de produtos no SageMaker, S3 e IoT. Antes da AWS, ele trabalhou em várias funções de gerenciamento de produtos, engenharia e liderança operacional na IBM, Texas Instruments e Nvidia. Ele tem um MS e Ph.D. em Engenharia Elétrica e de Computação pela Universidade do Texas em Austin e MBA pela Booth School of Business da Universidade de Chicago.

Melhores práticas para Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Arun Nagarajan é engenheiro principal da equipe Amazon SageMaker com foco nas áreas de treinamento e MLOps. Ele está com a equipe do SageMaker desde o ano de lançamento e gostou de contribuir para diferentes áreas do SageMaker, incluindo a inferência em tempo real e os produtos Model Monitor. Ele gosta de explorar o ar livre na área do noroeste do Pacífico e escalar montanhas.

Melhores práticas para Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Amy você é gerente de desenvolvimento de software da AWS SageMaker. Ela se concentra em reunir uma equipe de engenheiros de software para criar, manter e desenvolver novos recursos da plataforma de treinamento SageMaker que ajuda os clientes a treinar seus modelos de ML com mais eficiência e facilidade. Ela é apaixonada por tecnologia de ML e IA, especialmente relacionada à imagem e visão de seus estudos de pós-graduação. Em seu tempo livre, ela adora trabalhar com música e arte com sua família.

Melhores práticas para Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai. Sifei Li é engenheira de software na Amazon AI, onde trabalha na criação de plataformas de aprendizado de máquina da Amazon e fez parte da equipe de lançamento do Amazon SageMaker. Nas horas vagas gosta de ouvir música e ler.

Melhores práticas para Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Jenna Zhao é um engenheiro de desenvolvimento de software na AWS SageMaker. Ela é apaixonada pela tecnologia ML/AI e tem se concentrado na construção da plataforma de treinamento SageMaker, que permite aos clientes treinar modelos de aprendizado de máquina de forma rápida e fácil. Fora do trabalho, ela gosta de viajar e passar tempo com sua família.

Melhores práticas para Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Paras Mehra é gerente de produto sênior da AWS. Ele está focado em ajudar a criar o Amazon SageMaker Training and Processing. Em seu tempo livre, Paras gosta de passar o tempo com sua família e andar de bicicleta pela Bay Area. Você pode encontrá-lo em LinkedIn.

Melhores práticas para Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Gili Nachum é um arquiteto de soluções especialista em IA/ML sênior que trabalha como parte da equipe EMEA Amazon Machine Learning. Gili é apaixonado pelos desafios de treinar modelos de aprendizado profundo e como o aprendizado de máquina está mudando o mundo como o conhecemos. Nas horas vagas, Gili gosta de jogar tênis de mesa.

Melhores práticas para Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Olivier Cruchant é um arquiteto de soluções especialista em aprendizado de máquina na AWS, com sede na França. A Olivier ajuda os clientes da AWS – de pequenas startups a grandes empresas – a desenvolver e implantar aplicativos de aprendizado de máquina de nível de produção. Em seu tempo livre, ele gosta de ler trabalhos de pesquisa e explorar o deserto com amigos e familiares.

Melhores práticas para Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Emily Webber ingressou na AWS logo após o lançamento do SageMaker e vem tentando contar ao mundo sobre isso desde então! Além de criar novas experiências de ML para os clientes, Emily gosta de meditar e estudar o budismo tibetano.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS