Skip to content

Instantly share code, notes, and snippets.

@infoslack
Last active January 16, 2025 19:34
Show Gist options
  • Save infoslack/32bd7370831e4bc879a5d79a27dabbfc to your computer and use it in GitHub Desktop.
Save infoslack/32bd7370831e4bc879a5d79a27dabbfc to your computer and use it in GitHub Desktop.
Paper Titans do Google (minhas notas)

A proposta do paper publicado pelo Google chamado Titans, propõe uma arquitetura diferente das tradicionais baseadas em transformers e modelos de linguagem de grande escala. Depois de concluir a leitura, esses são os principais pontos que destaquei:

Transformers e suas limitações:

Transformers usam o mecanismo de self-attention para calcular as relações entre todos os tokens de uma sequência (por exemplo, "o gato pulou sobre o cachorro"). Isso resulta em uma complexidade quadrática, ou seja, é computacionalmente caro para sequências longas. Outra limitação é que os transformers não diferenciam explicitamente entre memória de curto e longo prazo; todos os tokens interagem igualmente.

A proposta dos Titans:

Na arquitetura Titans introduz um sistema de memória dual inspirado no "funcionamento do cérebro humano":

Memória de curto prazo: Funciona de maneira semelhante aos transformers tradicionais, focando em dependências locais.

Memória de longo prazo: Um novo módulo neural projetado para armazenar e recuperar informações de contextos passados.

Essa ideia de memória de longo prazo permite o modelo trabalhar com contextos de até 2 milhões de tokens. Ela faz isso sem recalcular as dependências de toda a sequência (isso bem interessante).

Sobre a escalabilidade e eficiência: A arquitetura Titans possibilita escalabilidade linear em vez da escalabilidade quadrática, reduzindo custos computacionais.

Exemplo, escalonamento Quadrático (Transformers):

$$\text{Memória} = \mathcal{O}(N^2 \cdot d)$$

Onde:

  • N = 500.00 (janela de contexto)
  • d = 1024 (dimensão do embedding)
  • Nesse caso cada valor em float (precisão FP16) requer 2 bytes

Cálculo:

$$\text{Memória} \approx (500.000)^2 \cdot 2 , \text{bytes} = 500 , \text{TB} $$

Nesse caso a matriz de atenção já explode e muito a capacidade de qualquer GPU.

Exemplo, escalonamento Linear(Titans):

$$\text{Memória} \approx 500.000 \cdot 1024 \cdot 2 = 1,024 , \text{GB} $$

$$\text{Com overhead (~1.5×): }\text{Memória Total} \approx 1,536 , \text{GB}$$

Absurdo pois o uso de memória linear para a janela de contexto (nesse exemplo) ficou com folga dentro da capacidade de uma GPU H100 (80GB de VRAM).

$${\color{red}\text{PS: Esses exemplos e cálculos eu fiz com base no que li então carece de revisão (é um grande EU ACHO que funcionaria assim).}}$$

Teste e resultados:

No teste feito pelos autores, implementaram uma tarefa do tipo (agulha no palheiro), onde é necessário encontrar uma mudança bem específica em um contexto enorme (por exemplo, identificar uma palavra alterada em Moby Dick). Nos resultados mencionados, mostram que Titans supera os Transformers tradicionais, sendo bem mais eficaz em distinguir entre o que precisa de atenção imediata (curto prazo) e o que é relevante a longo prazo.

References

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment