SwiftLM: сервер инференса моделей машинного обучения на Swift
SwiftLM — это сервер для инференса моделей машинного обучения на Swift, оптимизированный для Apple Silicon. Он обеспечивает совместимость с API OpenAI и обеспечивает высокую производительность благодаря отсутствию Python и GIL.
Проект подходит для разработчиков, работающих с ML-моделями, которые хотят избавиться от ресурсов, необходимых для Python и при этом использовать мощь Apple Silicon. Здесь отсутствуют лишние копии памяти, а производительность на уровне "металла" позволяет запускать тяжелые модели, поддерживая потоковую передачу данных с SSD. Запустить сервер можно, скачав предсобранный бинарник с гитхаба или собрав его из исходников, что также поддерживает автоматическую загрузку необходимых моделей.
На данный момент ограничение проекта — это необходимость использования на железе Apple с macOS или iOS. Использование других операционных систем не предусмотрено, и для работы нужны модели, совместимые с MLX.
Проект SwiftLM — это сервер для вывода моделей машинного обучения, написанный на языке Swift. Он обеспечивает совместимость с API OpenAI и обеспечивает высокую производительность, поскольку разработан для работы на Apple Silicon без необходимости использования Python и GIL, что позволяет достичь максимальной скорости обработки.
Установка и запуск
Существует два способа начать работу с проектом: скачать предсобранный бинарный файл или собрать проект из исходников.
Скачивание предсобранного бинарного файла
Для этого нужно перейти на страницу Релизы и скачать архив с последней версией.
Распакуй архив и запусти сервер следующими командами:
tar -xzf SwiftLM--macos-arm64.tar.gz
./SwiftLM --model mlx-community/Qwen2.5-3B-Instruct-4bit --port 5413
Сборка из исходников
Чтобы собрать проект, необходимо выполнить следующие команды:
git clone --recursive https://github.com/SharpAI/SwiftLM
cd SwiftLM
./build.sh
После этого сервер можно запустить так:
./build/release/SwiftLM --model mlx-community/gemma-4-26b-a4b-it-4bit --port 5413
Производительность
SwiftLM показывает отличные результаты на устройствах с памятью 32 ГБ, например на Mac mini M6. Модели Mixture of Experts (MoE) с 4-битными весами показывают высокий уровень производительности: скорость декодирования может достигать 52.2 токенов в секунду. Однако для моделей с большим объемом весов, таких как gemma-4-26b-a4b-it-8bit, использование SSD для потоковой передачи становится критически важным.
Поддерживаемые возможности
- Работа с LLM (языковыми моделями) и VLM (визуально-языковыми моделями) через OpenAI-совместимый API.
- Поддержка моделей на базе HuggingFace.
- Интеграция спецификации TurboQuant для быстрой работы с памятью.
- Возможность потоковой передачи с SSD для моделей MoE.
Ограничения
Несмотря на высокую производительность, запуск больших моделей MoE на оборудовании с 64 ГБ может быть проблематичным из-за необходимости использования SSD для потоковой передачи весов и перегрузки ввода-вывода, что может выводить GPU из строя. Если ты планируешь использовать MTP (много-токенное предсказание) на больших моделях, будь готов к потенциальным снижениям производительности из-за этих ограничений.
Для некоторых моделей необходимо добавить флаг --stream-experts для улучшения скорости работы, особенно на крупных моделях, использующих распределение экспертов.
Радар проекта: 63 из 100 — крепкий проект
- Импульс 9 ≈ 18 звёзд в месяц
- Темп разработки 85 128 коммитов за 12 недель
- Зрелость 80 проекту 8 месяцев, больше 100 релизов
- Сообщество 52 19 участников, 56 форков
- Свежесть 97 последний коммит — 6 дней назад
- Быстрый старт 20 инструкции по запуску не нашли
- Готовность к продакшену 75 релиз b911, автосборка, тесты
- Безопасность и доверие 60 лицензия MIT, организация
- Документация 93 README 46.9 тыс. знаков, 64 раздела, папка docs
- Экосистема 57 3 подписчика на обновления, 10 тем
Как считаем
Только открытые данные GitHub на 07.11.2026, без оценок нейросети. Каждая ось — от 0 до 100, итог — среднее.
- Импульс — звёзд в день: за время наших замеров, а пока их нет — за всю жизнь проекта; 200 в день — максимум.
- Темп разработки — коммитов за последние 12 недель; 300 — максимум. Пока GitHub не досчитал статистику, ось не учитывается.
- Зрелость — возраст проекта (3 года — максимум) и число релизов (30 — максимум), поровну.
- Сообщество — участников с коммитами (200 — максимум) и форков (5000 — максимум), поровну.
- Свежесть — дней с последнего коммита: сегодня — 100, полгода и больше или архив — 0.
- Быстрый старт — в README есть команда установки, раздел «быстрый старт» или примеры использования, в репозитории — Docker и папка примеров, у проекта есть сайт или демо.
- Готовность к продакшену — релизы, версия 1.0 и выше, автосборка (GitHub Actions), тесты, лицензия, журнал изменений.
- Безопасность и доверие — открытая лицензия (своя — половина балла), политика безопасности (SECURITY.md), проект организации, правила для участников, не в архиве.
- Документация — объём и структура README, папка docs или сайт, оценка «здоровья сообщества» GitHub.
- Экосистема — звёзды (50 тыс. — максимум), подписчики на обновления (1000 — максимум), темы репозитория.
Открыть на GitHub: SharpAI/SwiftLM →
RepoRadar