6GB RTX 4050 노트북에서 1.56TB MoE 모델을 돌려본 결과
I tried running a 1.56TB MoE model on a 6GB RTX 4050 Laptop, Here’s the result
핵심 요약
저사양 노트북에서 1.56TB 대형 모델을 구동하기 위해 SSD 스트리밍 방식을 적용하여 초당 0.1 토큰의 속도를 달성함.
- 하드웨어 사양 — RTX 4050 6GB와 16GB RAM을 탑재한 보급형 노트북 사용
- 기술적 한계 — MXFP4 가속 부재로 인해 메모리 내에서 FP16/INT8로 디퀀타이즈 수행
- 최적화 시도 — RAM을 LRU 캐시로 활용하고 SSD에서 가중치를 직접 스트리밍하는 패치 적용
- 실제 성능 — 초당 0.1 토큰(토큰당 9.4초)의 속도로 구동 가능성 확인
테스트 벤치 설정
가성비 게이밍 노트북으로 1.56TB짜리 거대한 Mixture-of-Experts (MoE) 체크포인트(96개 샤드, 93개 레이어, 레이어당 896개 전문가, ~4.46 bits/param MXFP4)를 돌려봤다.
노트북: HP Victus 15
GPU: NVIDIA RTX 4050 Laptop (6GB GDDR6, 96-bit 인터페이스 @ 192 GB/s 대역폭, Ada Lovelace AD107)
시스템 RAM: 16GB DDR4 (듀얼 채널)
스토리지: 기본 PCIe 4.0 NVMe SSD (벤치마크상 순차 읽기 ~3,500 MB/s)
사용 가능한 고속 메모리 예산: 총 ~19GB (OS 점유율 제외하고 RAM ~13.5GB + VRAM 5.5GB 사용 가능)
하드웨어 상황: RTX 4050은 4세대 텐서 코어를 쓴다. MXFP4 하드웨어 가속(50시리즈/Blackwell부터 지원)이 없어서, 엔진이 텐서 코어 돌리기 전에 MXFP4 가중치를 메모리에서 FP16/INT8로 디퀀타이즈(dequantize)해야 함.
1차 시도: 표준 엔진 아키텍처 (순정 상태)
결과: 토큰 하나 뽑기도 전에 하드 크래시 / OOM 발생
기본 엔진 설정에서는 덴스 어텐션 가중치랑 공유 파라미터가 RAM에 상주하고, 스파스 전문가 가중치만 NVMe에서 스트리밍됨.
필요한 상주 메모리: 4비트 정밀도 기준 ~40GB.
가용 메모리: ~19GB.
엔진이 초기 메모리 맵 단계에서 바로 Out-Of-Memory (OOM) 에러 뿜으면서 프롬프트 토큰 하나 처리도 못 하고 뻗어버림.
2차 시도: 패치된 엔진 (SSD에서 덴스 가중치까지 스트리밍)
모델을 16GB RAM에서 억지로 돌리려고 런타임을 패치했다. RAM을 그냥 얇은 LRU 캐시로만 쓰게 만들어서, 활성화된 전문가뿐만 아니라 캐시 안 된 덴스 가중치랑 어텐션 레이어까지 전부 NVMe에서 직접 스트리밍하도록 강제함.
실제 벤치마크 수치:
초기 로드 및 Mmap 시간: 5분 42초 (96개 샤드 파일 전체의 mmap 오버헤드랑 헤더 파싱 때문에 시간 다 잡아먹음).
프리필(7토큰 프롬프트): 11.8초 (모든 위치에 걸쳐 각 레이어 가중치를 한 번씩 로드).
디코드 속도: 토큰당 9.4초 (~0.106 tok/s).
병목 현상 원인:
93개 레이어에 레이어당 8개 활성 전문가를 돌리니까, 토큰 하나당 발생하는 데이터 스래싱(thrashing) 수준이 이럼:
활성 전문가: 8 × 93 × ~18MB ≈ 13.4GB
캐시 안 된 덴스/어텐션 가중치: ≈ 19.6GB
토큰당 총 디스크 I/O: ~33GB / 토큰
기본 NVMe의 읽기 한계인 3.5 GB/s를 계속 찍으면서, 생성되는 내내 드라이브 사용률 100%로 고정됨.


