안녕하세요.
최근에 개인적으로 재미있는 실험을 하나 해서 공유해봅니다.
요지는 이겁니다.
284B 파라미터짜리 MoE 모델인 DeepSeek V4 Flash를
64GB 메모리의 M1 Max 맥에서 한번 돌려보고,
그 과정에서 병목을 조금 줄여본 프로젝트입니다.
깃허브는 여기입니다.
https://github.com/daystar7777/MoE-MADV
사용한 모델은 GGUF 기준 약 150GB짜리 모델입니다.
- 모델: DeepSeek V4 Flash GGUF
- 파일 크기: 약 150GB
- 테스트 머신: Apple Silicon / M1 Max / 64GB unified memory
- 방식: mmap 기반 실행
- 핵심 실험: MoE expert가 필요해지는 시점에 MADV_WILLNEED 힌트 주기
처음에는 “150GB 모델을 64GB 메모리에서 돌리는 게 되나?” 쪽이 관심사였는데, 막상 해보니 더 재미있는 병목은 따로 있었습니다.
일반적인 dense LLM은 대체로 같은 가중치를 계속 재사용하는 성격이 강한데, MoE 모델은 토큰마다 선택되는 expert가 바뀔 수 있습니다.
그래서 모델 전체를 메모리에 올릴 수 없는 환경에서는 계산 자체보다도,
“다음에 필요한 expert 가중치 페이지를 얼마나 빨리 불러오느냐”
가 꽤 중요한 병목이 되더군요.
이번 프로젝트에서는 MoE 라우팅 결과로 active expert가 정해진 뒤, 해당 expert의 파일 페이지 범위에 MADV_WILLNEED를 호출하도록 patched llama.cpp 런타임을 구성해봤습니다.
결과는 아래 정도였습니다.

기본 실행: - expert 페이지 힌트 없음 - 디코드 속도: 0.98 tok/s - 걸린 시간: 115.5초 최적화 실행: - MADV_WILLNEED 사용 - 디코드 속도: 1.23 tok/s - 걸린 시간: 103.1초
정리하면 모델 자체를 바꾸지 않고도,
- 디코드 생성 처리량 약 25.4% 증가
- 디코드 전체 시간 약 10.7% 감소
정도의 개선이 있었습니다.
물론 이게 “64GB 맥에서 284B 모델을 실사용 속도로 쾌적하게 돌린다”는 뜻은 아닙니다.
그보다는 메모리보다 큰 MoE 모델을 로컬에서 실행할 때, 병목을 단순히 연산량으로만 보면 안 되고 expert page loading 자체도 최적화 대상으로 봐야 한다는 쪽에 가깝습니다.
개인적으로 흥미로웠던 관찰은 이렇습니다.
- 초기 trace에서는 page-in/disk-read proxy 기준으로 I/O-active 비중이 매우 컸습니다.
- prefill과 decode는 둘 다 I/O 영향을 받지만 병목 양상이 달랐습니다.
- prefill은 넓은 범위의 layer/page를 한꺼번에 읽는 느낌이 강했습니다.
- decode는 토큰마다 expert 선택이 달라지면서 생기는 지연이 더 중요했습니다.
- static top-k expert prewarm은 cold start에는 도움이 되지만, steady-state에서는 꼭 최선은 아니었습니다.
- 가장 명확한 개선은 MADV_WILLNEED 쪽이었습니다.
저장소에는 다음 내용을 정리해두었습니다.
- 실행 스크립트
- 모델 다운로드 스크립트
- patched llama.cpp 런타임 준비 방법
- 성능 비교 스크립트
- 5시간 장기 벤치마크 결과
- 사용한 모델 출처와 재현 방법
재현하려면 디스크 공간은 꽤 필요합니다.
최종 GGUF 모델만 받아도 약 150GB가 필요하고, 여유 공간은 200GB 이상 잡는 게 낫습니다.
프로젝트 이름은 MoE-MADV입니다.
MoE, 즉 Mixture-of-Experts와
MADV_WILLNEED의 MADV를 합친 이름입니다.
혹시 로컬 LLM, Apple Silicon, GGUF, MoE 모델 쪽에 관심 있으신 분들께 참고가 되었으면 합니다.
깃허브 링크입니다.
https://github.com/daystar7777/MoE-MADV
README 한국어 버전도 따로 적어두었습니다.
https://github.com/daystar7777/MoE-MADV/blob/main/README.ko.md
한줄요약: 141G모델도 64G에서 돌릴 수는 있다. 쓸만하지는 않지만 시도는 해봄.
부록:
구동영상 쇼츠입니다
암튼 재미있는글 감사합니다.
DeepSeek V4 Pro 써보시면 꽤 괜찮습니다. 추론이 좀 길어서 그렇지 Sonnet 4.5급은 됩니다.
오 그정도 인가요?
맥스튜디오 128기가 배송받았는데 아직 안뜯고 있습니다. 반품할까 고민중이거든요.
이러나 저러나 현시점엔 local llm 은 qwen 포함한 중국산이 최고의 가성비인 것 같긴 합니다.