Google Titans: 테스트 타임에 기억하는 법을 배우는 Neural Long-Term Memory 아키텍처
Google Titans architecture, helping AI have long-term memory
TL;DR Highlight
Google의 새 아키텍처는 attention을 놀라운 정보만 기억하는 신경망 메모리 모듈로 대체해 Transformer의 quadratic 복잡도 없이 200만 토큰 컨텍스트를 처리한다.
Who Should Read
긴 문서 처리나 대화 히스토리 관리에서 컨텍스트 한계를 느끼는 LLM 애플리케이션 개발자. Transformer 대체 아키텍처(Mamba, RWKV 등)를 검토 중인 ML 엔지니어.
Core Mechanics
- Attention(단기 기억) + Neural Long-Term Memory(장기 기억) + Persistent Memory(영구 지식) 세 가지 메모리를 조합한 새 아키텍처 Titans 제안
- 장기 메모리 모듈은 별도의 작은 신경망으로 구현 — 추론 중에도 파라미터가 업데이트되는 'test-time training' 방식
- 'Surprise(놀라움)' 지표로 뭘 기억할지 결정 — 예측 오차(gradient norm)가 클수록 중요한 정보로 간주해 더 강하게 기억
- 세 가지 아키텍처 변형 제공: 메모리를 컨텍스트로 주입하는 MAC, 게이팅으로 혼합하는 MAG, 레이어로 삽입하는 MAL
- 시퀀스 길이가 늘어도 선형 복잡도 유지 — 2M 토큰 처리 가능, Transformer의 quadratic 복잡도 문제 해결
- Recency Bias 없이 오래된 정보도 유지 — 기존 선형 RNN(Mamba 등)이 최근 토큰에 편향되는 문제를 Forgetting Gate로 보완
Evidence
- BABILong 벤치마크(초장문 추론)에서 Transformer, Mamba-2, TTT 등 기존 모델 대비 일관적으로 성능 우위
- 2M 토큰 컨텍스트에서도 선형 시간복잡도 유지 — Transformer 대비 메모리 사용량 대폭 절감
- MQAR(Multi-Query Associative Recall) 태스크에서 시퀀스 길이 4K~16K 구간 모두에서 Mamba-2, GLA보다 높은 정확도
- 언어 모델링(Wikitext-103, SlimPajama) 및 시계열, DNA 시퀀스 등 다양한 도메인에서 경쟁력 있는 perplexity 달성
How to Apply
- 긴 대화 히스토리를 처리하는 챗봇을 만들 때: Titans 기반 모델이 공개되면 KV Cache 크기 제한 없이 전체 대화를 메모리에 유지할 수 있어 RAG 없이도 긴 세션 처리 가능
- 문서 분석 파이프라인에서 청킹 전략을 쓰고 있다면: Titans 계열 모델은 2M 토큰을 한 번에 처리하므로 청크 분할 로직을 단순화하거나 제거하는 방향으로 아키텍처 재검토 가능
- 자체 모델을 학습하거나 파인튜닝하는 경우: MAC/MAG/MAL 변형 중 사용 케이스에 맞게 선택 — 검색/QA는 MAC(명시적 컨텍스트 주입), 생성 품질 중심은 MAG(게이트 혼합) 권장
Code Example
# Titans 아키텍처의 Surprise 기반 메모리 업데이트 핵심 로직 (개념 코드)
import torch
import torch.nn as nn
class NeuralMemory(nn.Module):
def __init__(self, dim, memory_lr=0.01):
super().__init__()
# 장기 메모리 = 작은 MLP (key-value 연상 기억)
self.memory_mlp = nn.Sequential(
nn.Linear(dim, dim * 2),
nn.SiLU(),
nn.Linear(dim * 2, dim)
)
self.memory_lr = memory_lr # 메모리 업데이트 속도
def compute_surprise(self, query, target):
"""Surprise = 예측 오차의 크기 (gradient norm)"""
pred = self.memory_mlp(query)
loss = nn.functional.mse_loss(pred, target)
grad = torch.autograd.grad(loss, self.memory_mlp.parameters())
surprise = sum(g.norm() for g in grad) # 놀라울수록 강하게 기억
return surprise, loss
def update_memory(self, key, value, forget_gate):
"""놀라운 정보를 메모리에 기록 (test-time update)"""
surprise, loss = self.compute_surprise(key, value)
# Forgetting Gate: 오래된 기억 decay + 새 정보 기록
effective_lr = self.memory_lr * surprise.item() * forget_gate
for param in self.memory_mlp.parameters():
if param.grad is not None:
param.data -= effective_lr * param.grad
def recall(self, query):
"""쿼리로 장기 메모리에서 정보 검색"""
return self.memory_mlp(query)
# MAC (Memory as Context) 변형 사용 예시
# memory_output = neural_memory.recall(current_query)
# context = torch.cat([memory_output, short_term_kv_cache], dim=1)
# output = attention(query, context) # 장기 + 단기 메모리 통합Terminology
관련 논문
Claude Code, Codex, Cursor에서 바로 쓰는 Smart Model Routing 도구
프롬프트마다 적합한 AI 모델을 50ms 이내에 자동으로 선택해주는 프록시 라우터로, API 비용을 40~70% 절감할 수 있다고 주장하는 오픈소스 도구다. 단, 프롬프트 캐싱 손실 문제로 커뮤니티 반응은 엇갈린다.
900KB Transformer를 과적합시켜 100MB CSV를 7MB로 압축한 실험
단일 파일을 통째로 암기하도록 Transformer를 과적합(overfitting)시킨 뒤 arithmetic coding으로 압축하는 실험으로, 100MB CSV를 7MB(~0.5 bits/byte)까지 줄이는 데 성공했다. 모델이 '범용 이해' 대신 '특정 파일 완전 암기'를 목표로 한다는 점에서 전통적 ML 학습과 정반대 방향이라 흥미롭다.
Anthropic이 나를 Claude Code에서 밴했는데 어떻게 해야 할지 모르겠다
VPN 사용 또는 동일 카드 재사용으로 Anthropic Claude Code 계정이 이유 불명으로 정지당한 사용자의 사례와, 커뮤니티에서 나온 대안 및 우회 방법 논의.
Moebius: 0.2B 파라미터로 10B급 성능을 내는 이미지 인페인팅 모델
FLUX.1-Fill-Dev(11.9B) 대비 2% 미만의 파라미터(0.22B)로 동급 또는 그 이상의 인페인팅 품질을 달성하면서 추론 속도는 15배 빠른 경량 모델. 소비자용 GPU나 엣지 디바이스에서도 고품질 인페인팅이 가능해진다.
AI Compute Extensions (ACE) Specification — x86 CPU에 ML 연산 가속 명령어 추가
x86 Ecosystem Advisory Group이 행렬 곱셈과 저정밀도 데이터 포맷을 하드웨어 수준에서 가속하는 새로운 x86 명령어 확장 스펙 ACE를 공개했다. ML 워크로드를 CPU에서 더 효율적으로 돌리기 위한 ISA(명령어 집합 구조) 수준의 변화라 향후 AI 추론 환경에 영향을 줄 수 있다.
고해상도 Neural Cellular Automata: 세포에서 픽셀로
EPFL과 Google Research가 공동 개발한 Neural Cellular Automata(NCA)를 고해상도로 확장하는 기법으로, 기존 NCA의 해상도 한계를 경량 신경망 디코더로 극복한 SIGGRAPH 2026 논문이다.