O que é vLLM?
O vLLM, que significa modelo de linguagem de larga escala, é uma biblioteca de código open source mantida pela comunidade de vLLM. Ele ajuda os Large Language Models (LLMs) a fazer cálculos com mais eficiência e em escala.
Especificamente, o vLLM é um servidor de inferência que acelera as respostas de aplicações de IA generativa ao utilizar a memória da GPU de forma mais eficiente.
Como o vLLM funciona?
Para compreender o valor dos vLLMs, é importante entender seu funcionamento básico e o que um servidor de inferência faz. A partir daí, podemos analisar melhor qual é o papel do vLLM na melhoria do desempenho dos modelos de linguagem existentes.
O que é um servidor de inferência?
Um servidor de inferência é um software que ajuda um modelo de IA a chegar a novas conclusões com base em um treinamento prévio. Os servidores de inferência alimentam as solicitações de entrada usando um modelo de machine learning (aprendizado de máquina) e retornam uma resposta.
Inferir é chegar a uma conclusão com base em evidências. Se você vê a luz da sala de um amigo acesa, mas não vê o amigo, você pode inferir que ele está em casa, mas não tem evidências absolutas para provar isso.
Um modelo de linguagem também não possui evidências absolutas sobre o significado de uma palavra ou frase (é apenas um software), por isso usa o treinamento como evidência. Em uma série de cálculos baseados em dados, é gerada uma conclusão. Por exemplo, quando você entende que o seu amigo não está em casa porque a luz está apagada.
LLMs usam a matemática para chegar a conclusões
Quando um LLM é treinado, ele aprende por cálculos matemáticos. Quando um LLM gera uma resposta (inferência), ele realiza uma série de cálculos de probabilidade (mais matemática).
Para um LLM compreender o que você está solicitando, o modelo precisa entender como as palavras se relacionam e como fazer associações entre elas. Em vez de aprender sobre semântica e raciocinar usando palavras como os humanos fazem, os LLMs "raciocinam" com… Isso mesmo, matemática.
Quando um LLM responde a milhões de usuários por dia, ele faz uma infinidade de cálculos. Processar todos esses cálculos de uma vez enquanto uma aplicação está ativa pode ser um desafio. Tradicionalmente, o processamento envolvido na execução de um LLM pode consumir rapidamente uma parte significativa da memória.
Inteligência artificial da Red Hat
vLLM usa PagedAttention para processar cálculos com mais eficiência
O estudo de referência Efficient Memory Management for Large Language Model Serving with PagedAttention revelou que os atuais sistemas de gerenciamento de memória para LLMs não realizam os cálculos de forma mais eficiente. PagedAttention é uma técnica de gerenciamento de memória apresentada pelo vLLM e inspirada na memória virtual e nos sistemas de paginação dos sistemas operacionais.
Essa pesquisa reconhece como o cache (memória de curto prazo de um LLM) de chave-valor (KV) aumenta e diminui durante o processamento e oferece o vLLM como uma solução para gerenciar o espaço e a capacidade computacional com mais estabilidade.
O vLLM funciona como um conjunto de instruções que incentiva o KV cache a criar atalhos agrupando continuamente as respostas dos usuários em "lotes".
Antes de seguirmos, vamos definir rapidamente KV cache e lote contínuo.
O que é KV cache?
KV significa "chave-valor". Chave-valor se refere à maneira como um LLM formula o significado de uma palavra ou frase. Imagine que você está processando a chave-valor de um item em um cardápio: as batatas fritas (chave) custam US$ 3,99 (valor). Então, quando o atendente registra um pedido de batatas fritas, o "valor" computado para essa "chave" é US$ 3,99. Os LLMs processam KVs da mesma forma, já que mantêm o valor correspondente de cada chave (ou token) em cache.
Cache se refere a um armazenamento de memória de curto prazo. Pense no seu computador: quando ele está lento, uma prática comum é a de "limpar o cache" para agilizar o processamento.
O que é lote contínuo?
O lote contínuo é uma técnica usada para processar várias consultas ao mesmo tempo com o objetivo de melhorar a eficiência geral do processamento.
Considere o seguinte: um chatbot recebe milhares de consultas por minuto, e muitas delas são questões semelhantes, como "qual é a capital da Índia?" e "qual é a capital da Irlanda?". As duas consultas incluem as palavras "qual é a capital da", que é uma sequência de tokens (palavras) em que o LLM precisa se basear para fazer vários cálculos e gerar um significado.
Com o vLLM, o chatbot pode armazenar essa sequência de tokens ("qual é a capital da") em uma memória de curto prazo (KV cache) e enviar apenas uma "solicitação de tradução" em vez de duas.
Em outras palavras, em vez de gerar uma resposta totalmente nova, os vLLMs permitem que o KV cache guarde a memória e crie atalhos para novas consultas parecidas com cálculos já computados. Processar os cálculos de consultas semelhantes em lote, em vez de individualmente, melhora o rendimento e otimiza a alocação da memória.
Como o vLLM pode ajudar sua organização?
O vLLM permite que as organizações "façam mais com menos" em um mercado onde o hardware necessário para aplicações baseadas em LLM custa caro.
Desenvolver serviços de LLM econômicos e confiáveis exige uma capacidade computacional significativa, recursos energéticos e habilidades operacionais especializadas. Esses desafios acabam inviabilizando para muitas organizações os benefícios de uma IA personalizada, pronta para implantação e com foco na segurança.
O vLLM e o PagedAttention, algoritmo em que é baseado, têm como objetivo enfrentar esses desafios fazendo um uso mais eficiente do hardware necessário para executar cargas de trabalho de IA.
Benefícios do vLLM
Usar o vLLM como servidor de inferência para LLMs gera benefícios como:
Respostas mais rápidas: segundo alguns cálculos, o vLLM tem um rendimento (quantidade de dados que um LLM consegue processar) até 24 vezes maior em comparação com a popular biblioteca open source Hugging Face Transformers.
Redução nos custos de hardware: um uso mais eficiente dos recursos significa que menos GPUs são necessárias para lidar com o processamento de LLMs.
Escalabilidade: os vLLMs organizam a memória virtual para a GPU lidar com mais solicitações simultâneas dos usuários.
Privacidade de dados: auto-hospedar um LLM com vLLM oferece mais controle sobre a privacidade e o uso dos dados do que um serviço ou aplicação de LLM de terceiros, como o ChatGPT.
Inovação open source: o envolvimento da comunidade na manutenção e no desenvolvimento contínuo do vLLM permite melhorias constantes no código. A transparência sobre como os usuários podem acessar e modificar o código oferece liberdade para que os desenvolvedores utilizem o vLLM da maneira que melhor atenda às suas necessidades.
Por que o vLLM está se tornando um padrão de aprimoramento do desempenho dos LLMs?
O PagedAttention é o principal algoritmo originado do vLLM. No entanto, ele não é o único recurso que o vLLM oferece. Outras otimizações de desempenho que o vLLM pode proporcionar são:
- PyTorch Compile/CUDA Graph: otimiza a memória da GPU.
- Quantização: reduz o espaço de memória necessário para executar modelos.
- Paralelismo de tensores: divide o trabalho de processamento entre várias GPUs.
- Decodificação especulativa: acelera a geração de texto usando um modelo menor para prever tokens e um maior para validar a previsão.
- Flash Attention: melhora a eficiência dos modelos de transformadores.
Além dos recursos de otimização que o vLLM oferece, sua flexibilidade também o ajudou a se tornar popular. O vLLM funciona com modelos de linguagem de pequena e larga escala e se integra a modelos e frameworks amplamente utilizados. Por fim, a natureza open source do vLLM permite transparência de código, personalização e correções de bugs mais rápidas.
LoRA e QLoRA são técnicas de ajuste fino que ajudam os usuários a otimizar os custos e calcular os recursos.
Gerencie sua IA do jeito open source
O portfólio do Red Hat® AI utiliza a inovação open source para enfrentar os desafios da IA empresarial em larga escala, e o vLLM é uma ferramenta essencial em nosso conjunto de soluções.
O vLLM é um dos vários runtimes de inferência oferecidos com o Red Hat® OpenShift® AI.
O OpenShift AI é uma plataforma MLOps flexível e escalável, com ferramentas para criar, implantar e gerenciar aplicações usando inteligência artificial. O OpenShift AI oferece suporte ao ciclo de vida completo de modelos e testes de IA/ML, tanto on-premises quanto na nuvem pública.