Swiftlet, iPhone에서 35B Qwen을 2.5GB RAM으로 돌리는 방식
Original: Show HN: Run an 80B Qwen in 4.3 GB of RAM on a Mac, and a 35B on an iPhone View original →
Swiftlet은 Qwen 계열의 대형 MoE 모델을 Apple 기기에서 돌리기 위한 Swift + Metal 런타임이다. README가 내세우는 숫자는 선명하다. Qwen3.6-35B-A3B 4-bit 모델은 디스크 18GB, peak RAM 2.6GB로 M5 Mac에서 7~11 tok/s를 목표로 하고, Qwen3-Next-80B-A3B 4-bit 모델은 디스크 42GB, peak RAM 4.3GB로 4.5~5 tok/s 수준을 제시한다. 35B 모델은 iPhone 17에서도 약 2.5GB RAM, 현재 약 1 tok/s로 실행된다고 설명한다.
핵심은 모델 전체를 메모리에 올리지 않는 방식이다. Swiftlet은 attention, DeltaNet projection, router, shared expert, embedding처럼 계속 필요한 dense weight만 상주시키고, token마다 선택되는 routed Mixture-of-Experts weight는 .qpack 컨테이너에서 필요할 때 읽는다. expert는 fixed-stride blob으로 재포장되어 한 expert fetch가 하나의 pread로 끝나도록 설계되어 있다. cache는 LFU와 최근성 기준을 섞어 bounded pool로 관리한다.
이 구조는 “모델 크기”와 “실제 활성 파라미터”를 분리해서 본다. README는 token당 활성화되는 파라미터가 약 3B라서 대형 모델처럼 대화하고 글을 쓰지만, 사실 기억은 작은 모델에 가깝다고 선을 긋는다. 과장보다 제약을 같이 적어 둔 점이 오히려 기술적 신뢰를 만든다. 또한 Gated DeltaNet linear attention을 쓰는 layer에서는 context가 길어져도 KV cache가 계속 커지지 않는다는 점도 Apple 기기 메모리 예산과 맞물린다.
HN 댓글의 논점도 그쪽이었다. 일부는 SSD wear와 속도를 걱정했지만, 더 많은 관심은 “지금은 느리고 실험적이어도 이 방향이 on-device inference의 현실적인 경로인가”에 있었다. 추가 RAM을 가진 Mac에서 cache를 키워 속도를 높일 수 있는지, iPhone 앱으로 설치 가능한 형태까지 이어지는지가 주요 질문이다. 원문은 GitHub 저장소이며, 토론은 HN 스레드에서 이어졌다.
Related Articles
r/LocalLLaMA 게시글은 Mac 사용자를 March 11, 2026에 merge된 llama.cpp pull request #20361로 이끌었다. 이 PR은 fused GDN recurrent Metal kernel을 추가하며, Qwen 3.5 계열에서 대략 12-36% throughput 향상을 제시한다. Reddit commenters는 change가 master에는 들어갔지만 일부 local benchmark에서는 여전히 MLX가 더 빠를 수 있다고 덧붙였다.
2.4T MoE 모델이 공개 가중치까지 예고하면서 폐쇄형 코딩 모델의 가격 기준이 압박받는다. Qwen은 Qwen3.8-Max 입력 $2, 출력 $6/M 토큰과 1M 컨텍스트를 함께 제시했다.
M5 Max 128GB에서 Qwen3.5-397B를 SSD streaming으로 20.34 tok/s까지 올린 실험 보고서가 r/LocalLLaMA에서 화제가 됐고, I/O 분산, temporal expert prediction, Q3-GGUF quantization이 핵심 개선점으로 제시됐다.