Os "pobres da GPU" estão prestes a se despedir de sua situação! Agora mesmo, a NVIDIA lançou um software de código aberto TensorRT-LLM, que pode acelerar o raciocínio de grandes modelos de linguagem no H100. Então, quantas vezes isso pode ser melhorado? Depois de adicionar o TensorRT-LLM e sua série de funções de otimização (incluindo processamento em lote In-Flight), o rendimento total do modelo aumentou 8 vezes.
Visite a página de compra:
Resumo do produto da série JD.com NVIDIA
Comparação de GPT-J-6BA100 e H100 com e sem TensorRT-LLM
Além disso, tomando o Llama2 como exemplo, o TensorRT-LLM pode melhorar o desempenho da inferência em 4,6 vezes em comparação ao uso apenas do A100.
Comparação de Llama270B, A100 e H100 com e sem TensorRT-LLM
Os internautas disseram que o superpoderoso H100, combinado com o TensorRT-LLM, sem dúvida mudará completamente a situação atual de inferência de modelos de linguagem em grande escala!
TensorRT-LLM: artefato de aceleração de inferência de modelo grande
Atualmente, devido à enorme escala de parâmetros de grandes modelos, a dificuldade e o custo de “implantação e inferência” permanecem elevados.
O TensorRT-LLM desenvolvido pela NVIDIA visa melhorar significativamente o rendimento do LLM e reduzir custos por meio de GPU.
Especificamente, o TensorRT-LLM encapsula o compilador de aprendizado profundo do TensorRT, o kernel otimizado do FasterTransformer, o pré e pós-processamento e a comunicação multi-GPU/multi-nós em uma API Python simples de código aberto.
A NVIDIA aprimorou ainda mais o FasterTransformer para torná-lo uma solução produtiva.
Pode-se observar que o TensorRT-LLM fornece uma interface de programação de aplicativos Python modular, de código aberto e fácil de usar.
Os codificadores não precisam de conhecimento profundo em C++ ou CUDA para implantar, executar e depurar vários modelos de linguagem grandes e também podem obter desempenho superior e personalização rápida.
De acordo com o blog oficial da NVIDIA, o TensorRT-LLM otimiza o desempenho de inferência LLM em GPUs NVIDIA de quatro maneiras.
Primeiro, o TensorRT-LLM é introduzido para os mais de 10 modelos grandes atuais, permitindo que os desenvolvedores os executem imediatamente.
Em segundo lugar, o TensorRT-LLM, como uma biblioteca de software de código aberto, permite que o LLM execute inferências em várias GPUs e em vários servidores GPU simultaneamente.
Esses servidores são conectados por meio de interconexões NVLink e InfiniBand da NVIDIA.
O terceiro é o "processamento em lote em andamento", que é uma tecnologia de agendamento totalmente nova que permite que diferentes tarefas de modelo entrem e saiam da GPU independentemente de outras tarefas.
Finalmente, o TensorRT-LLM foi otimizado para usar o H100TransformerEngine para reduzir o uso de memória e a latência durante a inferência do modelo.
A seguir, vamos dar uma olhada mais de perto em como o TensorRT-LLM melhora o desempenho do modelo.
Apoie a rica ecologia LLM
O TensorRT-LLM fornece um suporte muito bom para o ecossistema do modelo de código aberto.
Os maiores e mais avançados modelos de linguagem, como o Llama2-70B da Meta, exigem múltiplas GPUs trabalhando juntas para fornecer respostas em tempo real.
Anteriormente, se quisessem alcançar o desempenho ideal para inferência LLM, os desenvolvedores tinham que reescrever o modelo de IA e dividi-lo manualmente em vários fragmentos e coordenar a execução entre GPUs.
O TensorRT-LLM usa paralelismo tensorial para distribuir a matriz de pesos para cada dispositivo, simplificando assim esse processo e permitindo inferência eficiente em larga escala.
Cada modelo pode ser executado em paralelo em diversas GPUs e diversos servidores conectados via NVLink, sem intervenção do desenvolvedor ou alterações de modelo.
Com a introdução de novos modelos e arquiteturas de modelos, os desenvolvedores podem otimizar seus modelos usando o mais recente kernel NVIDIA AI (Kernal) de código aberto no TensorRT-LLM.
Fusão de kernel suportada (KernalFusion), incluindo a implementação mais avançada de FlashAttention e atenção mascarada de vários cabeçotes para o contexto e os estágios de geração da execução do modelo GPT, etc.
Além disso, o TensorRT-LLM inclui versões totalmente otimizadas e prontas para execução de muitos modelos de linguagem grandes que são populares atualmente.
Isso inclui MetaLlama2, OpenAIGPT-2 e GPT-3, Falcon, MosaicMPT, BLOOM e mais de 10 modelos, todos os quais podem ser chamados usando a API TensorRT-LLMPython simples e fácil de usar.
Esses recursos podem ajudar os desenvolvedores a criar grandes modelos de linguagem personalizados com mais rapidez e precisão para atender às diferentes necessidades de vários setores.
Processamento em lote em voo
Modelos de linguagem grandes são usados em uma ampla variedade de aplicações atualmente.
Um único modelo pode ser usado simultaneamente para diversas tarefas aparentemente díspares — desde simples respostas de perguntas e respostas em um chatbot até o resumo de documentos ou a geração de longos blocos de código. As cargas de trabalho são altamente dinâmicas e os tamanhos de saída precisam ser de ordens de magnitude variadas para atender às demandas da tarefa.
A diversidade de tarefas pode dificultar o processamento eficaz de solicitações em lote e a execução paralela eficiente, possivelmente fazendo com que algumas solicitações sejam concluídas mais cedo do que outras.
Para gerenciar essas cargas dinâmicas, o TensorRT-LLM inclui uma tecnologia de agendamento otimizada chamada "batch em andamento".
Seu princípio básico é que todo o processo de geração de texto de um modelo de linguagem grande pode ser dividido em múltiplas iterações de execução no modelo.
Com o lote em andamento, o tempo de execução do TensorRT-LLM libera imediatamente as sequências concluídas do lote, em vez de esperar que o lote inteiro seja concluído antes de passar para o próximo conjunto de solicitações.
Enquanto uma nova solicitação está sendo executada, outras solicitações do lote anterior que não foram concluídas ainda estão sendo processadas.
O lote em andamento e as otimizações adicionais em nível de kernel melhoram a utilização da GPU e podem pelo menos dobrar o rendimento do benchmark de solicitação LLM real no H100.
Motor H100Transformer usando FP8
O TensorRT-LLM também fornece uma função chamada H100TransformerEngine, que pode reduzir efetivamente o consumo de memória e a latência durante a inferência de modelos grandes.
Como o LLM contém bilhões de pesos de modelo e funções de ativação, ele geralmente é treinado e representado com valores FP16 ou BF16, cada um ocupando 16 bits de memória.
No entanto, no momento da inferência, a maioria dos modelos pode ser representada de forma eficiente e com menor precisão usando técnicas de quantização, como números inteiros de 8 ou mesmo 4 bits (INT8 ou INT4).
A quantização é o processo de redução dos pesos do modelo e da precisão de ativação sem sacrificar a precisão. Usar menor precisão significa que cada parâmetro é menor e o modelo ocupa menos espaço na memória da GPU.
Isso permite inferência em modelos maiores usando o mesmo hardware, gastando menos tempo em operações de memória durante a execução.
Por meio da tecnologia H100TransformerEngine, o H100GPU emparelhado com TensorRT-LLM permite aos usuários converter facilmente os pesos do modelo para o novo formato FP8 e compilar automaticamente o modelo para aproveitar as vantagens do kernel FP8 otimizado.
E este processo não requer nenhuma codificação! O formato de dados FP8 introduzido pelo H100 permite que os desenvolvedores quantifiquem seus modelos e reduzam drasticamente o consumo de memória sem reduzir a precisão do modelo.
Em comparação com outros formatos de dados, como INT8 ou INT4, a quantização FP8 mantém maior precisão enquanto atinge o desempenho mais rápido e é mais conveniente de implementar.
Como obter o TensorRT-LLM
Embora o TensorRT-LLM ainda não tenha sido lançado oficialmente, os usuários agora podem ter acesso antecipado.
O link do aplicativo é o seguinte:
https://developer.nvidia.com/tensorrt-llm-early-access/join
A NVIDIA também disse que o TensorRT-LLM será integrado à estrutura NVIDIA NeMo em breve.
Esta estrutura faz parte do AIEnterprise, que a NVIDIA lançou recentemente, fornecendo aos clientes corporativos uma plataforma de software de IA de nível empresarial segura, estável e altamente gerenciável.
Desenvolvedores e pesquisadores podem acessar o TensorRT-LLM por meio da estrutura NeMo no NVIDIA NGC ou como um projeto no GitHub.
No entanto, deve-se observar que os usuários devem se registrar no NVIDIA Developer Program para solicitar a versão de acesso antecipado.
Discussão acalorada entre internautas
Internautas no Reddit lançaram uma discussão acalorada sobre o lançamento do TensorRT-LLM.
É difícil imaginar o quanto o efeito será melhorado após a otimização do hardware especificamente para LLM.
Mas alguns internautas acreditam que o objetivo disso é ajudar Lao Huang a vender mais H100s.
No entanto, alguns internautas não concordam muito. Ele acha que o TensorRT também é útil para usuários que implantam SD localmente, portanto, desde que haja uma GPU RTX, será possível se beneficiar de produtos semelhantes no futuro.
De uma perspectiva mais macro, talvez para o LLM, também haverá uma série de otimizações no nível de hardware, e até mesmo hardware projetado especificamente para o LLM aparecerá no futuro para melhorar o desempenho do LLM. Na verdade, isso aconteceu em muitos aplicativos populares e o LLM não é exceção.