Kapitsa: Qwen 및 Nemotron을 위해 구축된 오픈 소스 Apple Silicon 최적화 Metal 엔진
요약
Kapitsa는 Apple Silicon용 오픈 소스 추론 엔진으로, Qwen 및 Nemotron 모델을 위해 Metal 커널을 최적화했습니다. 이 엔진은 인터넷 연결이 제한적인 환경에서도 사용자의 Mac 로컬에서 코딩 에이전트를 실행할 수 있게 합니다. 상세 벤치마크 결과는 Kapitsa가 기존 도구 대비 높은 성능을 보여주었음을 입증합니다.
핵심 포인트
- Apple Silicon에 최적화된 오픈 소스 Metal 기반 추론 엔진입니다.
- Qwen 및 Nemotron 모델 패밀리에 집중하여 커스텀 Metal 커널을 구현했습니다.
- 로컬 환경에서 코딩 에이전트 실행을 가능하게 하여 네트워크 제약 문제를 해결합니다.
- 다양한 벤치마크 결과가 제시되어, 기존 도구 대비 높은 성능 효율성을 보여줍니다.
안녕하세요, 저는 Ye입니다. Nace.ai에서 vibecode를 하고 있으며, 저희는 기업들과 많은 작업을 수행합니다. 그리고 많은 경우에 저희는 인터넷 접속이 불가능하고 구식 클라우드 호스팅 모델을 사용하는 그들의 네트워크 내부에 있게 됩니다. 맥북으로 작업하는 것을 고려하여, 저희는 Apple Silicon용 오픈 소스 (Apache 2.0) 추론 엔진인 Kapitsa를 구축했습니다. 이를 통해 사용자의 Mac에 실제로 들어갈 수 있는 로컬 모델에서 코딩 에이전트를 실행할 수 있습니다. Kapitsa는 두 가지 모델 패밀리만 실행합니다: Qwen (3.5 4B, 3.8 27B, 3.6 35B -A3B, 그리고 128 GB Mac용 3.8 Flash-Next)과 NVIDIA Nemotron (3.5 Lightning, Bolt 및 Super-VL, 그리고 Dory 4B (이것은 새로운 것이라 아직 Dory는 충분히 테스트하지 못했습니다)). 이 모델들만 집중적으로 다루는 덕분에 Apple Silicon의 각 모델에 맞춰 Metal 커널을 사용자 정의할 수 있었습니다. GitHub: https://github.com/nace-ai/kapitsa - 이것은 오픈 소스이며 Apache 2.0입니다. Quickstart (터미널 명령어): brew install nace-ai/tap/kapitsa # 또는: curl -fsSL https://raw.githubusercontent.com/nace-ai/kapitsa/main/install.sh | bash kapitsa opencode --model 35b # 또는 kapitsa claude, kapitsa codex 등 디코드 벤치마크 (저희 Nace는 벤치마크를 좋아하지 않으니 신뢰하지 마십시오) 대신, 직접 테스트해 볼 수 있도록 매우 간단한 CLI를 구축했습니다.
이 프로젝트에 기여할 분들을 찾고 있으니 결과를 제출해 주세요 ^^ kapitsa 벤치마크 결과는 다음과 같습니다.
MacBook Pro M4 Pro (2024), 48 GB:
Qwen 모델 tok/s
Kapitsa | mlx-serve | oMLX | MTPLX | Ollama | MLX | llama.cpp | LM Studio | Rapid-MLX
Qwen3.8 27B | 63 | 54 | 45 | 36 | 32 | 28 | 18 | 15
— Qwen3.6 35B-A3B | 154 | 124 | 127 | 80 | 89 | 86 | 69 | 86
— Qwen3.5 4B | 179 | 137 | 102 | 104 | 109 | 88 | 70 | 81 | 98
MacBook Pro M4 Pro (2024), 48 GB:
Nemotron tok/s
Kapitsa | oMLX | MLX | llama.cpp
Nemotron 3.5 Bolt 74B-A9B | 64 | 35 | 32 | ✗
Nemotron 3.5 Lightning 30B-A3B | 106 | — | 65 | —
Nemotron Dory1.0 4B | 64 | ✗ | 48 | 6 (LOL)
MacBook Pro M5 Max (2025), 128 GB:
Qwen tok/s
Kapitsa | oMLX | Ollama | LM Studio | MTPLX | MLX | mlx-serve | llama.cpp
Qwen3.6 35B-A3B | 272 | 232 | 166 | 127 | 123 | 112 | — | —
Qwen3.8 27B | 115 | — | 68 | 32 | 69 | 30 | — | —
Qwen3.5 4B | 294 | — | 213 | 154 | 175 | 135 | — | —
Qwen3.8 Flash-Next 180B-A7B | 105 | 107 | 60 | ✗ | 88 | 77 | 108 | 96
Flash-Next는 Kapitsa가 가장 빠르지 않은 모델입니다: mlx-serve와 oMLX가 2~3% 앞서 나갑니다. (저희 리더십 팀은 이 것이 1k 스타를 얻으면 Flash Next 최적화를 위해 128GB를 사주겠다고 했습니다 xd)
MacBook Pro M5 Max(2025), 128 GB:
Nemotron tok/s
Kapitsa | oMLX | mlx-serve | llama.cpp | Ollama | MLX | MTPLX | LM Studio
Lightning 30B-A3B | 239 | 190 | 190 | 159 | 153 | 139 | 131 | 110
Super-VL 120B-A12B | 85 | 52 | — | 66 | 64 | 46 | — | 61
Bolt 74B-A9B | 127 | — | ✗ | ✗ | ✗ | — | ✗ | ✗
MacBook Pro M1 Pro, 16 GB (2021) tok/s
Kapitsa | mlx-serve | oMLX | Ollama | LM Studio | MLX | MTPLX | llama.cpp
Qwen3.5 4B | 85 | 62 | 55 | 55 | 47 | 46 | 42 | 38
Nemotron Dory1.0 4B | 40 | — | ✗ | — | — | 30 | — | 4
속도가 나오는 원천은 다음과 같습니다.
- 아키텍처별 맞춤형 Metal 커널 (Qwen3.5 계열의 경우 Gated DeltaNet + attention, Nemotron-H의 경우 Mamba-2 + attention + LatentMoE) 및 가중치 형식별 구현 (MLX affine, NVFP4, NVIDIA의 2비트 전문가).
- 추측 디코딩(speculative decoding): 초안 모델이 블록을 제안하면 모델이 한 번에 검사합니다 (Qwen 27B와 35B용 DFlash2, 4B용 z-lab의 DFlash, Lightning용 DSpark, Bolt 및 Super-VL용 NVIDIA의 LiLiCorr).
- 하이브리드 모델과 작동하는 캐싱 기술.
이 재귀 레이어는 일반적인 KV 프리픽스 캐시를 깨기 때문에, 각 대화는 턴 경계에서 KV와 재귀 상태 체크포인트를 유지하며, 엔진은 사용자가 읽을 때 마지막 답변을 캐시에 로드합니다. 4) 27B 및 Bolt 모델의 경우, 각 레이어의 프리필(prefill) 중 일부가 GPU와 함께 Neural Engine에서 실행됩니다. (가장 큰 성능 향상) 5) 여러 요청이 동시에 처리될 수 있습니다 (에이전트의 서브 에이전트, opencode의 제목 요청 등). 우리는 또한 추측(speculation)이 모델이 작성하는 내용 자체를 변경하지 않도록 했습니다: greedy는 모델 자체가 선택할 가장 긴 초안 접두사를 유지하고, sampling은 기본적으로 표준적인 추측 샘플링과 같아서 토큰이 모델 자체의 분포에서 나옵니다. 품질은 양자화된 4비트 가중치(quantized 4-bit weights)를 사용하기 때문에 다른 MLX 엔진에 비해 약간 떨어집니다. 물론 필요하다면 --model 27b:6bit으로 선택할 수 있지만, 우리는 4비트를 사용하는 것을 권장합니다. 이 작업은 CLI에서 brew install nace-ai/tap/kapitsa kapitsa doctor # 어떤 모델과 컨텍스트 크기가 이 Mac에 적합한지 확인 kapitsa opencode --model 27b # 또는: kapitsa pi / claude / codex kapitsa serve는 사용자의 claude, codex 등 또는 모든 사용자 지정 요청과 작동하는 서버를 시작합니다. kapitsa bench는 사용자의 Mac에서 동일한 벤치마크를 실행하며, kapitsa bench --submit을 추가하면 커뮤니티 결과에 추가됩니다 (JSON을 보여주고 먼저 질문합니다). M2 및 M3 Mac, 그리고 16-36GB 모델이 가장 원하는 결과입니다. (다양한 장치가 필요합니다) 왜 Qwen과 Nemotron인가? 우리는 이곳 사용자들이 로컬 코딩에 사용하는 모델들을 선택했고 정확히 그 아키텍처를 위한 커널을 작성했습니다. 다른 Qwen3.5 계열 체크포인트는 Hugging Face에서 폴더나 GGUF 형태로 로드되지만, 다른 아키텍처들은 그렇지 않으며 하나를 추가하는 것은 실제 작업입니다. [다음 계획: Qwen 4 출시 시점, Flash Next] Apple silicon 전용으로 언급할 사항: M1 이상, macOS 14+ Lightning과 Dory는 텍스트 전용입니다. 새로운 코드이므로 버그가 있을 수 있습니다. 이슈 제기는 환영하며, 이 프로젝트에 할당된 fable 크레딧이 상당히 많습니다 ^^.
크레딧: z-lab (DFlash) - 멋진 아이디어, DeepSeek (DSpark), Inco(DFlash2) - 훌륭함, Qwen (MTP heads), NVIDIA (LiLiCorr 및 Nemotron 체크포인트), MLX(양자화/quantization), mlx-serve(놀라움). Fable 5.1, Elorian Glimpse, Opus 5.5, Nace.AI 코딩 모델들. 직접 사용해 보시고 테스트 케이스(benches)를 업로드해 주세요. 새로운 코드베이스이므로 버그 리포트나 제안은 환영합니다. /u/DotaMate가 r/LocalLLaMA에 제출함 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/OpenAI Codex (search)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기