Como é que o comprimento do contexto afeta o débito de LLMs locais?

Eva Wong é a Redatora Técnica e e entusiasta residente na ZimaSpace. Uma geek de longa data com paixão por homelabs e software de código aberto, ela é especialista em traduzir conceitos técnicos complexos em guias acessíveis e práticos . Eva acredita que o auto-hospedagem deve ser divertida, não intimidante. Através dos seus tutoriais, ela capacita a comunidade adesmistificar configurações de hardware , desde a construção do seu primeiro NAS até dominar os contêineres Docker., from building their first NAS to mastering Docker containers.

Um contexto mais longo normalmente reduz o débito de LLMs locais ao aumentar a computação de prefill, a memória da cache KV, o trabalho de descodificação e a contenção pela capacidade de sequências concorrentes.

O efeito não corresponde a uma única curva universal de tokens por segundo. O comprimento do prompt aumenta principalmente a fase de prefill, enquanto o contexto ativo crescente faz com que as etapas posteriores de descodificação consultem mais chaves e valores em cache. Se a memória ficar cheia, o servidor poderá aceitar menos pedidos, preemptar sequências, transferir a cache ou rejeitar trabalho, pelo que o débito depende do modelo, do kernel de atenção, do hardware, do escalonador e da combinação de cargas de trabalho.

O comprimento do prompt aumenta o trabalho de prefill antes do primeiro token

Durante o prefill, o modelo processa todos os tokens do prompt para criar estados ocultos e a cache inicial de chaves e valores. O trabalho da atenção padrão cresce rapidamente com o comprimento da sequência, embora os kernels otimizados reduzam o tráfego de memória e os fatores constantes sem tornar a entrada gratuita.

O artigo sobre atenção consciente de E/S apresenta um algoritmo de atenção exata consciente de E/S que reduz as transferências entre níveis de memória da GPU. Os seus ganhos de velocidade mostram por que motivo a escolha do kernel altera a curva, enquanto o contexto subjacente continua a exigir computação e movimentação de memória.

Um servidor que comunique apenas tokens de descodificação por segundo pode ocultar este custo. Para RAG e conversas longas, o tempo até ao primeiro token e os prompts processados por segundo são métricas necessárias, a par do débito de saída. Esta distinção continua visível durante os testes domésticos posteriores.

A cache KV cresce com cada token de contexto ativo

A descodificação autorregressiva armazena chaves e valores dos tokens anteriores para que não sejam recalculados. A memória da cache escala com o comprimento da sequência ativa, o número de camadas, as dimensões, a precisão e o número de sequências concorrentes; por isso, contextos mais longos reduzem o número de pedidos que cabem simultaneamente.

O trabalho do vLLM sobre PagedAttention apresenta o PagedAttention para reduzir a fragmentação da cache KV e permitir uma partilha flexível. Uma melhor alocação aumenta a capacidade utilizável, mas não elimina os bytes necessários para o próprio contexto retido. O resultado intermédio deve continuar a ser inspecionável antes de a automatização avançar.

Quando a capacidade se esgota, os sistemas podem colocar novos pedidos em fila, expulsar ou recalcular a cache, trocá-la para a memória do sistema ou reduzir o lote. Estas políticas podem transformar um benchmark estável de um único utilizador num goodput instável com vários utilizadores. Esse limite deve ser medido separadamente em condições de funcionamento realistas.

As etapas de descodificação leem mais histórico à medida que o contexto cresce

Cada token gerado consulta a cache acumulada, pelo que as leituras da memória e o trabalho de atenção aumentam com o comprimento da sequência. O modelo pode continuar limitado pela largura de banda da memória, e a compressão do contexto ou a quantização da cache trocam poupanças de memória por precisão e suporte do kernel.

O trabalho sobre quantização da cache KV quantiza a cache KV para permitir contextos muito mais longos e identifica explicitamente a capacidade da cache como um estrangulamento dos contextos longos. Isto mostra que o contexto máximo anunciado e o débito eficiente sustentado são propriedades diferentes. A consequência prática surge quando várias fontes competem por um contexto limitado.

O limite de falha consiste em comparar dois contextos enquanto se altera a composição do prompt, o comprimento da saída, a concorrência ou a precisão da cache. A qualidade da recuperação pode melhorar com evidências adicionais, mesmo quando o débito do sistema diminui, pelo que o desempenho e a utilidade da resposta precisam de eixos separados.

Avalie o débito em diferentes intervalos de comprimento do prompt

Crie intervalos fixos de prompts, como 512, 2 048, 8 192 e 16 384 tokens, com comprimentos de saída controlados. Execute cada um com um utilizador e com níveis crescentes de concorrência, registando tokens do prompt por segundo, tokens de saída por segundo, tempo até ao primeiro token, latência entre tokens, utilização da cache, tempo em fila, preempções e falhas.

Compare a curva com a desaceleração das conversas longas descrita na desaceleração da janela de contexto. Mantenha constantes o modelo, a quantização, a amostragem, o escalonador e o hardware e, em seguida, repita apenas com cache de prefixos ou quantização da cache como experiências separadas. Esta dependência deve continuar explícita na interface final.

Defina um orçamento operacional de contexto com base no goodput segundo o objetivo de latência exigido, e não no comprimento máximo aceite pelo modelo. Recupere ou resuma apenas quando o ganho de qualidade resultante justificar o custo medido de prefill e da cache.

Centro de Tecnologia e IA

Mais para Ler

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.