던스커버리 | Dawnscovery

기억을 모델 안에 두겠다는 시도: Metis 분석

우리가 AI 챗봇에게 지난 대화를 기억시키려 할 때, 현재 쓰이는 거의 모든 시스템(RAG, 벡터 DB, 메모리 에이전트 등)은 한 가지 공통된 방식을 쓴다.

대화 내용을 어딘가 외부 저장소(DB)에 텍스트나 벡터로 보관해 두었다가, 사용자가 새 질문을 던지면 관련 있어 보이는 과거 기록을 검색해 프롬프트 앞에 주렁주렁 붙여서 모델에 다시 밀어 넣는 방식이다.

비유하자면, “기억력이 없는 사람에게 매번 과거 일기장을 손에 쥐여주고 질문하는 형태”에 비유할 수 있다.

최근 발표된 논문 《Metis: Memory Foundation Model》 [1]은 이 틀을 깨부수고 완전히 다른 접근법을 제안한다. “기억을 사람의 뇌처럼 모델 내부 신경망 상태 자체에 직접 새겨 넣자”는 네이티브 메모리(Native Memory) 아키텍처다.

추론 중에는 재학습(Fine-tuning)이 전혀 일어나지 않는데 어떻게 실시간으로 기억을 모델 안에 새기는지, 그리고 왜 이것이 미래 에이전트의 핵심 열쇠가 되는지 직접 작성한 최소 재현 코드와 함께 알기 쉽게 정리했다.


1. 기억을 외부 서랍에 두는 방식의 3대 병목

논문은 외부 데이터베이스에 의존하는 기존 메모리 시스템이 세 가지 치명적인 한계에 직면해 있다고 지적한다.

한계 항목 원인 시스템에 미치는 영향
구조적 단절 검색 모듈(Retriever)과 LLM 생성기가 분리 최적화가 끊겨 잘못된 맥락 주입 시 환각 발생
지연 시간 폭증 매 턴마다 [DB 검색 ➔ 랭킹 ➔ 프롬프트 조립] 수행 실시간 대화 응답 속도 및 사용자 경험 저하
학습 신호 단절 이산적(discrete) 메모리 연산을 통과하는 그래디언트가 끊김 종단간 최적화가 막혀 도메인 특화 post-training이 사실상 불가능

논문이 서론에서 3대 한계로 꼽은 것은 아니지만, 효율 분석 절에서 별도로 다루는 문제가 하나 더 있다. 대화가 누적될수록 프롬프트 토큰과 KV 캐시가 커져 메모리 점유가 선형(O(N))으로 증가한다는 점이다.

특히 대화가 길어질수록 지난 맥락을 다시 읽어 들이느라 GPU 메모리(KV 캐시)가 토큰 수에 정비례해 선형으로 차오르고(논문 측정 기준 Qwen3.5-4B는 토큰당 32.8KB씩 증가), 결국 모델의 최대 컨텍스트 윈도우 한계에 부딪히게 된다.


2. Metis의 해법: 가중치는 얼리고 상태만 바꾸는 네이티브 메모리

Metis는 기억을 두 가지 축으로 재정의한다.

  1. 기억 상태(Memory State): 모델 내부의 각 트랜스포머 레이어마다 고정된 크기의 기억 행렬(고정 차원 행렬 M) 구조를 탑재한다.
  2. 기억 절차(Memory Process): 기억하기, 잊기, 갱신하기가 별도의 검색 절차 없이 모델의 순전파(Forward Pass) 계산 과정 안에서 자연스럽게 수행된다.
┌────────────────────────────────────────────────────────────────────────┐
│                        Metis Native Memory Flow                        │
├────────────────────────────────────────────────────────────────────────┤
│ [ 대화 입력 ] ──▶ [ 모델 순전파 (Forward Pass) ] ──▶ [ 답변 생성 ]       │
│                           │                                            │
│                           ▼ (Gradient-Free Update)                     │
│                  [ 고정 크기 기억 행렬 (M) ] 갱신                       │
│                  • 모델 가중치(Weights) = 꽁꽁 동결(Frozen)            │
│                  • 기억 상태(State M)만 즉각 누적 및 갱신              │
└────────────────────────────────────────────────────────────────────────┘

가장 핵심적인 혁신은 그라디언트 없는(Gradient-free) 순전파 갱신이다.

[개념 짚고 가기: 그라디언트 없는 순전파 갱신이란?]
보통 딥러닝 모델이 새로운 지식을 배우려면 역전파(Backpropagation)를 통해 무거운 오차 기울기(Gradient)를 계산하고 모델 가중치를 수정(재학습)해야 합니다. 이는 실시간 대화 중에 돌리기엔 너무 느리고 자원도 감당할 수 없습니다.
하지만 Metis는 모델의 원래 파라미터(가중치)는 꽁꽁 얼려둔(Frozen) 채로, 대화 텍스트가 신경망을 통과하는 일상적인 계산(Forward pass) 한 번만으로 내부 기억 행렬 상태(M)를 즉시 업데이트합니다. 추론 시점의 재학습 비용이 0인 것이 비결입니다. 다만 이 능력이 공짜는 아닙니다. 논문은 메모리 전용 합성 데이터로 별도의 mid-training을 마친 체크포인트를 썼습니다. 기성 모델에 얹는 런타임 기법이 아니라는 뜻입니다.


3. 맥락이 길어져도 메모리 사용량은 고정 (O(1) 공간 복잡도)

기존 방식은 대화가 길어지면 토큰 수에 비례해 KV 캐시 용량이 끝없이 불어난다. 하지만 Metis는 대화가 1,000토큰이든 10만 토큰이든 기억 행렬의 크기가 일정하다.

대화 길이 (컨텍스트) 일반 맥락 전부 보관 (KV 캐시) Metis 네이티브 기억 상태 압축형 Metis 메모리 절감 효과
512 토큰 87.06 MB 16.79 MB 2.11 MB 약 5.2배 절감
32,000 토큰 (32K) 1,118.86 MB 16.79 MB 2.11 MB 최대 529배 압도적 절감

과거 대화를 프롬프트에 전혀 넣어주지 않는 극한의 노-컨텍스트(No Context) 평가에서도, Qwen3.5 백본이 0.07점에 그친 반면 Metis는 26.74점을 기록하며 내부 상태만으로 과거 사실을 안정적으로 기억해 냈다.


4. 최소 코드로 직접 검증해보는 네이티브 메모리 원리

이 “고정 크기 행렬에 기억을 누적하고 읽어오는 원리”가 실제로 어떻게 돌아가는지 확인하기 위해, 64×64 행렬 하나로 동작하는 최소 형태의 독립 자바스크립트 코드로 재현 실험을 진행했다.

// 쓰기: 키(Key)와 값(Value)의 외적을 고정 크기 기억 행렬 M에 누적
function write(M, key, value) {
  for (let i = 0; i < key.length; i++) {
    for (let j = 0; j < value.length; j++) {
      M[i][j] += key[i] * value[j];
    }
  }
}

// 읽기: 키를 곱해 값을 즉시 복원 (외부 검색 단계 없음)
function read(M, key) {
  const out = new Float64Array(M[0].length);
  for (let i = 0; i < key.length; i++) {
    for (let j = 0; j < out.length; j++) {
      out[j] += key[i] * M[i][j];
    }
  }
  return out;
}

이 고정 행렬에 무작위 정보를 계속해서 누적 저장하면서, 가장 처음에 저장했던 첫 번째 기억의 복원 정확도와 메모리 사용량을 측정했다.

저장한 항목 수 첫 항목 회수 정확도 Metis 메모리 상태 전체 맥락 보관 시 용량 (비교)
1개 100.0% 32.0 KB 1.0 KB
8개 97.9% 32.0 KB 8.0 KB
32개 82.6% 32.0 KB 32.0 KB
64개 72.2% 32.0 KB 64.0 KB
512개 21.2% 32.0 KB 512.0 KB
2,048개 17.0% 32.0 KB (고정) 2,048.0 KB (지속 증가)

이 작은 실험에서 네이티브 메모리의 본질적인 장단점이 극명하게 드러난다:

  1. 완벽한 공간 효율성: 데이터를 2,048개 밀어 넣어도 메모리는 32KB로 꿈쩍도 하지 않는다.
  2. 정보의 오버라이팅(간섭) 한계: 정해진 차원(64차원)을 넘어서는 정보가 계속 누적되면, 새로운 기억이 과거 기억 위에 덧씌워지며 초기 기억의 선명도가 72% ➔ 21%로 흐려진다. 인간이 오래된 세부 기억을 자연스럽게 잊어버리는 망각 곡선과 매우 닮아 있다.

5. 외부 메모리(RAG) vs Metis 네이티브 메모리 비교

비교 항목 외부 메모리 시스템 (RAG / Vector DB) Metis 네이티브 메모리 (Native Memory)
기억 저장 위치 외부 벡터 DB, 로컬 파일 시스템 모델 내부 트랜스포머 레이어 행렬 (M)
기억 갱신 방식 별도 비동기 인덱싱 / DB 쓰기 트랜잭션 순전파(Forward Pass) 연산 시 실시간 누적
추론 지연 시간 검색·랭킹·프롬프트 조립이 앞에 붙음 추가 지연은 0이 아니라 제한적. 논문 표현도 limited additional inference overhead다
메모리 복잡도 컨텍스트 길이에 비례해 선형 증가 O(N) 대화 길이에 무관하게 고정 크기 유지 O(1)
완벽한 세부 복원 원문 텍스트 그대로 보관 가능 대량 누적 시 미세 정보의 점진적 손실 가능

6. 엔지니어링 시사점: 왜 네이티브 메모리가 중요한가?

Metis 연구는 AI 에이전트의 기억을 다루는 패러다임의 중대한 전환점을 시사한다.

지금의 AI 에이전트는 무거운 외부 검색 하네스를 주렁주렁 매달고 있어서, 복잡한 다중 턴 상호작용에서 엄청난 비용과 레이턴시를 치르고 있다.

Metis처럼 모델 자체가 기억을 호흡하듯 흡수하는 네이티브 메모리 아키텍처가 발전한다면, 에이전트는 마치 실제 살아있는 생명체처럼 사용자와의 오랜 유대와 대화 맥락을 가볍고 자연스럽게 유지할 수 있게 된다.

저자들의 언급처럼 당장 외부 메모리를 100% 대체하기보다는, 하이브리드 메모리 시스템(자주 쓰는 직관적 기억은 네이티브 메모리로, 정밀한 원문 기록은 외부 저장소로 분담)이 차세대 AI 아키텍처의 강력한 표준이 될 것이다.


7. 한계: 기억을 얻으면 지시 이행을 잃는다

논문이 스스로 재본 대목이 하나 있다. 6.6절 General Capability Studies의 Table 9다.

메모리가 비어 있는 초기 상태에서는 일반 능력이 거의 유지된다(MMLU-Pro −0.80, GSM8K −1.06). 문제는 과제와 무관한 정보를 메모리에 쌓아둔 뒤다. 전 벤치마크 점수가 떨어지고, 특히 지시 이행 능력(IFEval)이 76.71에서 54.53으로 22.18점 무너진다.

기억을 보유하는 것과 지시를 지키는 것이 상충한다는 뜻이다. 성능표만 보면 놓치는 대목인데, 실제 제품에 얹을 때는 이쪽이 더 중요할 수 있다.


참고 문헌 및 원문

  • [1] Zhang Z, Guo Z, Sun Y, et al. Metis: Memory Foundation Model. arXiv:2607.26760, 2026 (v1 7월 29일 / v2 8월 4일). 이 글의 수치는 v2 기준이며, v1에는 일부 실험 결과가 없다. (arXiv 원문 · GitHub 저장소 · Hugging Face)