mlx-dspark: Mac에서 손실 없이 실행되는 DeepSeek의 DSpark drafter (native MLX, ~1.6배 속도
요약
Mac 환경에서 DeepSeek의 DSpark drafter를 무손실로 실행할 수 있는 MLX 포트인 mlx-dspark를 공개했습니다. Apple Silicon의 특성을 고려하여 최적화되었으며, 기존 mlx_lm 대비 약 1.4~1.6배의 속도 향상을 제공합니다.
핵심 포인트
- DeepSeek의 DSpark를 Mac(MLX)에서 무손실로 실행 가능
- M4 Pro 기준 단일 사용자 환경에서 약 1.4~1.6배 속도 향상
- OpenAI 호환 서버 지원 및 스트리밍, 프리픽스 캐싱 등 포함
- Gemma-4 및 Qwen3 모델 지원 및 DFlash 포팅 포함
DeepSeek는 DeepSeek-V4를 위해 구축한 speculative-decoding (추측적 디코딩) drafter인 DSpark를 공개했습니다 (이는 DeepSpec 리포지토리에 있으며, HF에 사전 학습된 drafter 체크포인트가 포함되어 있습니다). MLX 포트가 없었기 때문에 Mac에서는 아무것도 실행할 수 없었습니다. 그래서 제가 직접 작성했습니다.
GIF - 왼쪽: 일반적인 decoding (디코딩), 오른쪽: DSpark. 출력은 동일하지만 더 빠릅니다.
중요한 부분은 이것이 lossless (무손실)라는 점입니다. DSpark는 EAGLE 스타일의 drafter이므로, 메인 모델이 여전히 모든 drafted token (초안 토큰)을 검증하며, 출력은 일반적인 decoding과 동일합니다 (greedy 방식은 부동 소수점 동률을 제외하고 byte-for-byte로 일치하며, temperature 모드는 대상 모델로부터 검증된 정확한 sample (샘플)을 가져옵니다). 동일한 텍스트를 더 빠르게 얻을 수 있습니다. 현재 Qwen3 4B/8B/14B 및 Gemma-4 12B에서 작동합니다. 새로운 drafter들이 HF에 다양한 형식으로 계속 등장하고 있습니다. DeepSpec 스타일의 것들은 --drafter 옵션으로 그대로 실행할 수 있으며, 나머지에 대해서는 README에 호환성 표가 있습니다.
제 M4 Pro에서의 수치입니다 (발열 있음, 8-bit instruct 대상, 공식 mlx_lm/mlx_vlm 도구와 비교 측정):
https://preview.redd.it/aaoha8dzktbh1.png?width=2240&format=png&auto=webp&s=5eb18b31caff1ade9f2d40ef546b6764d57bcc8a
따라서 단일 사용자 기준 대략 1.4-1.6배, Gemma를 사용한 코드/수학 작업에서는 최대 ~2배 정도입니다. 솔직히 말해서, 어디에서나 인용되는 speculative decoding의 2-4배 성능을 기대하고 시작했습니다. Mac에서는 그 정도는 나오지 않습니다. 알고 보니 논문에서도 그런 주장을 한 적이 없었습니다. 그들의 실제 수치는 batched serving (배치 서빙) 시 사용자당 ~1.6-1.85배입니다. 그 이유는 Apple Silicon의 특수성 때문입니다: 검증 비용은 단계당 확인하는 추가 토큰이 늘어날수록 증가합니다 (multi-token verify는 MLX의 빠른 quantized-GEMV 경로에서 성능이 저하됩니다). 따라서 완벽한 drafter라 할지라도 여기서는 약 2.2배가 한계이며, 짧은 draft block (초안 블록)이 긴 것보다 성능이 좋습니다. 검토를 원하신다면 전체 cost model (비용 모델)은 리포지토리에 있습니다.
이것은 단순한 벤치마크 스크립트도 아닙니다.
스트리밍 (streaming), 도구 호출 (tool calls), 프리픽스 캐싱 (prefix caching, 긴 채팅에서 후속 턴을 약 13배 더 빠르게 만듦), 완료된 요청이 즉시 반환되고 해당 슬롯이 다음 요청을 처리하는 연속 배칭 (continuous batching), 긴 컨텍스트를 위한 KV-캐시 양자화 (KV-cache quantization), 그리고 drafter 없이도 어떤 모델이든 속도 향상을 얻을 수 있는 drafter-free n-gram 조회 모드를 지원하는 OpenAI 호환 서버 (LM Studio 및 openai SDK와 연동 가능)가 포함되어 있습니다. 또한 z-lab의 오리지널 DFlash (블록 확산 drafter)를 포팅하여, 동일한 기기에서 동일한 손실 없는 루프(lossless loop) 하에 두 모델을 모두 실행할 수 있습니다. 결과는 모델에 따라 달라진다는 점이 놀라웠는데, 검증 (verify) 비용이 높은 Gemma-4 12B에서는 DFlash의 16-토큰 블록이 코드/수학 분야에서 승리했습니다 (~2.1배, 스텝당 약 6개 토큰 수락). Qwen3-8B에서는 DSpark가 모든 영역에서 승리했으며 (~1.6배), DFlash의 큰 블록은 효과가 미미했습니다. 동일한 대상과 drafter를 사용하는 dflash-mlx runner와 대조하여 재확인했으며, 결과는 일치했습니다.
리포지토리: https://github.com/ARahim3/mlx-dspark
drafter와 논문을 오픈 소스로 공개해 준 DeepSeek의 DeepSpec 팀과 z-lab에 감사를 표합니다. 질문은 언제든 환영하며, 더 많은 모델 어댑터를 위한 PR (Pull Request)도 적극 환영합니다.
제출자: /u/A-Rahim
[link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기