Swiftlet — это Swift + Metal рантайм для гибридной модели Qwen3-Next и Qwen3.5/3.6 MoE. Он держит в памяти только небольшое dense-ядро модели, а веса routed Mixture-of-Experts экспертов стримит из хранилища по мере необходимости. Поэтому 35B-модель запускается даже на iPhone 17 примерно в 2.5 GB RAM и выдаёт около 1 токена в секунду. Насколько известно авторам, это первый случай, когда модель такого класса работает нативно на телефоне.
Статус — working end to end: обе модели дают корректный результат. Сейчас упор на скорость ядра: decode loop упирается в диспетчеризацию, а не в I/O, так что запас есть. Честное ожидание: активно только около 3B параметров на токен, поэтому модели болтают и пишут как большие, но факты помнят как маленькие.
Архитектура такая: каждый слой отправляет токен к 10 из 512 экспертов (80B) или 8 из 256 (35B). Swiftlet держит в памяти dense-веса: attention, DeltaNet-проекции, routers, shared experts и эмбеддинги — это примерно 1.3 GB (35B) или 2.5 GB (80B) в 4-bit. Десятки тысяч routed-экспертов упакованы в .qpack-контейнер с фиксированным шагом, так что выборка одного эксперта — это ровно один pread с SSD, без mmap и page-cache thrash. Горячие эксперты кэшируются в ограниченном пуле с LFU плюс eviction по недавности; hit rate 43–70% при той же пропускной способности, потому что SSD справляются с промахами. Весь forward pass идёт на Metal с шейдерами, которые компилируются в рантайме. 75% слоёв используют Gated DeltaNet linear attention с фиксированным recurrent state, поэтому у этих слоёв нет растущего KV cache при любой длине контекста.
Swiftlet — это библиотека в первую очередь. SwiftletCore можно добавить в любое macOS/iOS-приложение, SwiftletSession даёт чат со стримингом, кэшированием, сэмплингом и обработкой нехватки памяти. CLI умеет chat, generate и swiftlet-repack для сборки контейнеров из MLX-чекпойнтов, включая стриминг с Hugging Face с докачкой. swiftlet-server говорит по OpenAI chat-completions API на loopback. Приложение Priv AI на iOS уже использует SwiftletCore как движок: пользователь скачивает модель и общается локально, без сервера. Experimental Models пока ждут App Store review, но исходники открыты на leonickson1/localLLM.
Требования: Apple Silicon, macOS 14+ или iOS 17+, свободное место 18 GB для 35B и 42 GB для 80B. Каждый слой проверен против mlx-lm reference, инкрементальный декодинг сверен с обработкой целой последовательности, Metal-кернелы совпадают с CPU-референсом. TurboFieldfare доказал концепцию expert-streaming для Gemma на Mac, и Swiftlet берёт оттуда опубликованные уроки: pread в ограниченный пул слотов вместо mmap, LFU+recency, фиксированный шаг и runtime-компиляция шейдеров. Остальное написано с нуля — около 10k строк Swift и Metal под архитектуру Qwen с Gated DeltaNet, gated GQA и high-sparsity MoE с shared expert. colibrì повлиял на кэширование, mlx-lm служит эталоном корректности. Код собирали вместе с Claude Code. Лицензия Apache 2.0, веса Qwen тоже Apache 2.0.