r/LocalLLaMA, M5 Max에서 Qwen3.5-397B를 20.34 tok/s까지 끌어올린 autoresearch 공개

2026년 3월 30일 r/LocalLLaMA에 올라온 새 글은 local inference 커뮤니티가 좋아할 만한 benchmark note다. headline 숫자만 던지는 대신, 무엇이 실제로 병목이었고 어떤 시도가 실패했는지까지 자세히 적었다. 작성자는 M5 Max, 128GB unified memory, 40-core GPU를 갖춘 MacBook Pro에서 autoresearch loop를 돌려 Qwen3.5-397B-A17B를 decode 20.34 tok/s, prefill 5.52 tok/s로 실행했다고 밝혔다. 이는 같은 장비의 시작점 대비 약 2배, Dan Woods가 M3 Max에서 기록한 4.36 tok/s baseline 대비 4.67배 수준이다.

기반은 flash-moe와 Anemll fork다. 이 엔진은 Apple Silicon에서 209GB 모델을 SSD streaming으로 돌리는 pure C/Metal path를 사용한다. 글에 따르면 가장 큰 향상은 하나의 마법 같은 kernel보다 system-level 조정에서 나왔다. 16 I/O thread와 cache-io-split=4를 켜서 SSD channel에 read를 분산했고, 이것만으로 약 1.5 tok/s를 얻었다. temporal expert prediction은 token 간 routing correlation 27%를 활용해 SSD read와 GPU compute를 겹치며 4.3 tok/s를 추가했다. Q3-GGUF expert는 payload를 줄이면서 예상보다 나은 perplexity trade-off를 보였고, CMD2 pre-encode와 fused Q/K/V projection kernel은 Metal path의 오버헤드를 조금씩 깎아냈다.

흥미로운 부분은 실패 기록이다. 작성자는 전체 실험의 78%를 폐기했다고 적었다. 1-bit QJL quantization은 품질이 무너졌고, ternary 2-bit sparsity도 실패했으며, K=3 expert routing은 model behavior를 깨뜨렸다. cross-layer prediction은 hit rate가 0%였다. 심지어 승리한 Q3 구성도 한계가 있다. long-form generation 품질이 눈에 띄게 저하됐고, 평가는 MMLU나 GPQA가 아니라 perplexity 중심이었으며, 결과는 단일 hardware platform에서만 확인됐다. 글쓴이도 이를 production claim이 아니라 speed research라고 명확히 선을 그었다.

이 benchmark에는 또 하나의 구조적 힌트가 숨어 있다. 작성자에 따르면 Apple Neural Engine은 실행 내내 0W 상태로 사실상 놀고 있었다. dynamic MoE routing이 정적 precompiled graph를 요구하는 ANE와 잘 맞지 않기 때문이다. 즉, prefill이나 batching 단계에서 영리한 우회가 나오기 전까지는 상당한 이론적 compute가 유휴 상태로 남는다. r/LocalLLaMA가 이 글에서 본 핵심은, 초대형 local model 실행이 이제 model 자체 문제만이 아니라 storage, scheduler, kernel optimization 문제이기도 하다는 점이다. 투명하게 실패와 한계를 함께 공개한 연구 로그는 headline tok/s 숫자만큼, 혹은 그보다 더 큰 가치를 가진다.