Analise os gastos do Amazon SageMaker e determine as oportunidades de otimização de custos com base no uso, Parte 3: Trabalhos de Processamento e Data Wrangler | Amazon Web Services

Analise os gastos do Amazon SageMaker e determine as oportunidades de otimização de custos com base no uso, Parte 3: Trabalhos de Processamento e Data Wrangler | Amazon Web Services

Em 2021, lançamos Serviços proativos de suporte da AWS como parte do Suporte empresarial da AWS plano. Desde sua introdução, ajudamos centenas de clientes a otimizar suas cargas de trabalho, definir proteções e melhorar a visibilidade do custo e uso de suas cargas de trabalho de aprendizado de máquina (ML).

Nesta série de postagens, compartilhamos lições aprendidas sobre como otimizar custos em Amazon Sage Maker. Neste post, nos concentramos no pré-processamento de dados usando Processamento do Amazon SageMaker e Gerenciador de dados do Amazon SageMaker empregos.

O pré-processamento de dados tem um papel fundamental em uma abordagem de IA centrada em dados. No entanto, preparar dados brutos para treinamento e avaliação de ML geralmente é uma tarefa tediosa e exigente em termos de recursos de computação, tempo e esforço humano. A preparação de dados geralmente precisa ser integrada de diferentes fontes e lidar com valores ausentes ou ruidosos, outliers e assim por diante.

Além disso, além das tarefas comuns de extração, transformação e carregamento (ETL), as equipes de ML ocasionalmente exigem recursos mais avançados, como a criação de modelos rápidos para avaliar dados e produzir pontuações de importância de recursos ou avaliação de modelo pós-treinamento como parte de um pipeline de MLOps.

O SageMaker oferece dois recursos projetados especificamente para ajudar com esses problemas: SageMaker Processing e Data Wrangler. O SageMaker Processing permite que você execute facilmente pré-processamento, pós-processamento e avaliação de modelo em uma infraestrutura totalmente gerenciada. O Data Wrangler reduz o tempo necessário para agregar e preparar dados, simplificando o processo de integração da fonte de dados e engenharia de recursos usando uma única interface visual e um ambiente de processamento de dados totalmente distribuído.

Ambos os recursos do SageMaker fornecem grande flexibilidade com várias opções de E/S, armazenamento e computação. No entanto, definir essas opções incorretamente pode levar a custos desnecessários, especialmente ao lidar com grandes conjuntos de dados.

Nesta postagem, analisamos os fatores de precificação e fornecemos orientação de otimização de custos para trabalhos de Processamento do SageMaker e Data Wrangler.

Processamento SageMaker

O SageMaker Processing é uma solução gerenciada para executar cargas de trabalho de processamento de dados e avaliação de modelos. Você pode usá-lo em etapas de processamento de dados, como engenharia de recursos, validação de dados, avaliação de modelo e interpretação de modelo em fluxos de trabalho de ML. Com o SageMaker Processing, você pode trazer seus próprios scripts de processamento personalizados e optar por criar um contêiner personalizado ou usar um contêiner gerenciado pelo SageMaker com estruturas comuns como scikit-learn, Lime, Spark e muito mais.

O SageMaker Processing cobra pelo tipo de instância que você escolher, com base na duração do uso e no armazenamento provisionado anexado a essa instância. Na Parte 1, mostramos como começar a usar Explorador de custos da AWS para identificar oportunidades de otimização de custos no SageMaker.

Você pode filtrar os custos de processamento aplicando um filtro no tipo de uso. Os nomes desses tipos de uso são os seguintes:

  • REGION-Processing:instanceType (por exemplo, USE1-Processing:ml.m5.large)
  • REGION-Processing:VolumeUsage.gp2 (por exemplo, USE1-Processing:VolumeUsage.gp2)

Para revisar seu custo de processamento do SageMaker no Explorador de custos, comece filtrando com o SageMaker por e eficaz, E para Tipo de uso, você pode selecionar o horário de execução de todas as instâncias de processamento inserindo o processing:ml prefixo e selecionando a lista no menu.

Analise os gastos do Amazon SageMaker e determine oportunidades de otimização de custos com base no uso, Parte 3: Trabalhos de processamento e do Data Wrangler | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Evite custos de processamento e desenvolvimento de pipeline

Antes de dimensionar corretamente e otimizar a duração de execução de uma tarefa do SageMaker Processing, verificamos as métricas de alto nível sobre as execuções de tarefas históricas. Você pode escolher entre dois métodos para fazer isso.

Primeiro, você pode acessar o Tratamento página no console do SageMaker.

Analise os gastos do Amazon SageMaker e determine oportunidades de otimização de custos com base no uso, Parte 3: Trabalhos de processamento e do Data Wrangler | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Alternativamente, você pode usar o API list_processing_jobs.

Analise os gastos do Amazon SageMaker e determine oportunidades de otimização de custos com base no uso, Parte 3: Trabalhos de processamento e do Data Wrangler | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Um status de trabalho de processamento pode ser InProgress, Completed, Failed, Stoppingou Stopped.

Um grande número de trabalhos com falha é comum ao desenvolver novos pipelines MLOps. No entanto, você deve sempre testar e fazer todos os esforços para validar os trabalhos antes de iniciá-los no SageMaker porque há cobranças pelos recursos usados. Para isso, você pode usar o Processamento SageMaker em modo local. O modo local é um recurso do SageMaker SDK que permite criar estimadores, processadores e pipelines e implantá-los em seu ambiente de desenvolvimento local. Essa é uma ótima maneira de testar seus scripts antes de executá-los em um ambiente gerenciado pelo SageMaker. O modo local é compatível com os contêineres gerenciados pelo SageMaker e os fornecidos por você. Para saber mais sobre como usar o modo local com Pipelines Amazon SageMaker, referir-se Modo local.

Otimize o custo relacionado a E/S

Os trabalhos de processamento do SageMaker oferecem acesso a três fontes de dados como parte do gerenciado entrada de processamento: Serviço de armazenamento simples da Amazon (Amazon S3), Amazona atena e Amazon RedShift. Para obter mais informações, consulte ProcessamentoS3Input, Definição do AthenaDataset e RedshiftDatasetDefinição, Respectivamente.

Antes de examinar a otimização, é importante observar que, embora as tarefas de processamento do SageMaker ofereçam suporte a essas fontes de dados, elas não são obrigatórias. Em seu código de processamento, você pode implementar qualquer método para baixar os dados de acesso de qualquer fonte (desde que a instância de processamento possa acessá-los).

Para obter melhores informações sobre o desempenho do processamento e detecção de oportunidades de otimização, recomendamos seguir práticas recomendadas de registro em seu script de processamento. O SageMaker publica seus logs de processamento para Amazon CloudWatch.

No log de trabalho de exemplo a seguir, vemos que o processamento do script levou 15 minutos (entre Start custom script e End custom script).

Analise os gastos do Amazon SageMaker e determine oportunidades de otimização de custos com base no uso, Parte 3: Trabalhos de processamento e do Data Wrangler | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

No entanto, no console do SageMaker, vemos que a tarefa levou 4 minutos adicionais (quase 25% do tempo de execução total da tarefa).

Analise os gastos do Amazon SageMaker e determine oportunidades de otimização de custos com base no uso, Parte 3: Trabalhos de processamento e do Data Wrangler | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Isso se deve ao fato de que, além do tempo que nosso script de processamento levou, o download e o upload de dados gerenciados pelo SageMaker também levaram tempo (4 minutos). Se isso for uma grande parte do custo, considere maneiras alternativas de acelerar o tempo de download, como usar a API Boto3 com multiprocessamento para baixar arquivos simultaneamente ou usar bibliotecas de terceiros como WebDataset ou s5cmd para download mais rápido do Amazon S3 . Para mais informações, consulte Paralelizando cargas de trabalho S3 com s5cmd. Observe que esses métodos podem apresentar cobranças no Amazon S3 devido a transferência de dados.

Trabalhos de processamento também suportam Modo de tubo. Com esse método, o SageMaker transmite dados de entrada da origem diretamente para o contêiner de processamento em pipes nomeados sem usar o volume de armazenamento de ML, eliminando assim o tempo de download de dados e um volume de disco menor. No entanto, isso requer um modelo de programação mais complicado do que simplesmente ler arquivos em um disco.

Conforme mencionado anteriormente, o SageMaker Processing também oferece suporte ao Athena e ao Amazon Redshift como fontes de dados. Ao configurar um trabalho de processamento com essas fontes, o SageMaker copia automaticamente os dados para o Amazon S3 e a instância de processamento busca os dados no local do Amazon S3. No entanto, quando o trabalho for concluído, não haverá processo de limpeza gerenciado e os dados copiados ainda permanecerão no Amazon S3 e poderão incorrer em cobranças de armazenamento indesejadas. Portanto, ao usar fontes de dados Athena e Amazon Redshift, certifique-se de implementar um procedimento de limpeza, como uma função Lambda que funciona em um cronograma ou numa Passo Lambda como parte de um pipeline do SageMaker.

Assim como o download, o upload de artefatos de processamento também pode ser uma oportunidade de otimização. Quando a saída de um trabalho de processamento é configurada usando o ProcessingS3Output parâmetro, você pode especificar qual S3UploadMode usar. O S3UploadMode o valor padrão do parâmetro é EndOfJob, que fará com que o SageMaker carregue os resultados após a conclusão do trabalho. No entanto, se o trabalho de processamento produzir vários arquivos, você poderá definir S3UploadMode para Continuous, permitindo assim o upload de artefatos simultaneamente enquanto o processamento continua e diminuindo o tempo de execução da tarefa.

Instâncias de trabalho de processamento de tamanho certo

Escolher o tipo e o tamanho corretos da instância é um fator importante na otimização do custo dos trabalhos de processamento do SageMaker. Você pode dimensionar corretamente uma instância migrando para uma versão diferente dentro da mesma família de instâncias ou migrando para outra família de instâncias. Ao migrar dentro da mesma família de instâncias, você só precisa considerar CPU/GPU e memória. Para obter mais informações e orientações gerais sobre como escolher os recursos de processamento corretos, consulte Garanta recursos de computação eficientes no Amazon SageMaker.

Para ajustar a seleção de instâncias, começamos analisando as métricas de trabalho de processamento no CloudWatch. Para mais informações, consulte Monitore o Amazon SageMaker com o Amazon CloudWatch.

O CloudWatch coleta dados brutos do SageMaker e os processa em métricas legíveis quase em tempo real. Embora essas estatísticas sejam mantidas por 15 meses, o console do CloudWatch limita a pesquisa às métricas que foram atualizadas nas últimas 2 semanas (isso garante que apenas os trabalhos atuais sejam mostrados). As métricas de trabalhos de processamento podem ser encontradas no namespace /aws/sagemaker/ProcessingJobs e as métricas coletadas são CPUUtilization, MemoryUtilization, GPUUtilization, GPUMemoryUtilization e DiskUtilization.

A captura de tela a seguir mostra um exemplo no CloudWatch do trabalho de processamento que vimos anteriormente.

Analise os gastos do Amazon SageMaker e determine oportunidades de otimização de custos com base no uso, Parte 3: Trabalhos de processamento e do Data Wrangler | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Neste exemplo, vemos os valores médios de CPU e memória (que é o padrão no CloudWatch): o uso médio de CPU é 0.04%, memória 1.84% e uso de disco 13.7%. Para dimensionar corretamente, sempre considere o uso máximo de CPU e memória (neste exemplo, a utilização máxima de CPU foi de 98% nos primeiros 3 minutos). Como regra geral, se o uso máximo de CPU e memória for consistentemente inferior a 40%, você pode cortar a máquina pela metade com segurança. Por exemplo, se você estiver usando uma instância ml.c5.4xlarge, poderá mudar para uma instância ml.c5.2xlarge, o que reduzirá seu custo em 50%.

Tarefas do Data Wrangler

Data Wrangler é um recurso do Estúdio Amazon SageMaker que fornece uma solução repetível e escalável para exploração e processamento de dados. Você usa a interface do Data Wrangler para importar, analisar, transformar e caracterizar seus dados de forma interativa. Essas etapas são capturadas em uma receita (um arquivo .flow) que você pode usar em um trabalho do Data Wrangler. Isso ajuda você a reaplicar as mesmas transformações de dados em seus dados e também dimensionar para um trabalho de processamento de dados em lote distribuído, como parte de um pipeline de ML ou de forma independente.

Para obter orientação sobre como otimizar seu aplicativo Data Wrangler no Studio, consulte a Parte 2 desta série.

Nesta seção, nos concentramos na otimização de tarefas do Data Wrangler.

O Data Wrangler usa Tarefas de processamento do SageMaker Spark com um contêiner gerenciado pelo Data Wrangler. Esse contêiner executa as instruções do arquivo .flow no trabalho. Como qualquer trabalho de processamento, o Data Wrangler cobra pelas instâncias que você escolher, com base na duração do uso e no armazenamento provisionado anexado a essa instância.

No Explorador de custos, você pode filtrar os custos de trabalhos do Data Wrangler aplicando um filtro no tipo de uso. Os nomes desses tipos de uso são:

  • REGION-processing_DW:instanceType (por exemplo, USE1-processing_DW:ml.m5.large)
  • REGION-processing_DW:VolumeUsage.gp2 (por exemplo, USE1-processing_DW:VolumeUsage.gp2)

Para visualizar o custo do Data Wrangler no Explorador de custos, filtre o serviço para usar o SageMaker e, para Tipo de uso, escolha o processing_DW prefixo e selecione a lista no menu. Isso mostrará os custos relacionados ao uso da instância (horas) e ao volume de armazenamento (GB). (Se quiser ver os custos do Studio Data Wrangler, você pode filtrar o tipo de uso pelo Studio_DW prefixo.)

Analise os gastos do Amazon SageMaker e determine oportunidades de otimização de custos com base no uso, Parte 3: Trabalhos de processamento e do Data Wrangler | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Dimensionar e programar corretamente as instâncias de trabalho do Data Wrangler

No momento, o Data Wrangler suporta apenas instâncias m5 com os seguintes tamanhos de instância: ml.m5.4xlarge, ml.m5.12xlarge e ml.m5.24xlarge. Você pode usar o recurso de trabalho distribuído para ajustar o custo do trabalho. Por exemplo, suponha que você precise processar um conjunto de dados que exija 350 GiB de RAM. O 4xlarge (128 GiB) e o 12xlarge (256 GiB) podem não ser capazes de processar e levarão você a usar a instância m5.24xlarge (768 GiB). No entanto, você pode usar duas instâncias m5.12xlarge (2 * 256 GiB = 512 GiB) e reduzir o custo em 40% ou três instâncias m5.4xlarge (3 * 128 GiB = 384 GiB) e economizar 50% do m5.24xlarge custo da instância. Você deve observar que essas são estimativas e que o processamento distribuído pode introduzir alguma sobrecarga que afetará o tempo de execução geral.

Ao alterar o tipo de instância, certifique-se de atualizar o Configuração do Spark de acordo. Por exemplo, se você tiver um trabalho de instância inicial ml.m5.4xlarge configurado com propriedades spark.driver.memory definido para 2048 e spark.executor.memory definido como 55742, e posteriormente dimensionado para ml.m5.12xlarge, esses valores de configuração precisam ser aumentados, caso contrário, eles serão o gargalo no trabalho de processamento. Você pode atualizar essas variáveis ​​na GUI do Data Wrangler ou em um arquivo de configuração anexado ao caminho de configuração (consulte os exemplos a seguir).

Analise os gastos do Amazon SageMaker e determine oportunidades de otimização de custos com base no uso, Parte 3: Trabalhos de processamento e do Data Wrangler | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Analise os gastos do Amazon SageMaker e determine oportunidades de otimização de custos com base no uso, Parte 3: Trabalhos de processamento e do Data Wrangler | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Outro recurso atraente no Data Wrangler é a capacidade de definir um trabalho agendado. Se estiver processando dados periodicamente, você pode criar um agendamento para executar o trabalho de processamento automaticamente. Por exemplo, você pode criar uma programação que executa um trabalho de processamento automaticamente quando você obtém novos dados (para exemplos, consulte Exportar para o Amazon S3 or Exportar para a loja de recursos do Amazon SageMaker). No entanto, você deve observar que, ao criar uma programação, o Data Wrangler cria um eventRule em EventBridge. Isso significa que você também será cobrado pelas regras de evento que criar (assim como pelas instâncias usadas para executar o trabalho de processamento). Para mais informações, veja Definição de preço do Amazon EventBridge.

Conclusão

Nesta postagem, fornecemos orientações sobre análise de custos e práticas recomendadas ao pré-processar

dados usando os trabalhos SageMaker Processing e Data Wrangler. Semelhante ao pré-processamento, há muitas opções e definições de configuração na criação, treinamento e execução de modelos de ML que podem levar a custos desnecessários. Portanto, à medida que o aprendizado de máquina se estabelece como uma ferramenta poderosa em todos os setores, as cargas de trabalho de ML precisam permanecer econômicas.

O SageMaker oferece um conjunto de recursos amplo e profundo para facilitar cada etapa do pipeline de ML.

Essa robustez também oferece oportunidades contínuas de otimização de custos sem comprometer o desempenho ou a agilidade.


Sobre os autores

Analise os gastos do Amazon SageMaker e determine oportunidades de otimização de custos com base no uso, Parte 3: Trabalhos de processamento e do Data Wrangler | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.Deepali Rajale é um especialista sênior em IA/ML da AWS. Ela trabalha com clientes corporativos fornecendo orientação técnica com as melhores práticas para implantação e manutenção de soluções AI/ML no ecossistema da AWS. Ela trabalhou com uma ampla gama de organizações em vários casos de uso de aprendizado profundo envolvendo PNL e visão computacional. Ela é apaixonada por capacitar as organizações a alavancar a IA generativa para aprimorar sua experiência de uso. Nas horas vagas, gosta de cinema, música e literatura.

Analise os gastos do Amazon SageMaker e determine oportunidades de otimização de custos com base no uso, Parte 3: Trabalhos de processamento e do Data Wrangler | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.Uri Rosenberg é o Gerente Técnico Especialista em AI & ML para a Europa, Oriente Médio e África. Com sede em Israel, a Uri trabalha para capacitar os clientes corporativos em tudo o que é ML para projetar, construir e operar em escala. Em seu tempo livre, ele gosta de andar de bicicleta, fazer caminhadas e assistir ao pôr do sol (no mínimo uma vez por dia).

Carimbo de hora:

Mais de Aprendizado de máquina da AWS