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
  • 프로젝트