r/LocalLLaMA가 주목한 mlx-lm의 Qwen3.5 native MTP와 1.5x 추론 개선 가능성

Original: Multi-Token Prediction (MTP) for qwen-3.5 is coming to mlx-lm View original →

Read in other languages: English日本語
LLM Mar 21, 2026 By Insights AI (Reddit) 2 min read Source

r/LocalLLaMA에서 무엇이 화제가 됐나

r/LocalLLaMA의 Reddit post는 capture 시점 기준 99 points, 17 comments를 기록하며 mlx-lm의 open PR #990, feat: native MTP speculative decoding for Qwen3.5를 빠르게 퍼뜨렸다. 이 thread가 실무자에게 중요했던 이유는 단순한 코드 변경 소개가 아니라, local inference 운영자가 바로 해석할 수 있는 성능 숫자를 함께 제시했기 때문이다. 게시글이 강조한 수치는 Qwen3.5-27B 4-bit를 M4 Pro에서 실행했을 때 15.3 -> 23.3 tok/s (~1.5x throughput boost), ~80.6% acceptance rate였다. Apple Silicon에서 단일 사용자 세션의 응답성을 개선하려는 개발자에게는, 새 model이 아니라 runtime 경로 최적화만으로도 체감 지연 시간을 줄일 수 있다는 신호로 읽힌다.

Upstream PR이 실제로 추가하는 것

PR summary에 따르면 Qwen3.5 checkpoint에는 이미 built-in Multi-Token Prediction head가 들어 있고, 핵심 설정은 mtp_num_hidden_layers: 1이다. 이 head는 backbone hidden state at t와 embedding of token t+1을 사용해 token t+2를 예측한다. 즉, 별도의 draft model을 붙이는 일반적인 speculative decoding과 달리, mlx-lm은 model 내부에 있는 native MTP head를 활용해 speculative path를 만든다. 계산 비용도 보조 model 하나를 더 두는 방식이 아니라 one extra transformer layer of compute에 가깝다는 점이 차별점이다.

  • qwen3_5.py에 model-side support가 추가된다.
  • generate.py에는 --mtp flag가 들어간다.
  • server.py도 같은 --mtp 흐름을 지원한다.
  • cache rollback support와 8 unit tests가 포함된다.

실무적으로 특히 중요한 부분은 verification loop다. generation loop는 draft를 먼저 제안한 뒤 이를 검증하고, rejection이 발생하면 SSM state를 rollback하고 KV cache를 trim한다. speculative decoding은 숫자만 보면 단순한 속도 기능처럼 보이지만, reject 경로에서 state 정합성이 깨지지 않아야 실제 서비스에서 안전하게 켤 수 있다. 이 PR은 바로 그 correctness 비용을 코드 수준에서 다루고 있다는 점이 핵심이다.

실무자가 봐야 할 latency tradeoff

장점은 분명하다. separate draft model 없이 native MTP를 쓰므로 배포 구성이 단순하고, CLI와 server 양쪽에서 같은 기능을 켤 수 있으며, benchmark도 single-stream 환경에서는 설득력이 있다. 하지만 제한도 명확하다. PR은 아직 open 상태이고, MTP weights가 보존된 converted checkpoint가 필요하며, MTP가 활성화되면 batching이 비활성화되고, PR summary 기준으로 MoE variants는 아직 테스트되지 않았다. 따라서 이 기능은 interactive local inference, 개인 workstation, low-concurrency API에는 매력적일 수 있지만, 여러 요청을 묶어 처리하는 shared server에는 그대로 적용하기 어렵다.

  • mlx_lm.generate --model <path> --mtpmlx_lm.server --model <path> --mtp는 간단하지만, 운영 판단은 acceptance rate까지 함께 봐야 한다.
  • tok/s만 볼 것이 아니라 acceptance rate, concurrency, batch serving 상실 비용을 같이 측정해야 한다.
  • dense Qwen3.5 계열부터 검증하는 편이 보수적이다.
  • checkpoint conversion 과정에서 mtp.* weights가 보존되지 않으면 기능 자체를 사용할 수 없다.

왜 Reddit thread가 의미 있었나

이 thread는 GitHub 링크를 옮겨 적은 수준을 넘었다. 커뮤니티가 초기 benchmark를 즉시 해석했고, ~80.6% acceptance rate가 default로 둘 만한 수준인지 논의했으며, top comment는 유사한 llama.cpp PR #20700을 가리켰다. 이는 MTP가 mlx-lm 한 곳의 실험이 아니라, local inference runtime 전반에서 공통 관심사가 되고 있음을 보여준다. 실무자 입장에서는 특정 구현의 우열보다도, 여러 runtime이 비슷한 방향으로 움직이는지 여부가 투자 판단에 더 중요할 때가 많다.

결국 이 소식의 가치는 benchmark 숫자와 운영 제약을 함께 보여줬다는 데 있다. 단일 세션 latency에는 도움이 될 수 있지만, batching을 잃는 순간 전체 서버 효율은 오히려 나빠질 수 있다. 원문 구현 세부사항은 https://github.com/ml-explore/mlx-lm/pull/990에서, 커뮤니티 반응은 https://www.reddit.com/r/LocalLLaMA/comments/1rzntv5/multitoken_prediction_mtp_for_qwen35_is_coming_to/에서 확인할 수 있다.

Share: Long

Related Articles

LLM Reddit 4d ago 2 min read

r/LocalLLaMA에서 높은 반응을 얻은 글은 Unsloth Studio를 train, run, export를 한 번에 다루는 beta 오픈소스 web UI로 소개했다. Reddit에서는 GGUF 생태계의 LM Studio 경쟁자 가능성이 거론됐지만, 상위 댓글에서는 고급 사용자가 여전히 vLLM이나 직접 llama.cpp를 선호한다는 반론도 나왔다.

LLM Reddit Mar 14, 2026 1 min read

최근 r/LocalLLaMA 벤치마크 글은 Apple Silicon에서 MLX와 llama.cpp를 비교할 때 단순 tok/s 화면만 보면 중요한 차이를 놓칠 수 있다고 지적했다. MLX는 짧은 context의 generation에서는 여전히 빠르지만, 긴 context workload에서는 prefill이 전체 지연 시간을 지배해 체감 속도 우위가 크게 줄어들 수 있다.

Comments (0)

No comments yet. Be the first to comment!

Leave a Comment

© 2026 Insights. All rights reserved.