O que é vLLM?

Copiar URL

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. 

Conheça o Red Hat AI

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.

Descubra mais sobre a inferência de IA

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

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. 

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. 

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.

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.

Leia mais sobre o Red Hat OpenShift AI

Inteligência artificial da Red Hat

Assuma o controle do seu futuro utilizando as plataformas open source da Red Hat para criar, implantar e monitorar modelos e aplicações de IA.

Leia mais

O que é ajuste fino de parâmetros com eficiência (PEFT)?

O PEFT é um conjunto de técnicas que ajusta apenas uma parte dos parâmetros em um LLM para economizar recursos.

LoRA e QLoRA

A adaptação de baixa classificação (LoRA) e a adaptação quantizada de baixa classificação (QLoRA) são técnicas de treinamento de modelos de IA.

O que é inferência de IA?

A inferência de IA é quando um modelo de IA fornece uma resposta baseada em dados. É a etapa final de um processo complexo da tecnologia de machine learning (aprendizado de máquina).

IA/ML: leitura recomendada

Produto em destaque

  • Red Hat OpenShift AI

    Uma plataforma de inteligência artificial (IA) que fornece ferramentas para desenvolver, treinar, servir e monitorar rapidamente modelos e aplicações habilitadas para IA.