21M 모델에 64억 개 매개변수 조회 테이블을 적용한 결과: 114M 밀집 모델과 유사하며 SSD에서도 작동함 (RX 9070)
요약
작은 모델(21M)에 64억 개 매개변수 조회 테이블을 적용한 결과, 114M 밀집 모델과 유사한 성능을 보였습니다. 특히 이 메모리 테이블이 VRAM 없이 NVMe SSD에서 작동하며 낮은 VRAM 사용량으로도 높은 추론 속도를 유지할 수 있음을 입증했습니다.
핵심 포인트
- 작은 모델에 대규모 조회 테이블 적용 시, 큰 밀집 모델과 유사한 성능 달성 가능.
- 메모리 테이블이 VRAM 없이 NVMe SSD에서 작동하여 메모리 제약 극복.
- Triton 커널을 통해 다양한 GPU(Radeon, H100/H200) 환경에서 호환성 확보.
저는 지난 몇 주 동안 취미 연구 프로젝트를 진행했고, 이를 공개했습니다. 아이디어 자체는 새로운 것이 아닙니다(product-key memory, Lample et al. 2019, 그리고 Meta의 "Memory Layers at Scale"): 모델에 방대한 학습된 벡터 테이블을 제공하고 토큰당 그중 극히 일부만 읽게 하는 것입니다. 저는 이것이 작은 모델에서 실제로 얼마나 가치가 있는지, 비용은 얼마인지, 그리고 이 테이블이 VRAM에 반드시 있어야 하는지 알고 싶었습니다. 결과는 다음과 같습니다:
- 1680만 행의 테이블(테이블 내 64억 개 매개변수, 토큰당 33M 사용)을 가진 21M 모델은 동일한 5억 개의 Wikipedia 토큰으로 학습된 114M 밀집 모델과 거의 비슷한 성능을 보였습니다.
- 이 테이블은 VRAM이 필요하지 않습니다. NVMe SSD에서 4비트 테이블 메모리를 매핑하여 사용했을 때, 제 RX 9070에서도 여전히 약 140 토큰/초를 기록하며 0.4 GB의 VRAM만 사용했습니다. 다만, SSD에서 긴 프롬프트를 읽는 것은 느립니다. 누락된 행 하나당 전체 4 KB 페이지 비용이 발생하기 때문입니다.
- 저는 이를 위해 Triton 커널을 작성했습니다. 이 커널은 제 Radeon, MI350X, 그리고 H100/H200에서도 변경 없이 작동합니다.
- 완성된 모델(Qwen3.5-0.8B)에 테이블을 추가하는 방식은 효과가 없었습니다. 동일한 연산량의 작은 밀집 어댑터보다 나을 것이 없었습니다.
주의사항: 이 프로젝트는 규모가 작고, 큰 테스트를 위해 하나의 시드만 사용했으며, 생성된 텍스트는 꾸며낸 사실이 포함된 유창한 Wikipedia 영어입니다. 저는 매번 실행 전에 성공 기준을 기록해 두었으며, 작동하지 않은 부분도 그 안에 담겨 있습니다. 대부분의 작업은 제 게이밍 PC에서 진행되었고, 대규모 테스트에는 Runpod에서 약 70달러가 소요되었습니다. 저는 Claude Code와 함께 이 프로젝트를 구축했으며(커밋에서 확인할 수 있음), 아이디어, 결정, 그리고 자금은 모두 저의 것이었습니다.
레포지토리: https://github.com/re133/sparse-memory-lm
단어를 클릭하여 모델이 읽는 테이블 항목을 확인해 보세요: https://re133.github.io/sparse-memory-lm/explorer/
모델: https://huggingface.co/fechyy/sparse-memory-lm-B-16M
피드백 환영합니다. 특히 제가 잘못 이해한 부분이 있다면 알려주세요. 그리고 더 큰 GPU가 여유 있는 분이 계시다면, 1B 규모로 이 프로젝트를 시도해 보고 싶습니다.
제출자: /u/fechyyy [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기