SharpAI/SwiftLM
⚡ Native MLX Swift LLM inference server for Apple Silicon. OpenAI-compatible API, SSD streaming for 100B+ MoE models, TurboQuant KV cache compression, MACOS + iOS iPhone app.
그것은 무엇인가
SwiftLM은 Swift로 작성된 고성능 추론 서버로, Apple Silicon에서 MLX(Apple의 머신러닝 프레임워크) 모델을 실행합니다. 표준 OpenAI 호환 API(/v1/chat/completions)를 제공하므로 기존 클라이언트와 도구는 수정 없이 연결할 수 있습니다. 일반적인 Python 기반 스택과 달리 Python 런타임이나 GIL 없이 단일 네이티브 바이너리로 컴파일됩니다. README는 Apple Silicon에서의 베어메탈 성능을 강조합니다.
이것은 진지하고 활발하게 개발된 프로젝트로, 깊은 엔지니어링 세부 사항을 포함합니다: 벤치마크 테이블, 버그 수정 설명(32GB Mac에서 노출된 메모리 버그), 슬라이딩 윈도우 경계 버그 후 비트 동일 롤백을 제공하는 MTP 투기적 디코딩, 과대한 MoE 모델을 위한 --stream-experts SSD 스트리밍과 같은 성능 기능이 있습니다.
주요 기능 및 혁신
OpenAI 호환 API — OpenAI 스타일 엔드포인트의 드롭인 대체. 모델은 Hugging Face에서 자동 다운로드됩니다(예:
mlx-community/gemma-4-26b-a4b-it-4bit).MoE(Mixture-of-Experts) 최적화 — Gemma 4 26B와 같은 모델(토큰당 26B 파라미터 중 약 4B만 활성화)에서 SwiftLM은 활성 전문가만 읽어 동일한 메모리 사용량으로 밀집 27B 모델보다 5~6배 빠른 디코딩 속도를 달성합니다.
TurboQuant — 핵심 기능: KV 캐시를 4배 압축합니다. Gemma 4-26B 4비트의 100K 컨텍스트에서 66.9 tok/s(기준 27.5 tok/s)(2.43배 속도 향상)을 제공하고 40K 컨텍스트에서 OS RAM을 48.7GB에서 18.2GB로 줄입니다. 8비트에서는 48.3 tok/s(바닐라 14.9)를 제공합니다(3.24배). README는 TurboQuant가 대역폭 제약 모델에서 MTP보다 종종 더 효과적임을 명시합니다.
MTP(멀티 토큰 예측/투기적 디코딩) — 단계당 여러 토큰을 예측합니다. 8비트 모델(대역폭 제약)에서 MTP는 40K 컨텍스트에서 +20%, 100K에서 +51% 향상을 제공합니다. README는 MTP가 도움이 되지 않는 경우(4비트 MoE는 계산 제약이며 TurboQuant와 결합하면 계산이 오버헤드가 되어 손실)를 주의 깊게 설명합니다.
SSD 스트리밍(
--stream-experts) — 통합 메모리에 너무 큰 모델의 경우 SwiftLM은 NVMe SSD에서 직접 전문가 레이어를 스트리밍할 수 있습니다. 예: 126GB DeepSeek-V4-Flash가 64GB M5 Pro에서 TurboQuant를 사용하여 40K 컨텍스트에서 약 4.2 tok/s로 실행(없으면 0.32 tok/s).긴 컨텍스트 지원 — 기본 Mac mini M6(32GB)에서 약 80.7K 토큰, M5 Pro에서 100K까지 테스트되었으며 KV 캐시 크기 조정과
--turbo-kv장거리 리콜 수정(#175,#65)에 세심한 주의를 기울였습니다.메모리 가드 및 정확성 — README는 32GB 머신이 숨겨진 버그를 노출시켰음을 문서화합니다(무제한 MLX 버퍼 캐시, Metal GPU 타임아웃으로 충돌하는 잘못된 KV 캐시 추정,
preprocessor_config.json에image_mean이 없는 경우 VLM 폴백, 청크 프리필 수정). 또한 DFlash(다른 투기적 디코딩 프로젝트)는 그리디 디코딩 고정으로 인해 Qwen3.6 프로덕션에 부적합하며 적절한 수정(Leviathan/Chen의 확률적 사후 샘플링)을 지적합니다.
왜 중요한가
- 네이티브 Apple Silicon 성능 — Python 오버헤드 없음. 단일 바이너리가 Metal, 통합 메모리 및 M-시리즈 칩의 전체 대역폭을 사용합니다.
- 메모리 효율성 — 대규모 MoE 모델(예: 26B)을 32GB Mac에서 실행 가능하게 하고 SSD 스트리밍을 통해 64GB에서 126GB 모델도 실행 가능하게 합니다.
- 긴 컨텍스트에서의 속도 향상 — TurboQuant와 MTP는 벤치마크 기반의 신중한 방식으로 결합됩니다. README에는 언제 무엇을 사용해야 하는지에 대한 테이블이 포함됩니다(40K 이상의 8비트에는
--mtp, TurboQuant로 최대 처리량을 얻으려면--turbo-kv, 24GB Mac에는--stream-experts).
실용적인 사용 사례
- Mac에서 LLM을 로컬로 실행하여 개발, 테스트 또는 OpenAI 호환 엔드포인트로 프로덕션 운영.
- GPU 메모리가 제한된 랩톱/데스크톱에 배포(예:
--stream-experts를 사용하는 24GB Mac). - RAM을 소진하지 않고 40K~100K 토큰이 필요한 긴 컨텍스트 애플리케이션(코드 파일, 문서).
- iOS 통합(
SwiftBuddyiOS 데모가 있습니다).
기술 노트(공정하게)
- README에는 다양한 칩(M1 Ultra, M5 Pro, M6)과 모델 유형(4비트 대 8비트, MoE 대 밀집)에 걸친 벤치마크 테이블이 풍부하며 명확한 주의 사항이 있습니다: "TTFT 제외", "메모리 가드가 2GB를 초과하는 스왑 중단", "40.8K에서 니들 체크는 두 모드 모두 신뢰할 수 없음".
- 제한 사항에 대해 정직합니다: MoE에서
--gpu-layers는 매우 느리고(단일 코어 CPU 폴백), MTP+TurboQuant는 계산 제약 모델에서 TurboQuant 단독보다 성능이 저하될 수 있으며, DFlash는 프로덕션 비적합으로 표시됩니다. - 빌드에는 Homebrew의
cmake가 필요하며 서브모듈(mlx-swift-lm포크)에서 Metal 커널을 컴파일하고 릴리스 tarball은 자체 포함입니다.
요약: Apple Silicon LLM 추론을 위한 진지하고 잘 설계된 벤치마크 기반 Swift 서버로, 두드러진 TurboQuant KV 압축과 신중한 MoE/SSD 스트리밍 지원을 갖추고 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트