MTPLX
무엇인가
MTPLX는 Apple Silicon에서 로컬 언어 모델을 실행하는 추론 런타임이다. llama.cpp, Ollama, LM Studio가 차지하는 자리를 대체하며, 모델 가중치와 토크나이저를 Mac에 내려받아 프로세스 안에서 직접 디코딩한다. 배포 형태는 네이티브 Mac 앱과 `mtplx` 명령줄 두 가지이고 구현 언어는 Python이다.
어떻게 동작하나
핵심은 모델이 가진 multi-token prediction(MTP) 헤드를 그대로 초안 생성기로 쓰는 것이다. 모델이 스스로 여러 토큰을 앞서 초안으로 뽑고, 한 번의 배치 forward pass가 그 초안을 검증한다. 채택 여부는 Leviathan·Chen의 rejection sampling 정리와 잔차 보정으로 결정되므로 출력 분포는 원래 모델의 분포와 같다. 기본 디코딩 깊이는 3이고, `mtplx tune --retune`이 자기 Mac에서 자기회귀 디코딩과 각 깊이를 비교해 더 얕은 깊이를 저장한다. 서버는 `http://127.0.0.1:8000`에서 OpenAI와 Anthropic API를 함께 말한다.
무엇과 다른가
다른 가속 방식과의 차이는 초안 모델을 따로 올리지 않는다는 점이다. 별도 드래프트 모델이 RAM을 차지하지 않고, greedy 근사로 출력을 조용히 바꾸지도 않는다. 온도가 얼마든 출력 분포가 모델 자신의 분포와 일치한다. 속도는 순수 디코딩 대비 16GB M4 Mac mini에서 1.6배, M5 Max에서 2.24배로 측정됐다. 비교 대상은 mlx-serve, oMLX, LM Studio, Ollama, llama.cpp, mlx-lm이다.
어떻게 쓰나
설치는 DMG를 Applications로 끌어다 놓는 방식이 가장 짧다. 앱이 하드웨어를 확인하고 메모리에 맞는 모델을 추천해 내려받으며, 자체 Python 엔진과 팬 제어를 설치하고 `mtplx`를 PATH에 넣은 뒤 디코딩 깊이를 측정한다. CLI만 쓰려면 `python3 -m pip install mtplx`로 설치한다. 모델 팩은 Hugging Face의 Youssofal 아래에 있고, 서버를 띄운 뒤 OpenCode, Pi, Hermes, Claude Code, Cline, Cursor를 `http://127.0.0.1:8000`으로 향하게 한다.
전제와 한계
요구 사항은 Apple Silicon(M1 이상)과 macOS 14 이상이다. 16GB에서는 4B·9B 모델이 돌고, Qwen 3.8 Optimized Speed는 32GB 이상, Qwen 3.8 Flash Next 팩은 96GB 이상 통합 메모리에서 쓴다. M1·M2에는 FP16 빌드가, 나머지 칩에는 bf16 부모가 자동으로 배정된다. Flash Next는 컨텍스트 262,144 토큰과 이미지 입력을 지원하고, 51B 파라미터 n-gram 테이블은 기본적으로 SSD에서 스트리밍되어 상주 메모리를 차지하지 않는다.
관련 논문 3
유사 도구
- vllm-mlxApple Silicon에서 MLX로 LLM을 구동하며 OpenAI와 Anthropic API를 한 프로세스에서 제공하는 추론 서버다. continuous batching과 paged KV 캐시를 갖췄다.
- Rapid-MLXApple Silicon에서 MLX로 모델을 돌리며 OpenAI·Anthropic 호환 엔드포인트를 여는 로컬 추론 서버다. 클라이언트 수정 없이 교체한다.
- mlx-serveApple Silicon에서 MLX와 GGUF 모델을 실행하는 Zig 네이티브 추론 서버다. OpenAI·Anthropic·Ollama API를 한 포트에서 동시에 제공한다.
- claude-code-localApple Silicon에서 MLX로 로컬 모델을 돌려 Claude Code에 연결하는 Anthropic API 네이티브 서버다. 번역 프록시 없이 한 프로세스로 동작한다.
- qwen38-27b-rtx3090단일 RTX 3090 24GB에서 vLLM으로 Qwen3.8-27B를 서빙하는 패치·재양자화 스크립트·벤치 모음이다. 150k 컨텍스트 OpenAI 호환 API를 띄운다.