leonickson1/Swiftlet
Swiftlet is a Swift and Metal runtime that runs large Qwen Mixture-of-Experts models locally on Apple devices by streaming expert weights from storage, enabling 35B and 80B models to run with low RAM, including on iPhone.
해결하는 문제
Swiftlet은 Qwen3-Next 및 Qwen3.5/3.6 시리즈(최대 80B 또는 397B 파라미터)와 같은 대규모 혼합 전문가(MoE) 모델을 소비자용 Apple 하드웨어(아이폰 포함)에서 실행할 수 있게 해줍니다. 전체 모델을 RAM에 상주시킬 필요 없이, SSD에서 GPU로 모델 가중치를 필요에 따라 스트리밍함으로써 메모리 병목 문제를 해결합니다.
작동 방식
Swiftlet은 메모리 관리를 위한 하이브리드 접근 방식을 사용합니다:
- 밀도 핵심 상주: 어텐션, 임베딩, 라우터와 같은 필수 밀도 가중치만 메모리에 상주시킵니다.
- 전문가 스트리밍: 라우팅된 전문가들은 고정 스테이프로
.qpack컨테이너에 패키징됩니다. 토큰이 처리될 때, 런타임은pread를 사용하여 저장소에서 필요한 전문가만 제한된 캐시 풀로 가져옵니다. - Metal 통합: 전체 전방 전파는 런타임 컴파일된 Metal 쉐이더를 사용해 GPU에서 실행됩니다.
- 선형 어텐션: 75%의 레이어에서 Gated DeltaNet 선형 어텐션을 활용하여, 컨텍스트 길이가 증가해도 KV 캐시가 커지지 않도록 합니다.
대상 사용자
- Apple Silicon 사용자: M1부터 M5까지의 맥 또는 iOS 17 이상을 사용하는 아이폰 사용자로서, 고파라미터 모델을 로컬에서 실행하고자 하는 개발자 및 애호가.
- iOS 앱 개발자: Swift 기반 애플리케이션에 고성능 로컬 LLM 엔진을 통합하고자 하는 개발자.
SwiftletCore패키지를 통해 가능합니다.
주요 특징
- 극도로 효율적인 RAM 사용: 4비트 기준으로 80B 모델은 약 4.3GB, 35B 모델은 약 2.6GB의 RAM에서 실행 가능.
- 크로스 플랫폼: macOS 14+ 및 iOS 17+에서 작동.
- 다양한 인터페이스: 앱 통합용 Swift 패키지, 벤치마크용 CLI, 제3자 UI용 OpenAI 호환 서버 제공.
- 검증된 정확성: 모든 레이어가
mlx-lm참조 구현과 비교되어 출력 일치를 보장합니다. - 아이폰 지원: 기본 아이폰에서도 35B 파라미터 모델을 실행 가능.
관련
- Dispatch
- 프로젝트
- 프로젝트
- Dispatch
- 프로젝트