Como o Amazon Search obtém inferência T5 de baixa latência e alto rendimento com NVIDIA Triton no AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Como o Amazon Search obtém inferência T5 de baixa latência e alto rendimento com NVIDIA Triton na AWS

A visão da Amazon Search é permitir que os clientes pesquisem sem esforço. Nossa correção ortográfica ajuda você a encontrar o que deseja, mesmo que não saiba a grafia exata das palavras pretendidas. No passado, usávamos algoritmos clássicos de aprendizado de máquina (ML) com engenharia de recursos manual para correção ortográfica. Para dar o próximo salto geracional no desempenho da correção ortográfica, estamos adotando várias abordagens de aprendizado profundo, incluindo modelos de sequência a sequência. Os modelos de aprendizado profundo (DL) são de computação intensiva tanto em treinamento quanto em inferência, e esses custos historicamente tornaram os modelos de DL impraticáveis ​​em um ambiente de produção na escala da Amazon. Neste post, apresentamos os resultados de uma experimentação de otimização de inferência onde superamos esses obstáculos e alcançamos 534% de aceleração de inferência para o popular Hugging Face T5 Transformer.

Desafio

O Transformador de Transferência de Texto para Texto (T5, Explorando os limites da aprendizagem por transferência com um transformador texto-para-texto unificado, Reffel et al) é a arquitetura de modelo de processamento de linguagem natural (NLP) de última geração. T5 é uma arquitetura promissora para correção ortográfica, que encontramos um bom desempenho em nossos experimentos. Os modelos T5 são fáceis de pesquisar, desenvolver e treinar, graças às estruturas de aprendizado profundo de código aberto e à pesquisa acadêmica e empresarial contínua.

No entanto, é difícil obter inferência de baixa latência e nível de produção com um T5. Por exemplo, uma única inferência com um PyTorch T5 leva 45 milissegundos em uma das quatro GPUs NVIDIA V100 Tensor Core que equipam uma instância p2xlarge do Amazon Elastic Compute Cloud (EC3.8). (Todos os números de inferência relatados são para uma entrada de 9 tokens e saída de 11 tokens. A latência das arquiteturas T5 é sensível aos comprimentos de entrada e saída.)

A inferência T5 econômica e de baixa latência em escala é uma dificuldade conhecida que foi relatada por vários clientes da AWS além do Amazon Search, o que aumenta nossa motivação para contribuir com esta postagem. Para passar de uma conquista científica offline a um serviço de produção voltado para o cliente, o Amazon Search enfrenta os seguintes desafios:

  • Latência – Como realizar a inferência T5 em menos de 50 milissegundos de latência P99
  • Produtividade – Como lidar com solicitações de inferência simultâneas em larga escala
  • Eficiência de custos – Como manter os custos sob controle

No restante deste post, explicamos como a pilha de otimização de inferência da NVIDIA - ou seja, o NVIDIA TensorRT compilador e o código aberto Servidor de inferência NVIDIA Triton— resolve esses desafios. Leitura Comunicado de imprensa da NVIDIA para saber sobre as atualizações.

NVIDIA TensorRT: reduzindo custos e latência com otimização de inferência

As estruturas de aprendizado profundo são convenientes para iterar rapidamente na ciência e vêm com inúmeras funcionalidades para modelagem científica, carregamento de dados e otimização de treinamento. No entanto, a maioria dessas ferramentas são subótimas para inferência, o que requer apenas um conjunto mínimo de operadores para funções de multiplicação e ativação de matrizes. Portanto, ganhos significativos podem ser obtidos usando um aplicativo especializado, somente de previsão, em vez de executar inferência na estrutura de desenvolvimento de aprendizado profundo.

NVIDIA TensorRT é um SDK para inferência de aprendizado profundo de alto desempenho. O TensorRT oferece um tempo de execução otimizado, usando kernels otimizados de baixo nível disponíveis em GPUs NVIDIA, e um gráfico de modelo somente de inferência, que reorganiza a computação de inferência em uma ordem otimizada.

Na seção a seguir, falaremos sobre os detalhes que acontecem por trás do TensorRT e como ele acelera o desempenho.

Como o Amazon Search obtém inferência T5 de baixa latência e alto rendimento com NVIDIA Triton no AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

  1. Precisão Reduzida maximiza o rendimento com FP16 ou INT8 quantizando modelos enquanto mantém a exatidão.
  2. Fusão de camadas e tensores otimiza o uso de memória e largura de banda da GPU fundindo nós em um kernel para evitar a latência de inicialização do kernel.
  3. Ajuste automático do kernel seleciona as melhores camadas de dados e algoritmos com base na plataforma de GPU de destino e nas formas do kernel de dados.
  4. Memória Tensora Dinâmica minimiza o consumo de memória liberando o consumo desnecessário de memória de resultados intermediários e reutiliza a memória para tensores de forma eficiente.
  5. Execução Multi-Stream usa um design escalável para processar vários fluxos de entrada em paralelo com fluxos CUDA dedicados.
  6. Fusão do Tempo otimiza redes neurais recorrentes ao longo de etapas de tempo com kernels gerados dinamicamente.

T5 usa camadas de transformadores como blocos de construção para suas arquiteturas. A versão mais recente do NVIDIA TensorRT 8.2 apresenta novas otimizações para os modelos T5 e GPT-2 para inferência em tempo real. Na tabela a seguir, podemos ver a aceleração com TensorRT em alguns modelos T5 públicos executados em instâncias Amazon EC2G4dn, com GPUs NVIDIA T4 e instâncias EC2 G5, com GPUs NVIDIA A10G.

 

Modelo Instância Latência do Pytorch da linha de base (ms) TensorRT 8.2 Latência (ms) Aceleração versus a linha de base HF
FP32 FP32 FP16 FP32 FP16
encoder Decoder De ponta a ponta encoder Decoder De ponta a ponta encoder Decoder De ponta a ponta De ponta a ponta De ponta a ponta
t5-pequeno g4dn.xlarge 5.98 9.74 30.71 1.28 2.25 7.54 0.93 1.59 5.91 407.40% 519.34%
g5.xgrande 4.63 7.56 24.22 0.61 1.05 3.99 0.47 0.80 3.19 606.66% 760.01%
base t5 g4dn.xlarge 11.61 19.05 78.44 3.18 5.45 19.59 3.15 2.96 13.76 400.48% 569.97%
g5.xgrande 8.59 14.23 59.98 1.55 2.47 11.32 1.54 1.65 8.46 530.05% 709.20%

Para obter mais informações sobre otimizações e replicação do desempenho anexado, consulte Otimizando T5 e GPT-2 para inferência em tempo real com NVIDIA TensorRT.

É importante notar que a compilação preserva a precisão do modelo, pois opera no ambiente de inferência e na programação de computação, deixando a ciência do modelo inalterada – ao contrário da compressão por remoção de peso, como destilação ou poda. NVIDIA TensorRT permite combinar compilação com quantização para ganhos adicionais. A quantização tem benefícios duplos no hardware NVIDIA recente: reduz o uso de memória e permite o uso de NVIDIA Tensor Cores, células específicas de DL que executam uma matriz fundida, multiplicação e adição de precisão mista.

No caso da experimentação do Amazon Search com o modelo Hugging Face T5, a substituição do PyTorch pelo TensorRT para inferência de modelo aumenta a velocidade em 534%.

NVIDIA Triton: serviço de inferência de baixa latência e alto rendimento

As soluções modernas de serviço de modelo podem transformar modelos treinados offline em produtos com tecnologia de ML voltados para o cliente. Para manter custos razoáveis ​​em tal escala, é importante manter a sobrecarga de serviço baixa (manuseio HTTP, pré-processamento e pós-processamento, comunicação CPU-GPU) e aproveitar totalmente a capacidade de processamento paralelo das GPUs.

O NVIDIA Triton é um software de serviço de inferência que propõe amplo suporte de runtimes de modelo (NVIDIA TensorRT, ONNX, PyTorch, XGBoost entre outros) e back-ends de infraestrutura, incluindo GPUs, CPU e AWS Inferência.

Os praticantes de ML amam o Triton por vários motivos. Sua capacidade de lote dinâmico permite acumular solicitações de inferência durante um atraso definido pelo usuário e dentro de um tamanho máximo de lote definido pelo usuário, de modo que a inferência da GPU seja agrupada, amortizando a sobrecarga de comunicação CPU-GPU. Observe que o lote dinâmico ocorre no lado do servidor e em prazos muito curtos, para que o cliente solicitante ainda tenha uma experiência de invocação síncrona e quase em tempo real. Os usuários do Triton também desfrutam de sua capacidade de execução de modelos simultâneos. As GPUs são multitarefas poderosas que se destacam na execução de cargas de trabalho de computação intensiva em paralelo. A Triton maximiza a utilização e a taxa de transferência da GPU usando fluxos CUDA para executar várias instâncias de modelo simultaneamente. Essas instâncias de modelo podem ser modelos diferentes de estruturas diferentes para casos de uso diferentes ou uma cópia direta do mesmo modelo. Isso se traduz em melhoria direta da taxa de transferência quando você tem memória GPU ociosa suficiente. Além disso, como o Triton não está vinculado a uma estrutura específica de desenvolvimento de DL, ele permite que o cientista se expresse plenamente, na ferramenta de sua escolha.

Com Triton na AWS, Amazon Search espera atender melhor Amazon.com clientes e atender aos requisitos de latência a baixo custo. A forte integração entre o runtime do TensorRT e o servidor Triton facilita a experiência de desenvolvimento. O uso da infraestrutura de nuvem da AWS permite aumentar ou diminuir a escala em minutos com base nos requisitos de taxa de transferência, mantendo a barra alta ou confiabilidade e segurança.

Como a AWS reduz a barreira de entrada

Embora o Amazon Search tenha conduzido esse experimento na infraestrutura do Amazon EC2, existem outros serviços da AWS para facilitar o desenvolvimento, treinamento e hospedagem de soluções de aprendizado profundo de última geração.

Por exemplo, a AWS e a NVIDIA colaboraram para lançar uma implementação gerenciada do Triton Inference Server em Amazon Sage Maker ; Para mais informações, veja Implante IA rápida e escalonável com NVIDIA Triton Inference Server no Amazon SageMaker. A AWS também colaborou com o Hugging Face para desenvolver uma integração gerenciada e otimizada entre o Amazon SageMaker e o Hugging Face Transformers, a estrutura de código aberto da qual o modelo T5 do Amazon Search é derivado; Leia mais em https://aws.amazon.com/machine-learning/hugging-face/.

Incentivamos os clientes com aplicativos de serviço de aprendizado profundo de CPU e GPU sensíveis à latência a considerar o NVIDIA TensorRT e o Triton na AWS. Deixe-nos saber o que você constrói!

Apaixonado por aprendizado profundo e por criar soluções baseadas em aprendizado profundo para o Amazon Search? Confira nosso página de carreiras.


Sobre os autores

Como o Amazon Search obtém inferência T5 de baixa latência e alto rendimento com NVIDIA Triton no AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.RJ é um engenheiro da equipe Search M5 que lidera os esforços para construir sistemas de aprendizado profundo em larga escala para treinamento e inferência. Fora do trabalho explora diferentes cozinhas de comida e pratica desportos de raquete.

Como o Amazon Search obtém inferência T5 de baixa latência e alto rendimento com NVIDIA Triton no AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Hemant Pugaliya é um Cientista Aplicado na Search M5. Ele trabalha na aplicação do mais recente processamento de linguagem natural e pesquisa de aprendizado profundo para melhorar a experiência do cliente nas compras da Amazon em todo o mundo. Seus interesses de pesquisa incluem processamento de linguagem natural e sistemas de aprendizado de máquina em larga escala. Fora do trabalho, ele gosta de fazer caminhadas, cozinhar e ler.

Como o Amazon Search obtém inferência T5 de baixa latência e alto rendimento com NVIDIA Triton no AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Andy Sol é engenheiro de software e líder técnico para correção ortográfica de pesquisa. Seus interesses de pesquisa incluem otimizar a latência de inferência de aprendizado profundo e construir plataformas de experimentação rápida. Fora do trabalho, ele gosta de cinema e acrobacias.

Como o Amazon Search obtém inferência T5 de baixa latência e alto rendimento com NVIDIA Triton no AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Le Cai é engenheiro de software na Amazon Search. Ele trabalha para melhorar o desempenho da correção ortográfica da pesquisa para ajudar os clientes em sua experiência de compra. Ele está se concentrando em inferência online de alto desempenho e otimização de treinamento distribuído para o modelo de aprendizado profundo. Fora do trabalho, ele gosta de esquiar, fazer caminhadas e andar de bicicleta.

Como o Amazon Search obtém inferência T5 de baixa latência e alto rendimento com NVIDIA Triton no AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Anthony Ko atualmente trabalha como engenheiro de software na Search M5 Palo Alto, CA. Ele trabalha na construção de ferramentas e produtos para implantação de modelo e otimização de inferência. Fora do trabalho, ele gosta de cozinhar e praticar esportes de raquete.

Como o Amazon Search obtém inferência T5 de baixa latência e alto rendimento com NVIDIA Triton no AWS 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.

Como o Amazon Search obtém inferência T5 de baixa latência e alto rendimento com NVIDIA Triton no AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Anish Mohan é um arquiteto de aprendizado de máquina da NVIDIA e líder técnico para compromissos de ML e DL com seus clientes na região metropolitana de Seattle.

Como o Amazon Search obtém inferência T5 de baixa latência e alto rendimento com NVIDIA Triton no AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Jiahong Liu é arquiteto de soluções na equipe de provedores de serviços de nuvem da NVIDIA. Ele auxilia os clientes na adoção de soluções de aprendizado de máquina e IA que aproveitam a computação acelerada da NVIDIA para enfrentar seus desafios de treinamento e inferência. Em seu tempo de lazer, ele gosta de origami, projetos de bricolage e jogar basquete.

Como o Amazon Search obtém inferência T5 de baixa latência e alto rendimento com NVIDIA Triton no AWS PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Eliuth Triana é Gerente de Relações com Desenvolvedores da NVIDIA. Ele conecta líderes de produtos, desenvolvedores e cientistas da Amazon e AWS com tecnólogos e líderes de produtos da NVIDIA para acelerar cargas de trabalho de ML/DL da Amazon, produtos EC2 e serviços de IA da AWS. Além disso, Eliuth é um apaixonado por mountain bike, esquiador e jogador de pôquer.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS