SCBench: Uma Análise Centrada em Cache KV de Métodos de Longo Contexto
SCBench: A KV Cache-Centric Analysis of Long-Context Methods
December 13, 2024
Autores: Yucheng Li, Huiqiang Jiang, Qianhui Wu, Xufang Luo, Surin Ahn, Chengruidong Zhang, Amir H. Abdi, Dongsheng Li, Jianfeng Gao, Yuqing Yang, Lili Qiu
cs.AI
Resumo
Os LLMs de longo contexto possibilitaram inúmeras aplicações downstream, mas também introduziram desafios significativos relacionados à eficiência computacional e de memória. Para lidar com esses desafios, foram desenvolvidas otimizações para inferência de longo contexto, centradas em torno do cache KV. No entanto, os benchmarks existentes frequentemente avaliam em solicitação única, negligenciando o ciclo de vida completo do cache KV em uso do mundo real. Essa omissão é particularmente crítica, uma vez que a reutilização do cache KV se tornou amplamente adotada em frameworks de inferência de LLMs, como vLLM e SGLang, bem como por provedores de LLMs, incluindo OpenAI, Microsoft, Google e Anthropic. Para abordar essa lacuna, apresentamos o SCBench (SharedContextBench), um benchmark abrangente para avaliar métodos de longo contexto de uma perspectiva centrada no cache KV: 1) geração de cache KV, 2) compressão de cache KV, 3) recuperação de cache KV, 4) carregamento de cache KV. Especificamente, o SCBench utiliza exemplos de teste com contexto compartilhado, abrangendo 12 tarefas com dois modos de contexto compartilhado, cobrindo quatro categorias de capacidades de longo contexto: recuperação de string, recuperação semântica, informação global e multi-tarefa. Com ele, fornecemos uma análise abrangente centrada no cache KV de oito categorias de soluções de longo contexto, incluindo RNNs Lineares com Portões, híbridos Mamba-Attention e métodos eficientes como atenção esparsa, descarte de cache KV, quantização, recuperação, carregamento e compressão de prompt. A avaliação é realizada em 8 LLMs de longo contexto. Nossas descobertas mostram que métodos de memória sub-O(n) sofrem em cenários de múltiplas interações, enquanto a codificação esparsa com memória O(n) e computação de pré-preenchimento sub-O(n^2) têm desempenho robusto. A esparsidade dinâmica proporciona caches KV mais expressivos do que padrões estáticos, e a esparsidade em nível de camada em arquiteturas híbridas reduz o uso de memória com forte desempenho. Além disso, identificamos problemas de deslocamento na distribuição de atenção em cenários de geração longa. https://aka.ms/SCBench.
English
Long-context LLMs have enabled numerous downstream applications but also
introduced significant challenges related to computational and memory
efficiency. To address these challenges, optimizations for long-context
inference have been developed, centered around the KV cache. However, existing
benchmarks often evaluate in single-request, neglecting the full lifecycle of
the KV cache in real-world use. This oversight is particularly critical, as KV
cache reuse has become widely adopted in LLMs inference frameworks, such as
vLLM and SGLang, as well as by LLM providers, including OpenAI, Microsoft,
Google, and Anthropic. To address this gap, we introduce
SCBench(SharedContextBench), a comprehensive benchmark for evaluating
long-context methods from a KV cachecentric perspective: 1) KV cache
generation, 2) KV cache compression, 3) KV cache retrieval, 4) KV cache
loading. Specifically, SCBench uses test examples with shared context, ranging
12 tasks with two shared context modes, covering four categories of
long-context capabilities: string retrieval, semantic retrieval, global
information, and multi-task. With it, we provide an extensive KV cache-centric
analysis of eight categories long-context solutions, including Gated Linear
RNNs, Mamba-Attention hybrids, and efficient methods such as sparse attention,
KV cache dropping, quantization, retrieval, loading, and prompt compression.
The evaluation is conducted on 8 long-context LLMs. Our findings show that
sub-O(n) memory methods suffer in multi-turn scenarios, while sparse encoding
with O(n) memory and sub-O(n^2) pre-filling computation perform robustly.
Dynamic sparsity yields more expressive KV caches than static patterns, and
layer-level sparsity in hybrid architectures reduces memory usage with strong
performance. Additionally, we identify attention distribution shift issues in
long-generation scenarios. https://aka.ms/SCBench.Summary
AI-Generated Summary