Fractale-350M-base: 긴 컨텍스트 대신 학습된 행동으로서의 메모리, 완전 공개 연구 결과물
요약
Fractale-350M-base는 긴 컨텍스트 대신 학습된 '빠른 가중치 메모리(fast-weight memory)'를 사용하는 386M 파라미터 규모의 베이스 모델입니다. 8개의 벡터 뱅크를 통해 정보를 저장하며, 메모리가 순전파 과정의 일부로 통합되어 검색 없이도 효율적인 정보 유지가 가능함을 입증했습니다.
핵심 포인트
- 8개의 벡터 뱅크를 활용한 fast-weight memory 메커니즘 구현
- 컨텍스트 윈도우를 512토큰으로 최소화하면서도 장기 기억 유지
- 검색(Retrieval) 방식이 아닌 순전파(Forward pass)의 일부로 메모리 작동
- 코드 및 웹 데이터 학습을 통해 메모리 의존성 및 예측 성능 향상 확인
- 테스트 시간 학습(TTT) 대비 압도적인 효율성과 규칙 전이 능력
여러분 중 일부는 이 프로젝트의 배경이 된 연구 프로젝트에 관한 제 게시물을 기억하실지도 모릅니다. 이는 github.com/kkuette/thought-bank에 논문과 전체 연구 로그가 공개된, 학습된 fast-weight memory(빠른 가중치 메모리)에 관한 것입니다. 이번 게시물은 그 후속작입니다. 이 시리즈의 첫 번째 공개 모델이 출시되었습니다. 간단한 배경을 설명하자면, 저는 1인 연구자이며, 97M(9천 7백만) 파라미터 미만의 모든 작업에 RTX 3090 한 대를 사용했습니다. 구현 및 문서 작성 과정에서 Claude와 공개적으로 협업했습니다. 방향 설정과 판단은 저의 몫입니다.
이것은 무엇인가: Fractale-350M-base는 10B(100억) 토큰(코드 + 영어 웹 데이터)을 사용하여 처음부터 사전 학습(pretrained)된 386M 파라미터 규모의 베이스 모델(base model)로, 하나의 아이디어에 집중했습니다. 모델의 유일한 장기 메모리는 모델 스스로가 기록하는 8개의 벡터 뱅크(bank)입니다. 512-토큰 청크(chunk)당 하나의 요약(gist) 벡터가 생성되며, 가장 오래된 것은 FIFO(First-In-First-Out, 선입선출) 방식으로 제거됩니다. 이 뱅크는 fast weights(빠른 가중치)로서 다시 읽힙니다. 각 슬롯은 hypernet(하이퍼넷)을 통해 토큰 스트림이 통과하는 작은 low-rank MLP(저차원 MLP)로 확장됩니다. 이는 검색(retrieval)도 아니고, 저장된 텍스트에 대한 어텐션(attention)도 아닙니다. 메모리가 순전파(forward pass)의 일부가 되는 것입니다. 컨텍스트 윈도우(context window)는 의도적으로 매우 작게(512-토큰 청크) 설정되었습니다. 각 청크는 별도의 순전파이며, 따라서 현재 청크보다 오래된 모든 정보는 오직 이 8개의 벡터를 통해서만 예측에 도달할 수 있습니다. 사전 학습 목표(pretraining objective)는 뱅크의 중요성을 강제합니다. 즉, 뱅크만으로(입력이 비어 있는 상태에서) 문서의 이전에 본 적 없는 다음 청크의 시작 부분을 예측하도록 합니다.
측정 가능한 수치: GAP = 홀드아웃(held-out) 문서에 대한 CE(뱅크 초기화)와 CE(뱅크 유지)의 차이입니다. 최종 체크포인트에서 코드에 대해 +9.4 nats(초기화 시 CE 12.9 vs 유지 시 3.45), 웹 데이터에 대해 +7.3 nats를 기록했으며, 이는 2개에서 8개 청크가 기록되는 동안 평탄하게 유지되었습니다(FIFO 급락 현상 없음). 또한 학습 과정 동안 양쪽 모두에서 격차(gap)가 벌어졌습니다. 뱅크만 사용하는 쪽은 계속 정교해진 반면, 뱅크를 사용하지 않는 쪽은 성능이 저하되었습니다. 이는 사전 학습이 진행됨에 따라 모델이 메모리에 더 의존하게 되었음을 의미합니다. 정밀한 제어가 이루어진 더 작은 규모의 실험에서는, 콘텐츠가 큐(cue)에 의해 주소 지정(addressable) 가능하며, 2000단계 이상의 제거(eviction) 과정을 견뎌내고, docstring에서 코드로 혹은 코드에서 docstring으로의 양방향 전이가 가능함을 확인했습니다.
논문(3M 규모 메커니즘, Zenodo의 DOI)에 따르면: 단 한 번의 13개 토큰 제시만으로 학습되지 않은 쿼리에 대해 0.79에서 1.00 사이의 정확도로 새로운 규칙을 설치합니다. 반면 테스트 시간 학습 (test-time training)은 138배의 비용을 들여 자신의 예시에는 맞추지만 아무것도 전이시키지 못합니다. 이것이 '아닌' 것들: 이것은 채팅 모델이 아닌 베이스 모델 (base model)입니다. 즉, 인스트럭션 튜닝 (instruction tuning)이나 정렬 (alignment)이 되어 있지 않으며, 10B 토큰으로 학습된 386M 규모 모델로서 가공되지 않은 유창성 (raw fluency)은 예상 가능한 수준입니다. 뱅크 (bank)는 축자적 (verbatim) 텍스트가 아니라 핵심 내용 (도메인, 레지스터, 구조, 발표된 사실 등)을 보유합니다. 3행을 인용하라고 요청하면 수행할 수 없습니다. 그리고 GAP는 모델을 동일한 연산량의 어텐션 (attention) 베이스라인과 비교하는 것이 아니라, 메모리가 없는 모델 자체와 비교한 것입니다. 그 강점 (steelman) (네, 얼마 전 여기서 약속했던 gated-DeltaNet 모델입니다)은 연구 리포지토리 (research repo)에 있습니다. 재미있는 점은, 메모리가 당신의 손에 쥐어진 상태 (state)라는 것입니다.
from fractale import BankSession
sess = BankSession.from_pretrained("fractale-lm/Fractale-350M-base")
sess.read(open("long_doc.txt").read()) # 길이에 상관없음, 프롬프트가 늘어나지 않음
print(sess.continuation(32)) # 오직 8개의 노트(notes)로부터 예측됨
print(sess.continuation(32, use_bank=False)) # 기억상실 제어: 이 차이가 바로 메모리임
sess.save_bank("doc.bank") # 몇 kB에 불과함; 내일 복구하거나 다른 세션으로 이식 가능
모든 것이 공개되어 있습니다: 모델과 카드 (학습 믹스, NaN 사고 포함)는 huggingface.co/fractale-lm/Fractale-350M-base에서, 사용 키트 (usage kit)는 github.com/fractale-lm/fractale에서, 모든 주장에 대한 정확한 재현 명령어가 포함된 연구 로그는 github.com/kkuette/thought-bank에서, 논문은 Zenodo에서 확인할 수 있습니다. 또한 리포지토리에는 고정된 커밋(pinned commit)으로부터 전체 사전 학습 (pretrain)을 재현하는 스크립트(repro/phase1)도 포함되어 있습니다. 실행 총 비용은 자비로 충당한 8xA100 대여 시간 기준 약 $320입니다. 2단계 (탐색적 단계): 메모리를 의도적으로 사용하도록 가르치는 단계입니다. 기억하는 것이 하나의 행동 (behaviour)이 되는 인스트럭션 튜닝 (instruction tuning), 그 다음 뱅크를 작업 기억 (working memory)으로 사용하는 강화학습 (RL)을 진행할 예정입니다. 무엇이든 기꺼이 답변해 드릴 것이며, 이 모델을 건드렸을 때 무엇이 망가지는지에 대해 진심으로 궁금합니다.
링크 - 가중치(Weights) + 모델 카드(model card): https://huggingface.co/fractale-lm/Fractale-350M-base - 사용 키트 (추론 방식이 일반적인 언어 모델(LM)과 다릅니다. 점진적으로 늘어나는 프롬프트 대신 뱅크 상태(bank state)를 유지해야 합니다): https://github.com/fractale-lm/fractale - 연구 저장소 (training code, findings, probes): https://github.com/kkuette/thought-bank - 전체 1단계 재현 스크립트 (8x A100, 고정된 커밋): https://github.com/fractale-lm/fractale/tree/main/repro/phase1 /u/KKuettes에 의해 제출됨 [link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기