Home
Login

vllm é uma biblioteca rápida e fácil de usar para inferência rápida de modelos de linguagem grandes.

Apache-2.0Python 49.6kvllm-project Last Updated: 2025-06-14

vLLM: Motor de Inferência e Serviço de LLM Rápido e Fácil de Usar

Introdução:

vLLM é uma biblioteca Python de alto rendimento e eficiente para inferência e serviço de modelos de linguagem grandes (LLMs). Ele foi projetado para simplificar a implantação de LLMs e aumentar significativamente a velocidade de inferência, ao mesmo tempo em que reduz os custos. O vLLM se concentra na otimização do gerenciamento de memória e agendamento para alcançar um desempenho excepcional.

Principais Características:

  • PagedAttention: A principal inovação do vLLM é o algoritmo PagedAttention. Os mecanismos de atenção tradicionais exigem o armazenamento de todas as chaves e valores anteriores para cada token, o que leva a uma grande ocupação de memória, especialmente em sequências longas. O PagedAttention divide as chaves e valores de atenção em páginas, semelhante à paginação de memória virtual em sistemas operacionais. Isso permite que o vLLM gerencie e compartilhe dinamicamente a memória de atenção, reduzindo significativamente o desperdício de memória e suportando sequências mais longas e tamanhos de lote maiores.

  • Lote Contínuo: O vLLM suporta lote contínuo, o que significa que ele pode combinar dinamicamente tokens de diferentes solicitações em um lote para processamento. Isso maximiza a utilização dos recursos da GPU e aumenta o rendimento.

  • Kernels CUDA Eficientes: O vLLM usa kernels CUDA altamente otimizados para implementar o PagedAttention e outras operações. Esses kernels são cuidadosamente projetados para aproveitar ao máximo o poder de processamento paralelo da GPU.

  • Fácil de Usar: O vLLM oferece uma API Python simples e fácil de usar, que pode ser facilmente integrada em aplicativos LLM existentes. Ele também suporta várias estruturas LLM populares, como o Hugging Face Transformers.

  • Suporte a Múltiplas Arquiteturas de Modelo: O vLLM suporta várias arquiteturas LLM populares, incluindo:

    • Llama 2
    • Llama
    • Mistral
    • MPT
    • Falcon
    • GPT-2
    • GPT-J
    • GPTNeoX
    • Mais modelos estão sendo adicionados.
  • Inferência Distribuída: O vLLM suporta inferência distribuída, permitindo que você dimensione a inferência de LLM em várias GPUs.

  • Paralelismo de Tensor: Suporte para paralelismo de tensor, melhorando ainda mais o desempenho da inferência distribuída.

  • Saída Streaming: O vLLM suporta saída streaming, permitindo que você receba tokens assim que forem gerados, sem precisar esperar que toda a sequência seja concluída.

  • Compatibilidade com a API OpenAI: O vLLM fornece um servidor compatível com a API OpenAI, facilitando a migração ou integração do OpenAI.

Principais Vantagens:

  • Maior Rendimento: O vLLM pode aumentar significativamente o rendimento em comparação com os métodos tradicionais de inferência de LLM, geralmente em 10 vezes ou mais.
  • Menor Latência: O vLLM pode reduzir a latência, proporcionando tempos de resposta mais rápidos.
  • Menor Custo: Ao aumentar a utilização da GPU, o vLLM pode reduzir o custo da inferência de LLM.
  • Suporte a Sequências Mais Longas: O PagedAttention permite que o vLLM processe sequências mais longas sem ficar sem memória.
  • Fácil de Implantar: O vLLM pode ser facilmente implantado em vários ambientes, incluindo servidores em nuvem, máquinas locais e dispositivos de borda.

Instalação:

O vLLM pode ser instalado usando o pip:

pip install vllm

Início Rápido:

Aqui está um exemplo simples de como usar o vLLM para geração de texto:

from vllm import LLM, SamplingParams

# Carrega o modelo
llm = LLM(model="facebook/opt-125m")

# Define os parâmetros de amostragem
sampling_params = SamplingParams(temperature=0.8, top_p=0.95, max_tokens=256)

# Gera o texto
prompts = ["Hello, my name is", "The capital of France is"]
outputs = llm.generate(prompts, sampling_params)

# Imprime a saída
for output in outputs:
    print(output.prompt)
    print(output.outputs[0].text)

Casos de Uso:

O vLLM é adequado para uma variedade de aplicações LLM, incluindo:

  • Chatbots: Construir chatbots de alto desempenho que podem lidar com conversas complexas.
  • Geração de Texto: Gerar texto de alta qualidade para vários fins, como criação de conteúdo, geração de código e resumo.
  • Tradução Automática: Fornecer serviços de tradução automática rápidos e precisos.
  • Perguntas e Respostas: Construir sistemas de perguntas e respostas que podem responder a perguntas complexas.
  • Preenchimento de Código: Fornecer sugestões de preenchimento de código rápidas e precisas.

Contribuição:

O vLLM é um projeto de código aberto e as contribuições da comunidade são bem-vindas. Você pode participar enviando problemas, propondo solicitações de recursos ou enviando solicitações de pull.

Resumo:

O vLLM é um poderoso motor de inferência e serviço de LLM que oferece desempenho, facilidade de uso e flexibilidade excepcionais. Se você está construindo chatbots, gerando texto ou executando outras tarefas de LLM, o vLLM pode ajudá-lo a aumentar a eficiência e reduzir os custos. Seu mecanismo PagedAttention é sua principal inovação, permitindo que ele processe sequências longas e alcance alto rendimento. É altamente recomendável que você experimente o vLLM e veja como ele pode melhorar seu fluxo de trabalho de LLM.

Para todos os detalhes, consulte o site oficial (https://github.com/vllm-project/vllm)