Obtenha uma taxa de transferência de inferência de ML quatro vezes maior com um custo por inferência três vezes menor com instâncias G2 do Amazon EC5 para modelos PNL e CV PyTorch PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Obtenha uma taxa de transferência de inferência de ML quatro vezes maior a um custo por inferência três vezes menor com instâncias Amazon EC2 G5 para modelos NLP e CV PyTorch

Amazon Elastic Compute Nuvem (Amazon EC2) Instâncias G5 são as primeiras e únicas instâncias na nuvem a apresentar GPUs NVIDIA A10G Tensor Core, que você pode usar para uma ampla variedade de casos de uso de uso intensivo de gráficos e aprendizado de máquina (ML). Com as instâncias G5, os clientes de ML obtêm alto desempenho e uma infraestrutura econômica para treinar e implantar modelos maiores e mais sofisticados para casos de uso de processamento de linguagem natural (NLP), visão computacional (CV) e mecanismo de recomendação.

O objetivo desta postagem é mostrar os benefícios de desempenho das instâncias G5 para cargas de trabalho de inferência de ML em grande escala. Fazemos isso comparando o preço-desempenho (medido como $ por milhão de inferências) para modelos de NLP e CV com instâncias G4dn. Começamos descrevendo nossa abordagem de benchmarking e, em seguida, apresentamos as curvas de taxa de transferência versus latência em todos os tamanhos de lote e precisão do tipo de dados. Em comparação com as instâncias G4dn, descobrimos que as instâncias G5 oferecem um custo consistentemente menor por milhão de inferências para modos de precisão total e precisão mista para os modelos NLP e CV, ao mesmo tempo em que atingem maior taxa de transferência e menor latência.

Abordagem de benchmarking

Para desenvolver um estudo de preço-desempenho entre G5 e G4dn, precisamos medir a taxa de transferência, a latência e o custo por milhão de inferências em função do tamanho do lote. Também estudamos o impacto da precisão total versus precisão mista. Tanto o gráfico do modelo quanto as entradas são carregados no CUDA antes da inferência.

Conforme mostrado no diagrama de arquitetura a seguir, primeiro criamos as respectivas imagens de contêiner base com CUDA para a instância do EC2 subjacente (G4dn, G5). Para construir as imagens do container base, começamos com Contêineres de aprendizado profundo da AWS, que usam imagens do Docker pré-empacotadas para implantar ambientes de aprendizado profundo em minutos. As imagens contêm as bibliotecas e ferramentas PyTorch de aprendizado profundo necessárias. Você pode adicionar suas próprias bibliotecas e ferramentas em cima dessas imagens para um maior grau de controle sobre monitoramento, conformidade e processamento de dados.

Em seguida, criamos uma imagem de contêiner específica do modelo que encapsula a configuração do modelo, o rastreamento do modelo e o código relacionado para executar passagens de encaminhamento. Todas as imagens de contêiner são carregadas em ECR da Amazon para permitir a escala horizontal desses modelos para várias configurações de modelo. Nós usamos Serviço de armazenamento simples da Amazon (Amazon S3) como um armazenamento de dados comum para baixar a configuração e carregar os resultados de benchmark para sumarização. Você pode usar essa arquitetura para recriar e reproduzir os resultados do benchmark e reaproveitar vários tipos de modelos (como modelos Hugging Face, PyTorch, outros modelos personalizados) em tipos de instância do EC2 (CPU, GPU, Inf1).

Com este experimento configurado, nosso objetivo é estudar a latência em função da taxa de transferência. Essa curva é importante para que o design do aplicativo chegue a uma infraestrutura com ótimo custo-benefício para o aplicativo de destino. Para conseguir isso, simulamos cargas diferentes enfileirando consultas de vários encadeamentos e medindo o tempo de ida e volta para cada solicitação concluída. A taxa de transferência é medida com base no número de solicitações concluídas por unidade de tempo. Além disso, você pode variar os tamanhos dos lotes e outras variáveis, como comprimento da sequência e precisão total versus meia precisão para varrer de forma abrangente o espaço de design para chegar a métricas de desempenho indicativas. Em nosso estudo, por meio de uma varredura paramétrica do tamanho do lote e consultas de clientes multithread, a curva de taxa de transferência versus latência é determinada. Cada solicitação pode ser agrupada para garantir a utilização total do acelerador, especialmente para solicitações pequenas que podem não utilizar totalmente o nó de computação. Você também pode adotar essa configuração para identificar o tamanho do lote do lado do cliente para obter um desempenho ideal.

Em resumo, podemos representar este problema matematicamente como: (Throughput, Latency) = função de (Batch Size, Number of threads, Precision).

Isso significa que, dado o espaço exaustivo, o número de experimentos pode ser grande. Felizmente, cada experimento pode ser executado independentemente. Recomendamos o uso Lote da AWS para realizar este benchmarking escalado horizontalmente em tempo comprimido sem um aumento no custo do benchmarking em comparação com uma abordagem linear de teste. O código para replicar os resultados está presente no Repositório GitHub preparado para AWS Re:Invent 2021. O repositório é abrangente para realizar benchmarking em diferentes aceleradores. Você pode consultar o aspecto GPU do código para construir o contêiner (Dockerfile-gpu) e, em seguida, consulte o código dentro Container-Root para exemplos específicos para BERT e ResNet50.

Usamos a abordagem anterior para desenvolver estudos de desempenho em dois tipos de modelo: Bert-base-uncased (110 milhões de parâmetros, NLP) e ResNet50 (25.6 milhões de parâmetros, CV). A tabela a seguir resume os detalhes do modelo.

Tipo de modelo Modelo Adicionar ao carrinho
PNL twmkn9/bert-base-uncased-squad2 110 milhões de parâmetros Comprimento da sequência = 128
CV ResNet50 25.6 milhões de parâmetros

Além disso, para comparar os tipos de dados (precisão total, meia), usamos torch.cuda.amp, que fornece métodos convenientes para lidar com precisão mista onde algumas operações usam o torch.float32 (float) tipo de dados e outras operações usam torch.float16 (metade). Por exemplo, operadores como camadas lineares e convoluções são muito mais rápidos com float16, enquanto outros como reduções geralmente exigem a faixa dinâmica de float32. A precisão mista automática tenta corresponder cada operador ao seu tipo de dados apropriado para otimizar o tempo de execução da rede e o consumo de memória.

Resultados de benchmarking

Para uma comparação justa, selecionamos G4dn.4xgrande e G5.4xgrande instâncias com atributos semelhantes, conforme listado na tabela a seguir.

Instância GPUs Memória GPU (GiB) vCPUs Memória (GiB) Armazenamento de instância (GB) Desempenho da rede (Gbps) Largura de banda EBS (Gbps) Preços sob demanda do Linux (us-east-1)
G5.4xgrande 1 24 16 64 1 x SSD 600 NVMe até 25 8 $ 1.204 / hora
G4dn.4xgrande 1 16 16 64 1 x SSD 225 NVMe até 25 4.75 $ 1.624 / hora

Nas seções a seguir, comparamos o desempenho de inferência de ML dos modelos BERT e RESNET50 com uma abordagem de varredura de grade para tamanhos de lote específicos (32, 16, 8, 4, 1) e precisão do tipo de dados (precisão total e meia) para chegar à taxa de transferência vs. curva de latência. Além disso, investigamos o efeito da taxa de transferência versus o tamanho do lote para precisão total e parcial. Por fim, medimos o custo por milhão de inferências em função do tamanho do lote. Os resultados consolidados desses experimentos são resumidos posteriormente neste post.

Taxa de transferência x latência

As figuras a seguir comparam instâncias G4dn e G5 para cargas de trabalho NLP e CV com precisão total e parcial. Em comparação com as instâncias G4dn, a instância G5 oferece uma taxa de transferência cerca de cinco vezes maior (precisão total) e cerca de 2.5 vezes maior (meia precisão) para um modelo base BERT e cerca de 2 a 2.5 vezes maior para um modelo ResNet50. No geral, o G5 é a escolha preferida, com tamanhos de lote crescentes para ambos os modelos para precisão total e mista do ponto de vista do desempenho.

Os gráficos a seguir comparam a taxa de transferência e a latência do P95 com precisão total e meia para BERT.

Obtenha uma taxa de transferência de inferência de ML quatro vezes maior com um custo por inferência três vezes menor com instâncias G2 do Amazon EC5 para modelos PNL e CV PyTorch PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai. Obtenha uma taxa de transferência de inferência de ML quatro vezes maior com um custo por inferência três vezes menor com instâncias G2 do Amazon EC5 para modelos PNL e CV PyTorch PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Os gráficos a seguir comparam a taxa de transferência e a latência do P95 com precisão total e meia para ResNet50.

Obtenha uma taxa de transferência de inferência de ML quatro vezes maior com um custo por inferência três vezes menor com instâncias G2 do Amazon EC5 para modelos PNL e CV PyTorch PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai. Obtenha uma taxa de transferência de inferência de ML quatro vezes maior com um custo por inferência três vezes menor com instâncias G2 do Amazon EC5 para modelos PNL e CV PyTorch PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Taxa de transferência e latência versus tamanho do lote

Os gráficos a seguir mostram o rendimento em função do tamanho do lote. Em tamanhos de lotes baixos, o acelerador não está funcionando em sua capacidade máxima e, à medida que o tamanho do lote aumenta, a taxa de transferência aumenta à custa da latência. A curva de rendimento assíntota para um valor máximo que é uma função do desempenho do acelerador. A curva tem duas características distintas: uma seção ascendente e uma seção assintótica plana. Para um determinado modelo, um acelerador de alto desempenho (G5) é capaz de esticar a seção ascendente para tamanhos de lote mais altos do que G4dn e assíntota em uma taxa de transferência mais alta. Além disso, há uma compensação linear entre a latência e o tamanho do lote. Portanto, se o aplicativo estiver vinculado à latência, podemos usar a latência P95 versus o tamanho do lote para determinar o tamanho ideal do lote. No entanto, se o objetivo é maximizar o rendimento na latência mais baixa, é melhor selecionar o tamanho do lote correspondente ao “joelho” entre as seções ascendente e assintótica, porque qualquer aumento adicional no tamanho do lote resultaria no mesmo rendimento em um pior latência. Para obter a melhor relação preço-desempenho, visando maior taxa de transferência com a menor latência, é melhor dimensionar horizontalmente esse ótimo por meio de vários servidores de inferência em vez de apenas aumentar o tamanho do lote.

Obtenha uma taxa de transferência de inferência de ML quatro vezes maior com um custo por inferência três vezes menor com instâncias G2 do Amazon EC5 para modelos PNL e CV PyTorch PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Custo x tamanho do lote

Nesta seção, apresentamos os resultados comparativos dos custos de inferência ($ por milhão de inferências) versus o tamanho do lote. A partir da figura a seguir, podemos observar claramente que o custo (medido como $ por milhão de inferências) é consistentemente menor com G5 vs. G4dn (precisão total e meia).

Obtenha uma taxa de transferência de inferência de ML quatro vezes maior com um custo por inferência três vezes menor com instâncias G2 do Amazon EC5 para modelos PNL e CV PyTorch PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai. Obtenha uma taxa de transferência de inferência de ML quatro vezes maior com um custo por inferência três vezes menor com instâncias G2 do Amazon EC5 para modelos PNL e CV PyTorch PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

A tabela a seguir resume as comparações de taxa de transferência, latência e custo ($ por milhão de inferências) para os modelos BERT e RESNET50 em ambos os modos de precisão para tamanhos de lote específicos. Apesar de um custo mais alto por instância, o G5 supera consistentemente o G4dn em todos os aspectos de latência de inferência, taxa de transferência e custo ($ por milhão de inferência), para todos os tamanhos de lote. Combinando as diferentes métricas em um custo ($ por milhão de inferências), o modelo BERT (tamanho de lote 32, precisão total) com G5 é 3.7 vezes mais favorável que G4dn, e com modelo ResNet50 (tamanho de lote 32, precisão total), é 1.6 vezes mais favorável do que G4dn.

Modelo Tamanho do batch Precisão

Produtividade

(Tamanho do lote X Solicitações/s)

Latência (ms)

$/milhão

Inferências (sob demanda)

Custo benefício

(G5 sobre G4dn)

. . . G5 G4dn G5 G4dn G5 G4dn
Bert-base-sem caixa 32 completo 723 154 44 208 $0.6 $2.2 3.7X
Misto 870 410 37 79 $0.5 $0.8 1.6X
16 completo 651 158 25 102 $0.7 $2.1 3.0X
Misto 762 376 21 43 $0.6 $0.9 1.5X
8 completo 642 142 13 57 $0.7 $2.3 3.3X
Misto 681 350 12 23 $0.7 $1.0 1.4X
. 1 completo 160 116 6 9 $2.8 $2.9 1.0X
Misto 137 102 7 10 $3.3 $3.3 1.0X
ResNet50 32 completo 941 397 34 82 $0.5 $0.8 1.6X
Misto 1533 851 21 38 $0.3 $0.4 1.3X
16 completo 888 384 18 42 $0.5 $0.9 1.8X
Misto 1474 819 11 20 $0.3 $0.4 1.3X
8 completo 805 340 10 24 $0.6 $1.0 1.7X
Misto 1419 772 6 10 $0.3 $0.4 1.3X
. 1 completo 202 164 5 6 $2.2 $2 0.9X
Misto 196 180 5 6 $2.3 $1.9 0.8X

Referências de inferência adicionais

Além da base BERT e dos resultados do ResNet50 nas seções anteriores, apresentamos resultados de benchmarking adicionais para outros modelos grandes de NLP e CV comumente usados ​​no PyTorch. O benefício de desempenho do G5 sobre o G4dn foi apresentado para modelos BERT Large com várias precisão e modelos Yolo-v5 para vários tamanhos. Para o código para replicar o benchmark, consulte Exemplos de aprendizado profundo da NVIDIA para núcleos tensores. Esses resultados mostram o benefício de usar G5 em vez de G4dn para uma ampla gama de tarefas de inferência abrangendo diferentes tipos de modelo.

Modelo Precisão Tamanho do batch Comprimento da sequência Taxa de transferência (enviada/s) Taxa de transferência: G4dn Aceleração sobre G4dn
BERT-grande FP16 1 128 93.5 40.31 2.3
BERT-grande FP16 4 128 264.2 87.4 3.0
BERT-grande FP16 8 128 392.1 107.5 3.6
BERT-grande FP32 1 128 68.4 22.67 3.0
BERT-grande 4 128 118.5 32.21 3.7
BERT-grande 8 128 132.4 34.67 3.8
Modelo GFLOPS Número de parâmetros Pré-processamento (ms) Inferência (ms) Inferência (sem supressão máxima) (NMS/imagem)
YOLOv5s 16.5 7.2M 0.2 3.6 4.5
YOLOv5m 49.1 21M 0.2 6.5 4.5
YOLOv5l 109.3 46M 0.2 9.1 3.5
YOLOv5x 205.9 86M 0.2 14.4 1.3

Conclusão

Neste post, mostramos que, para inferência com grandes modelos NLP e CV PyTorch, as instâncias EC2 G5 são uma escolha melhor em comparação com as instâncias G4dn. Embora o custo por hora sob demanda para instâncias G5 seja maior do que instâncias G4dn, seu desempenho superior pode atingir 2 a 5 vezes a taxa de transferência em qualquer precisão para modelos de NLP e CV, o que torna o custo por milhão de inferências 1.5 a 3.5 vezes mais favorável do que instâncias G4dn. Mesmo para aplicativos com limite de latência, o G5 é 2.5 a 5 vezes melhor que o G4dn para modelos NLP e CV.

Em resumo, as instâncias do AWS G5 são uma excelente opção para suas necessidades de inferência, tanto do ponto de vista do desempenho quanto do custo por inferência. A universalidade da estrutura CUDA e a escala e a profundidade do pool de instâncias G5 na AWS oferecem a você uma capacidade exclusiva de realizar inferências em escala.


Sobre os autores

Obtenha uma taxa de transferência de inferência de ML quatro vezes maior com um custo por inferência três vezes menor com instâncias G2 do Amazon EC5 para modelos PNL e CV PyTorch PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Ankur Srivastava é um arquiteto de soluções sênior na equipe de frameworks de ML. Ele se concentra em ajudar os clientes com treinamento distribuído autogerenciado e inferência em escala na AWS. Sua experiência inclui manutenção preditiva industrial, gêmeos digitais, otimização de projeto probabilístico e concluiu seus estudos de doutorado em Engenharia Mecânica na Rice University e pesquisa de pós-doutorado no Massachusetts Institute of Technology.

Obtenha uma taxa de transferência de inferência de ML quatro vezes maior com um custo por inferência três vezes menor com instâncias G2 do Amazon EC5 para modelos PNL e CV PyTorch PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Sundar Ranganathan é o chefe de desenvolvimento de negócios, ML Frameworks na equipe do Amazon EC2. Ele se concentra em cargas de trabalho de ML em grande escala em serviços da AWS, como Amazon EKS, Amazon ECS, Elastic Fabric Adapter, AWS Batch e Amazon SageMaker. Sua experiência inclui funções de liderança em gerenciamento e desenvolvimento de produtos na NetApp, Micron Technology, Qualcomm e Mentor Graphics.

Obtenha uma taxa de transferência de inferência de ML quatro vezes maior com um custo por inferência três vezes menor com instâncias G2 do Amazon EC5 para modelos PNL e CV PyTorch PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Mahadevan Balasubramaniam é Arquiteto Principal de Soluções para Computação Autônoma com quase 20 anos de experiência na área de aprendizado profundo com infusão de física, construção e implantação de gêmeos digitais para sistemas industriais em escala. Mahadevan obteve seu PhD em Engenharia Mecânica do Massachusetts Institute of Technology e tem mais de 25 patentes e publicações em seu crédito.

Obtenha uma taxa de transferência de inferência de ML quatro vezes maior com um custo por inferência três vezes menor com instâncias G2 do Amazon EC5 para modelos PNL e CV PyTorch PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai. Amr Ragab é um arquiteto de soluções principal para plataformas aceleradas do EC2 para AWS, dedicado a ajudar os clientes a executar cargas de trabalho computacionais em escala. Nos tempos livres gosta de viajar e de descobrir novas formas de integrar a tecnologia na vida quotidiana.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS