Компания LiquidAI представила специализированные модели-черновики (draft models) для семейства LFM2.5, использующие алгоритм DSpark. Это решение позволяет значительно ускорить фазу декодирования (inference) за счет спекулятивного декодирования, не меняя итоговое качество вывода. Поддержка реализована «из коробки» в актуальных сборках llama.cpp и SGLang.
01Как работает DSpark
Традиционно фаза декодирования ограничена пропускной способностью памяти (memory-bound). DSpark решает это, используя легковесную модель-черновик для генерации кандидатов, которые основная модель проверяет одним проходом. Архитектура DSpark включает:
- Параллельный бэкбон (DFlash-style): генерирует скрытые состояния для всех токенов-кандидатов за один проход.
- Марковская голова: добавляет зависимость между соседними токенами, повышая процент принятия на поздних позициях.
- Верификатор с планированием уверенности: отбрасывает низко-уверенные суффиксы, если их проверка дороже экономии.
02Архитектура и параметры
Черновики имеют небольшой размер (~300M параметров), что минимизирует накладные расходы на память. Они обучались на 15 эпохах с выбором модели по максимальному проценту принятия токенов, а не минимальной потере.
| Компонент | LFM2.5-1.2B | LFM2.5-2.6B | LFM2.5-8B-A1B |
|---|---|---|---|
| Decoder stack (5 layers) | 241.2M | 241.2M | 241.2M |
| Hidden-state projection | 21.0M | 21.0M | 21.0M |
| Markov head | 33.6M | 65.5M | 65.5M |
| Norms + confidence head | 27.5k | 27.5k | 27.5k |
| Итого | 295.7M | 327.7M | 327.7M |
03Бенчмарки: H100 и Apple M4 Max
Тестирование проводилось на GPU NVIDIA H100 80GB (BF16, SGLang) и MacBook Pro M4 Max (FP16 GGUF, llama.cpp). Блок специкуляции (block size) установлен на 9, температура 0.
LFM2.5-2.6B
Наиболее сбалансированная модель. На MacBook M4 Max скорость выросла с ~61 до ~139 токенов/с, что сопоставимо с облачными API.
| Датасет | Принято (из 10) | Ускорение H100 | Ускорение M4 Max |
|---|---|---|---|
| MATH500 | 5.42 | 3.06x (326→1000 tok/s) | 2.25x (61→137 tok/s) |
| HumanEval | 4.54 | 2.56x (326→835 tok/s) | 2.63x (61→161 tok/s) |
| MT-Bench | 5.07 | 2.87x (325→933 tok/s) | 1.99x (62→123 tok/s) |
| Среднее | 4.81 | 2.67x | 2.27x |
LFM2.5-1.2B-Instruct
Маленькая модель показывает высокий прирост на GPU, но более вариативна на CPU/Metal в зависимости от текста.
| Датасет | Принято (из 10) | Ускорение H100 | Ускорение M4 Max |
|---|---|---|---|
| MATH500 | 6.02 | 2.56x (668→1712 tok/s) | 2.62x (140→366 tok/s) |
| HumanEval | 5.31 | 2.26x (664→1499 tok/s) | 2.87x (136→389 tok/s) |
| Среднее | 5.02 | 2.10x | 2.54x |
LFM2.5-8B-A1B
Модель с экспертами (MoE) показывает огромный прирост на H100 (до 3.18x), но на MacBook M4 Max ускорение скромное (~1.18x). Причина — текущая реализация Metal в llama.cpp и высокая стоимость активации экспертов при верификации.
04Запуск: SGLang и llama.cpp
Для работы требуется специфическая сборка фреймворков с поддержкой DSpark (PR #31041 для SGLang, PR#27383 для llama.cpp).
Запуск через SGLang
Запускаем целевую модель с подключенным черновиком. Блок размера берется из config.json черновика.
python -m sglang.launch_server \
--model-path LiquidAI/LFM2.5-2.6B \
--speculative-algorithm DSPARK \
--speculative-draft-model-path LiquidAI/LFM2.5-2.6B-DSpark \
--speculative-draft-attention-backend flashinfer \
--disable-radix-cache --mem-fraction-static 0.75 --port 30000Запуск через llama.cpp
Используем флаг -md для указания модели-черновика. Параметр --spec-draft-n-max ограничивает размер блока.
llama-server -m LFM2.5-2.6B-F16.gguf \
-md LFM2.5-2.6B-DSpark-F16.gguf \
--spec-type draft-dspark --spec-draft-n-max 10 --spec-draft-n-min 0 \
-fa on -ngl 9905Кому подойдёт / что запустится
- Для локальных агентов (MacBook M4): LFM2.5-2.6B-DSpark — лучший выбор. Скорость ~139-161 ток/с делает интерактивное использование комфортным. Снижение задержки вызова функций (function-calling) на 57%.
- Для продакшена (H100/A100): LFM2.5-8B-A1B-DSpark дает до 3.2x ускорения пропускной способности. LFM2.5-1.2B-DSpark также эффективен для высоконагруженных легких задач.
- Железо: Требуется GPU с достаточной VRAM для размещения основной модели + черновика (~300M доп. параметров). На CPU/Metal работает, но прирост зависит от архитектуры (максимально на M4 Max для моделей до 2.6B).
Чекпоинты доступны на Hugging Face в форматах Safetensors и GGUF.
Источник: Hugging Face ↗
