← Últimos artigos
💬 NLP

CompactAttention: Accelerating Chunked Prefill with Block-Union KV Selection

CompactAttention acelera o prefill em blocos em modelos de linguagem grandes de contexto longo ao introduzir um mecanismo de Seleção KV de União de Blocos que converte máscaras esparsas em blocos 2D em tabelas de blocos KV por grupo eficientes e conscientes de GQA, permitindo assim acesso à memória in-place sem compactação explícita, mantendo precisão próxima à densa e alcançando até 2,72× de aceleração.

Autores originais: Jiwon Song, Dongwon Jo, Beomseok Kang, Jae-Joon Kim

Publicado 2026-05-19
📖 5 min de leitura🧠 Leitura aprofundada

Autores originais: Jiwon Song, Dongwon Jo, Beomseok Kang, Jae-Joon Kim

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

Imagine que você é um bibliotecário (a IA) tentando responder a uma pergunta com base em uma biblioteca massiva de livros (o contexto). No passado, se você tivesse uma biblioteca enorme, teria que ler cada livro individualmente para encontrar a resposta certa, o que levava uma eternidade. Para acelerar isso, pesquisadores inventaram um sistema de "prefill em blocos": em vez de ler toda a biblioteca de uma vez, você a lê em pequenos lotes (blocos), adicionando anotações a um bloco de notas (o cache KV) conforme avança.

No entanto, surgiu um novo problema: Como encontrar rapidamente as páginas certas no seu bloco de notas sem ler tudo novamente cada vez que você recebe um novo lote de perguntas?

Este artigo apresenta o CompactAttention, uma nova maneira de resolver esse problema. Veja como funciona, usando analogias simples:

O Problema com os Métodos Antigos

O artigo identifica duas principais formas pelas quais as pessoas tentaram resolver isso e por que falharam:

  1. A Abordagem de "Kernel Esparsos" (O Scanner Ineficiente):

    • A Ideia: Imagine que você tem um mapa da biblioteca com pontos vermelhos marcando apenas os livros importantes. Você tenta ignorar os espaços em branco e olhar apenas para os pontos vermelhos.
    • A Falha: Quando você está lendo uma biblioteca enorme (contexto longo) mas faz apenas uma pergunta pequena (bloco pequeno), esse método fica lento. É como ter um scanner excelente para escanear uma parede inteira de texto, mas quando você tem apenas uma frase, o scanner leva muito tempo para configurar e calibrar. A sobrecarga de "pular" os espaços em branco na verdade o torna mais lento do que simplesmente ler tudo.
  2. A Abordagem de "Amostragem de Consultas" (O Bibliotecário Preguiçoso):

    • A Ideia: Em vez de verificar todas as perguntas, você escolhe apenas algumas perguntas aleatórias do seu lote, encontra os livros importantes para essas e assume que esses livros são importantes para todos.
    • A Falha: Isso é arriscado. Se você escolher as perguntas erradas, pode perder um livro crucial que apenas uma pergunta específica precisava. Além disso, uma vez que você escolhe esses livros, precisa carregá-los fisicamente das prateleiras para uma mesa especial antes de poder lê-los. Esse "carregar" (copiar dados) leva muito tempo e energia.

A Solução: CompactAttention

O CompactAttention muda o jogo ao separar encontrar os livros de lê-los.

Etapa 1: A Estratégia de "União" (Agrupamento da Busca)

Em vez de tentar executar uma complexa "lista de pulos" (kernel esparso) ou chutar com base em algumas perguntas, o CompactAttention usa um truque inteligente de agrupamento:

  • Imagine que você tem uma equipe de detetives (cabeças de consulta) trabalhando em um caso. Cada detetive tem sua própria lista de "suspeitos" (blocos KV) que acha importantes.
  • Em vez de deixar cada detetive trabalhar sozinho, o CompactAttention diz: "Vamos combinar todos os suspeitos de toda a equipe em uma lista mestre."
  • Isso é feito em duas etapas:
    1. União de Blocos Q: Combina as listas para todas as perguntas no lote atual.
    2. União Intra-Grupo: Combina as listas para os detetives que trabalham juntos.
  • O Resultado: Você obtém uma única "Lista Mestre" mínima de suspeitos que cobre as necessidades de todos. Nenhum livro importante fica de fora porque, se qualquer detetive precisou dele, ele está na lista.

Etapa 2: A Execução "Zero-Copy" (Leitura no Local)

Esta é a parte mágica.

  • Jeito Antigo: Uma vez que você tem sua Lista Mestre, precisa mover fisicamente todos esses livros das prateleiras para uma mesa especial para poder lê-los rapidamente. Esse "mover" leva tempo.
  • Jeito CompactAttention: Você não move os livros de jeito nenhum. Você apenas entrega ao bibliotecário um mapa (metadados) que diz: "Vá à Prateleira A, Fila 3, Livro 5; depois Prateleira B, Fila 1, Livro 2."
  • O bibliotecário (o kernel do computador) vai diretamente para esses pontos nas prateleiras e os lê. Isso é chamado de "Atenção Paginada Zero-Copy". Isso economiza todo o tempo e energia gastos em mover dados.

Por Que Isso é Importante

O artigo testou isso em um modelo de IA massivo (LLaMA-3.1-8B) com um contexto de 128.000 palavras (um documento muito longo).

  • Precisão: Foi tão inteligente quanto ler toda a biblioteca (Atenção Densa). Não perdeu nenhum detalhe crucial.
  • Velocidade: Foi até 2,72 vezes mais rápido do que a maneira padrão de fazer as coisas.

A Conclusão

Pense no CompactAttention como um bibliotecário inteligente que para de tentar reorganizar a biblioteca e usa apenas um cartão de índice perfeito e combinado.

Ao perceber que a "busca" (encontrar os blocos importantes) e a "execução" (lê-los) devem ser separadas, e ao usar um truque de "agrupamento" para garantir que nada seja perdido, eles conseguiram tornar o processamento de documentos longos por IA significativamente mais rápido sem perder nenhuma inteligência. Eles provaram que o gargalo não era apenas quais livros escolher, mas como você se propõe a pegá-los.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →