Tópicos populares
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Você está em uma entrevista de Cientista de Pesquisa na OpenAI.
O entrevistador pergunta:
"Como você expandiria o comprimento do contexto de um LLM de 2K para 128K tokens?"
Você: "Vou ajustar o modelo em documentos mais longos com 128K de contexto."
Entrevista encerrada.
Aqui está o que você perdeu:
Aumentar a janela de contexto não se trata apenas de matrizes maiores.
Num transformador tradicional, expandir os tokens em 8x aumenta as necessidades de memória em 64x devido à complexidade quadrática da atenção. Consulte a imagem abaixo!
Então, como gerimos isso?
continuar...👇

1) Atenção Esparsa
Limita o cálculo de atenção a um subconjunto de tokens ao:
- Usar atenção local (tokens atendem apenas aos seus vizinhos).
- Permitir que o modelo aprenda em quais tokens se concentrar.
Mas isso tem um compromisso entre complexidade computacional e desempenho.

Uma ideia semelhante foi utilizada no ModernBERT.
→ Atenção global completa a cada 3ª camada
→ Atenção local (128 tokens) de outra forma
Resultado:
- 16x maior comprimento de sequência
- Desempenho muito melhor
- Codificador mais eficiente em termos de memória
Simples, mas poderoso.

Aqui está uma explicação intuitiva retirada do artigo:
Imagine-se lendo um livro. Para cada frase que você lê, precisa estar totalmente ciente de toda a trama para entender a maior parte dela (atenção global total)?
Ou a consciência do capítulo atual é suficiente (atenção local), desde que você ocasionalmente pense sobre sua importância para a trama principal (atenção global)?
Na grande maioria dos casos, é a última.
2) Flash Attention
Este é um método rápido e eficiente em termos de memória que mantém a exatidão dos mecanismos de atenção tradicionais, ou seja, utiliza atenção global, mas de forma eficiente.
Toda a ideia gira em torno da otimização do movimento de dados dentro da memória da GPU.
Vamos entender!

Alguns detalhes de fundo:
- Um thread é a menor unidade de execução.
- Vários threads formam um bloco.
Além disso:
- Threads em um bloco compartilham uma memória rápida (mas escassa) chamada SRAM.
- Todos os blocos compartilham uma memória global chamada HBM (abundante, mas lenta).
Verifique isto 👇

A atenção move grandes matrizes entre SRAM e HBM:
Para calcular QK:
- distribuir matrizes para threads
- calcular, e
- enviar o produto para HBM
Para calcular softmax:
- distribuir o produto para threads
- calcular, e
- enviar a saída para HBM
Repetir para todas as camadas.
Verifique isto 👇

A atenção flash envolve otimizações a nível de hardware, onde utiliza SRAM para armazenar em cache os resultados intermédios.
Desta forma, reduz movimentos redundantes, oferecendo um aumento de velocidade de até 7,6x em relação aos métodos de atenção padrão.
Verifique isto 👇

3) DeepSeek Sparse Attention (DSA)
O novo modelo V3.2 da DeepSeek introduz o DeepSeek Sparse Attention (DSA), que reduz a complexidade de O(L²) para O(Lk), onde k é fixo.
Como funciona:
Um indexador Lightning leve classifica quais tokens realmente importam para cada consulta.
Pequeno número de cabeças, funciona em FP8, computacionalmente barato.
Em seguida, um mecanismo de seleção recupera apenas as entradas chave-valor top-k.
A grande percepção é que apenas 2048 tokens são selecionados por consulta, independentemente do comprimento do contexto.
Assim, o cálculo de atenção caro acontece neste pequeno subconjunto, e não na sequência completa de 128K.

Com 128K de contexto, os custos de pré-preenchimento caem de ~$0.65 para ~$0.35 por milhão de tokens. E a decodificação cai de ~$2.4 para ~$0.8.
E o desempenho permanece o mesmo. Em alguns benchmarks de longo contexto, a V3.2 na verdade pontua mais alto.
A atenção esparsa não é nova. Mas fazê-la funcionar sem perder qualidade é difícil.
Quais são algumas outras técnicas para aumentar os comprimentos de contexto dos LLMs?

152,6K
Top
Classificação
Favoritos

