Суть инновации: Дешевое ускорение без потери качества
Компания LiquidAI выпустила экспериментальный DSpark draft model для своей мультимодальной модели LFM2.5-VL-3B. Это решение использует технику специкулятивного декодирования (speculative decoding), позволяя «драфтеру» предсказывать блоки токенов, которые затем верифицируются основной моделью. Ключевое преимущество — минимальный оверхед по памяти (всего 280 млн параметров, что составляет 8.9% от базовой модели) при значительном приросте скорости.
Метрики производительности: CPU, GPU и Edge
Тестирование проводилось на различных платформах с использованием бенчмарка MMSpec. Результаты демонстрируют существенный разрыв между ускорением этапа декодирования (decode) и общей задержкой (end-to-end), что обусловлено законом Амдала: специкуляция ускоряет только генерацию, но не кодирование изображения (prefill).
| Платформа | Ускорение декодирования | Ускорение End-to-End | Инструментарий |
|---|---|---|---|
| Apple M5 Max (Edge) | до 3.13x | до 2.62x | MLX |
| Apple M3 Ultra (Edge) | до 2.14x | до 1.77x | llama.cpp |
| NVIDIA H100 (GPU) | до 2.66x | до 2.27x | SGLang / llama.cpp |
Архитектура драфтера: Как это работает
Драфтер LFM2.5-DSpark имеет архитектуру, основанную только на внимании (attention-only), с 4 слоями и размером блока k=9. Он обучался на смеси данных SFT для VLM, с акцентом на типичные рабочие нагрузки. Модель проецирует визуальные патчи и текстовые токены в общее пространство представлений, что позволяет драфтеру оперировать векторами скрытых состояний одинаковой размерности независимо от модальности входа.
- Decoder stack: 193.0M параметров (4 слоя).
- Hidden-state projection: 21.0M параметров.
- Markov head: 65.5M параметров.
- Norms + confidence head: 6.4k параметров.
- Итого: 279.5M параметров.
Практическое применение и интеграция
Модель доступна на Hugging Face в форматах Safetensors и GGUF. Поддержка DSpark реализована «из коробки» (day-one support) в популярных фреймворках:
- SGLang: Требует сборки с поддержкой DSpark (PR #40651). Запуск осуществляется через флаги
--speculative-algorithm DSPARKи указание пути к драфтеру. - llama.cpp: Поддержка через PR #29339. Используется флаг
--spec-type draft-dspark. - MLX-VLM: Поддержка через PR #2280. Драфтер указывается параметром
--draft-model.
Важно отметить, что специкуляция является exact (точной): целевая модель верифицирует каждый предложенный токен, поэтому жадный вывод (greedy output) драфтера и целевой модели идентичен. Это гарантирует, что ускорение не приводит к деградации качества ответов.
Источник: Hugging Face blog ↗
