아이폰에서 전문가 건너뛰기 없이 20.5 tok/s로 구동되는 35B MoE 모델
35B MoE running at 20.5 tok/s on an iPhone, without skipping experts
핵심 요약
OpenBMB의 LES 기술을 통해 아이폰에서 35B MoE 모델을 전문가 생략 없이 고속으로 구동하는 성과를 공유함.
- LES 기술 — 다음 레이어의 전문가를 미리 예측하여 플래시 메모리에서 로드함
- 성능 향상 — 아이폰 18 Pro Max에서 20.51 tok/s 달성
- 메모리 최적화 — 저메모리 구성에서 약 3GB 피크 메모리 사용
- 오픈 소스 — llama.cpp-omni를 통해 구현체 공개

OpenBMB에서 대규모 MoE 모델을 로컬에서 돌리는 거 관련해서 엔지니어링 글 쓴 거 봤는데, 그 뒤에 숨겨진 시스템 작업이 진짜 대박임. 모델 크기를 줄이거나 전문가(expert)를 건너뛰는 방식이 아니라, 진짜 병목 구간인 '플래시 스토리지에서 연산 장치로 전문가 가중치를 얼마나 빨리 가져오느냐'를 제대로 파고들었거든. OpenBMB의 MiniCPM-V 4.7은 **Lookahead Expert Scheduling (LES)**이라는 기술을 써서, 라우팅을 바꾸거나 전문가를 버리지 않고도 35B-A3B MoE 모델을 로컬에서 돌려버림.
핵심 아이디어는 이거임: 다음 레이어에서 어떤 전문가가 필요할지 미리 예측해서, 현재 연산이 돌아가는 동안 플래시 스토리지에서 가중치를 미리 불러오고, 준비된 전문가부터 먼저 실행하는 거지.
최적화된 가중치 레이아웃, 혼합 정밀도 양자화, 그리고 DSpark 추측 디코딩까지 합쳐서 LES가 달성한 결과는 다음과 같음:
-
20.51 tok/s: iPhone 18 Pro Max 기준
-
6.07배 더 빠름: 기존 3.38 tok/s 대비
-
26.7% 더 가벼워진 전문가 가중치: 5개 벤치마크에서 성능 하락은 고작 0.16포인트
-
약 3 GB 피크 메모리: 저메모리 설정 시
전문가 스케줄링이랑 DSpark 통합을 포함한 구현체는 llama.cpp-omni에 오픈소스로 풀려 있음.
진짜 흥미로운 건 LES가 모델이 실제로 실행하는 전문가를 바꾸지 않고도 메모리 병목을 숨겨버린다는 점임. 이 방식, 다른 MoE 모델들에도 충분히 적용 가능할 듯.
