14 pontos por darjeeling 2025-09-02 | Ainda não há comentários. | Compartilhar no WhatsApp

Para mais detalhes, consulte o link da URL. Este é um resumo.

O principal desafio no serving de LLMs (modelos de linguagem de grande porte) é gerenciar com eficiência a memória do KV cache (Key-Value Cache). Sistemas tradicionais tinham limitações como a queda na utilização da GPU e throughput restrito devido ao problema de fragmentação de memória.

O vLLM resolve esse problema com o algoritmo PagedAttention, inspirado em técnicas de memória virtual e paginação (Paging) de sistemas operacionais. O PagedAttention gerencia o KV cache dividindo-o em unidades de “blocos” fisicamente não contíguos, reduzindo drasticamente o desperdício de memória e permitindo uma alocação de memória mais flexível.

Com base nesse PagedAttention, o vLLM implementa as seguintes tecnologias centrais para maximizar o desempenho de inferência.

  • Batching contínuo (Continuous Batching): funciona de forma dinâmica, adicionando requisições ao batch assim que chegam e removendo do batch as sequências concluídas. Com isso, minimiza o tempo ocioso da GPU e melhora o throughput em até 24 vezes em comparação com o batching estático tradicional.

  • Suporte a recursos avançados de inferência: o vLLM aproveita a flexibilidade do PagedAttention para oferecer suporte eficiente a vários recursos avançados, como os abaixo.

    • Prefill em chunks (Chunked Prefill): divide a etapa de prefill de prompts longos em vários chunks para evitar que uma única requisição monopolize o sistema e para melhorar a latência de outras requisições.
    • Cache de prefixo (Prefix Caching): compartilha, sem recálculo, o KV cache de prefixos de prompt compartilhados entre várias requisições, eliminando operações redundantes.
    • Decodificação guiada e especulativa (Guided and Speculative Decoding): oferece suporte a técnicas que controlam a saída para seguir um formato específico (por exemplo, JSON) ou aceleram a geração usando um modelo rascunho menor.
    • Prefill/decoding desagregado (Disaggregated Prefill/Decoding): processa separadamente, em instâncias distintas, a etapa de prefill intensiva em computação e a etapa de decoding intensiva em largura de banda de memória, otimizando o uso de recursos.

Em resumo, o vLLM resolve ineficiências fundamentais no gerenciamento de KV cache por meio do PagedAttention e, com base nisso, aplica técnicas de otimização como batching contínuo para elevar o throughput e o desempenho de sistemas de inferência de LLMs.

Ainda não há comentários.

Ainda não há comentários.