vLLM PagedAttention: uma revolução no throughput de inferência de LLMs
(aleksagordic.com)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.