Com a ampla adoção de modelos de linguagem grandes (LLMs) em aplicações modernas de inteligência artificial, ferramentas como chatbots e geradores de código dependem da capacidade desses modelos. No entanto, os problemas de eficiência no processo de raciocínio também se tornam cada vez mais evidentes.

Especialmente no tratamento de mecanismos de atenção, como FlashAttention e SparseAttention, eles frequentemente se mostram inadequados ao lidar com cargas de trabalho diversificadas, padrões de entrada dinâmicos e restrições de recursos de GPU. Esses desafios, juntamente com alta latência e gargalos de memória, exigem soluções mais eficientes e flexíveis para suportar a inferência de LLM escalonável e responsiva.

Para resolver esse problema, pesquisadores da Universidade de Washington, NVIDIA, Perplexity AI e Carnegie Mellon University desenvolveram em conjunto o FlashInfer, uma biblioteca e gerador de kernels de IA projetado especificamente para inferência de LLM. O FlashInfer fornece implementações de kernel de GPU de alto desempenho, abrangendo vários mecanismos de atenção, incluindo FlashAttention, SparseAttention, PageAttention e amostragem. Seu design enfatiza flexibilidade e eficiência, com o objetivo de enfrentar os desafios cruciais nos serviços de inferência de LLM.

image.png

As características técnicas do FlashInfer incluem:

1. Kernels de atenção abrangentes: suporta vários mecanismos de atenção, incluindo preenchimento antecipado, decodificação e atenção de anexação, compatível com vários formatos de KV-cache, melhorando o desempenho em cenários de solicitação única e serviço em lote.

2. Decodificação de prefixo compartilhado otimizada: por meio da atenção de consulta de agrupamento (GQA) e da atenção de incorporação de posição rotacional (RoPE) integrada, o FlashInfer alcança uma melhoria significativa na velocidade, por exemplo, sendo 31 vezes mais rápido que a implementação Page Attention do vLLM na decodificação de prompts longos.

3. Escalonamento de balanceamento de carga dinâmico: o escalonador do FlashInfer pode se ajustar dinamicamente de acordo com as mudanças de entrada, reduzindo o tempo ocioso da GPU e garantindo uma utilização eficiente. Sua compatibilidade com CUDA Graphs melhora ainda mais sua adequação em ambientes de produção.

image.png

Em termos de desempenho, o FlashInfer se destaca em vários testes de referência, reduzindo significativamente a latência, especialmente no processamento de inferência de contexto longo e tarefas de geração paralela. Em uma GPU NVIDIA H100, o FlashInfer alcançou uma melhoria de velocidade de 13-17% em tarefas de geração paralela. Seu escalonador dinâmico e kernels otimizados melhoraram significativamente a largura de banda e a utilização de FLOP, especialmente em casos de comprimento de sequência desigual ou uniforme.

O FlashInfer fornece uma solução viável e eficiente para os desafios de inferência de LLM, melhorando significativamente o desempenho e a eficiência do uso de recursos. Seu design flexível e capacidade de integração o tornam uma ferramenta importante para impulsionar o desenvolvimento de estruturas de serviço de LLM. Como um projeto de código aberto, o FlashInfer incentiva a colaboração e inovação adicionais na comunidade de pesquisa, garantindo melhorias contínuas e adaptação a novos desafios na área de infraestrutura de IA.

Entrada do projeto: https://github.com/flashinfer-ai/flashinfer

Destaques:

🌟 FlashInfer é uma nova biblioteca de IA lançada, projetada para inferência de modelos de linguagem grandes, capaz de melhorar significativamente a eficiência.

⚡ A biblioteca suporta vários mecanismos de atenção, otimiza o uso de recursos da GPU e reduz a latência de inferência.

🚀 FlashInfer, como um projeto de código aberto, convida pesquisadores a participar e impulsionar a inovação e o desenvolvimento da infraestrutura de IA.