Skip to content
Neuronavt
Go back

Splash ускоряет локальную генерацию на Mac

Инструмент7/10

Коротко

Статья разбирает Splash 1.1.0 — движок Inco AI для локального запуска нескольких языковых моделей на Apple silicon — и объясняет, почему скорость зависит от сценария, кэширования и модели. В тесте перевода на M3 Max короткий запрос достиг 52,8 токена/с, но эти результаты нельзя напрямую переносить на другие модели и задачи.

Контекст

Inco AI разрабатывает инфраструктуру для выполнения языковых моделей. Splash переносит специализированные вычисления на Apple silicon; статья рассматривает его архитектуру, опубликованные разработчиками сравнения, личный тест автора и требования для запуска на macOS.

Главное

Как сделано

Splash использует подготовленные Metal-ядра для ограниченного набора поддерживаемых моделей, а также сервер, планировщик и кэш. Для ускорения генерации применяется спекулятивное декодирование: DFlash 2 заранее предлагает блок токенов, а основная модель проверяет его за один проход и принимает подходящую часть. Эффект зависит от затрат на черновик и доли принятых токенов.

У движка есть встроенный чат и API, совместимые с OpenAI и Anthropic. В статье приведены команды установки через Homebrew: brew install incoai/tap/splash, затем запуск Qwen3.8-27B с splash serve --model 'unsloth/Qwen3.8-27B-GGUF:UD-Q4_K_M'; для Q8_0 используется splash serve --model 'unsloth/Qwen3.8-27B-GGUF:Q8_0'. При первом запуске скачивается подходящая DFlash2 и подготавливаются веса.

Результаты

На M3 Max с 40 ядрами GPU и 128 ГБ объединённой памяти, macOS 27.0.0 и unsloth/Qwen3.8-27B-GGUF:Q8_0 автор получил при переводе четыре результата: 53 входных и 48 выходных токенов — 52,8 токена/с, TTFT 1,8 с; 120 входных и 109 выходных — 36,3 токена/с, TTFT 0,9 с; 457 входных и 1 747 выходных — 43,0 токена/с, TTFT 2,6 с; 13 595 входных и 28 704 выходных — 29,8 токена/с, TTFT 79,3 с.

В таблице разработчиков для Qwen3.8-27B на Unsloth UD-Q4_K_M Splash показал 74 токена/с на M5 Pro с 20 ядрами GPU и 92 токена/с на M3 Max с 40 ядрами GPU. Для сравнения, llama.cpp без спекулятивного декодирования выдавал соответственно 16 и 17 токенов/с, а с MTP — 27 и 20. Отдельно для первоначального пакета Qwen3.8-27B-Splash на M5 Pro с 16 ядрами GPU и 48 ГБ памяти указаны 282 мс до первого токена при точном повторе закэшированного запроса длиной 32K и 96 секунд для нового запроса такой длины.

Ограничения

Поддержка ограничена конкретными моделями и сборками: в версии 1.1.0 указаны Qwen3.8-27B и Qwen3.6-35B-A3B в GGUF от Unsloth и поддерживаемых 4-битных сборках MLX. Для GGUF заявлен диапазон от UD-IQ1_S до Q8_0, но исключены UD-Q8_K_XL и веса основной модели в BF16; произвольная GGUF-модель автоматически не становится совместимой. Требуются M3 или новее и macOS 26.4+; для 4-битных вариантов указаны минимум 36 ГБ объединённой памяти и рекомендация 48 ГБ, хотя некоторые компактные GGUF-варианты рассчитаны на 24 ГБ.

Числа скорости относятся к разным моделям, квантованиям, компьютерам и типам нагрузки. Сравнение разработчиков — не независимый универсальный бенчмарк, а личный тест автора содержит по одному результату на каждый запрос. Ускорение генерации не означает такого же ускорения задачи целиком, где есть обработка входа, вызовы инструментов и ожидание ответов. Кэш помогает лишь при повторном использовании контекста; новый длинный запрос всё равно нужно обработать. Специализация также означает необходимость отдельно добавлять поддержку новых семейств моделей. Код движка открыт под Apache 2.0, но лицензии весов регулируются отдельно.

Что взять себе

Читать оригинал, если…

Откройте оригинал, если нужны таблицы тестов, подробности поддерживаемых сборок и требований, а также команды установки и запуска.