До 3,2 пъти по-бърза инференция с LFM2.5-DSpark
- По-бърз инференс: до 3,18-кратно увеличение на пропускателната способност на GPU и до 2,87 пъти на устройството.
- Към агентен инференс на устройството: намалява латентността на извикването на функции средно с 57% за LFM2.5-2.6B
- Поддръжка за llama.cpp и SGLang още от първия ден: интеграцията на DSpark, съвместима с LFM, е публикувана като отворен код нагоре по веригата
Как работи DSpark
Фазата на декодиране при инференс на LLM традиционно е ограничена от паметта. По-голямата част от латентността идва от поточното прехвърляне на теглата от DRAM към SRAM, а не от интензивни изчисления. Спекулативното декодиране решава този проблем, като използва лек draft модел за генериране на кандидат-токени, след което целевият модел проверява всички тях с един проход напред, споделяйки разхода за зареждане на теглата между всички проверявани токени.
През годините са предложени множество подходи за спекулация, като най-известните са EAGLE-3, DFlash и най-скоро DSpark, който комбинира три компонента:
- Паралелен гръбнак в стил DFlash, обусловен от контекстовите характеристики на целевия модел, който създава скрити състояния за всички draft токени с един проход напред.
- Лека последователна глава, моделирана като верига на Марков между съседни токени, която добавя зависимост между токените и повишава процента на приемане на по-късни позиции.
- Проверяващ модул с планиране според увереността, който прогнозира вероятността всеки токен да оцелее и премахва суфикси с ниска увереност, когато проверката би струвала повече, отколкото спестява.
Обучение и архитектура
Следваме рецептата на DSpark с по-голяма и по-разнообразна смес от данни, обхващаща данни за SFT, чат, код и извикване на функции. Въз основа на нашите аблационни изследвания първите версии на draft моделите са опростени draft модели, базирани единствено на механизъм за внимание, с 5 слоя и блок от 9. За всеки draft модел проведохме 15 епохи върху целия набор от данни и избрахме епохата с най-висок процент на приемане, а не с най-ниска загуба.
Получените draft модели са сравнително малки, като всеки има приблизително ~300 млн. параметъра.
| Компонент | LFM2.5-1.2B-Instruct | LFM2.5-8B-A1B | LFM2.5-2.6B |
|---|---|---|---|
| Стек на декодера (5 слоя) | 241.2M | 241.2M | 241.2M |
| Проекция на скритото състояние | 21.0M | 21.0M | 21.0M |
| Глава на Марков | 33.6M | 65.5M | 65.5M |
| Нормализации + глава за увереността | 27.5k | 27.5k | 27.5k |
| Общо | 295.7M | 327.7M | 327.7M |
Равенство на качеството
При жадно декодиране draft токен се приема само ако съвпада с разпределението на целевия модел. При отхвърляне токенът на самия целеви модел заема мястото му. Следователно генерираната последователност е идентична с базовото жадно декодиране по конструкция, така че точността по бенчмаркове (pass@1 или точно съвпадение) не се променя.
Ускоряване на инференса върху CPU и GPU
Нашите DSpark draft модели за LFM2.5 се предлагат с поддръжка за llama.cpp още от първия ден (реализацията е изградена върху официалната кодова база, която използваме с експериментални Metal ядра) и **SGLang (**реализацията се основава на официалната реализация на DSpark в SGLang).
Измерваме пропускателната способност на устройството с llama.cpp и Metal на MacBook Pro с M4 Max, като използваме FP16 GGUF тегла и до 256 изходни токена. Измерваме пропускателната способност на GPU със SGLang върху един H100 с 80 GB в BF16. И двете конфигурации използват размер на DSpark блока 9, размер на партидата 1 и температура 0. Оценяваме ги върху пет набора от данни за бенчмарк.
И трите draft модела осигуряват осезаемо подобрение на пропускателната способност както върху мащабния ускорител (H100), така и при периферно разгръщане (MacBook с M4 Max).
При LFM2.5-2.6B ускорението на MacBook е особено забележимо, тъй като повишава нивото на интерактивност, на което потребителят може да се наслаждава, далеч над пропускателната способност на повечето патентовани облачни модели (около ~140 токена/сек., в зависимост от набора от данни).
| Набор от данни | Приемане (от 10) | Ускорение на H100 | Ускорение на M4 Max |
|---|---|---|---|
| MATH500 | 5.42 | 3.06x 326 → 1000 токена/сек. | 2.25x 61 → 137 токена/сек. |
| HumanEval | 4.54 | 2.56x 326 → 835 токена/сек. | 2.63x 61 → 161 токена/сек. |
| MBPP | 4.71 | 2.64x 326 → 861 токена/сек. | 2.11x 62 → 132 токена/сек. |
| GSM8K | 4.32 | 2.22x 312 → 693 токена/сек. | 2.36x 60 → 143 токена/сек. |
| MT-Bench | 5.07 | 2.87x 325 → 933 токена/сек. | 1.99x 62 → 123 токена/сек. |
| Средно | 4.81 | 2.67x 323 → 864 токена/сек. | 2.27x 61 → 139 токена/сек. |
В различни сценарии с множество инструменти DSpark намалява латентността средно с 57% за LFM2.5-2.6B.
При LFM2.5-1.2B-Instruct наблюдаваме значително по-голяма вариация в процентите на приемане по набори от данни, така че ускорението варира с до 52% в зависимост от разпределението на базовия текст.
| Набор от данни | Приемане (от 10) | Ускорение на H100 | Ускорение на M4 Max |
|---|---|---|---|
| MATH500 | 6.02 | 2.56x 668 → 1712 токена/сек. | 2.62x 140 → 366 токена/сек. |
| HumanEval | 5.31 | 2.26x 664 → 1499 токена/сек. | 2.87x 136 → 389 токена/сек. |
| MBPP | 5.52 | 2.37x 667 → 1578 токена/сек. | 2.74x 137 → 375 токена/сек. |
| GSM8K | 4.34 | 1.67x 624 → 1041 токена/сек. | 2.73x 140 → 381 токена/сек. |
| MT-Bench | 3.90 | 1.66x 657 → 1091 токена/сек. | 1.72x 137 → 237 токена/сек. |
| Средно | 5.02 | 2.10x 656 → 1384 токена/сек. | 2.54x 138 → 350 токена/сек. |
При LFM2.5-8B-A1B процентът на приемане се увеличава в сравнение с двата плътни модела, но на устройството получаваме средно само 18% подобрение. Тази разлика се дължи на текущата реализация на MoE в Metal бекенда на llama.cpp, както и на факта, че проверката на k токена активира повече експерти и съответно повече пренос на тегла, отколкото една стъпка на декодиране.
| Набор от данни | Приемане (от 10) | Ускорение на H100 | Ускорение на M4 Max |
|---|---|---|---|
| MATH500 | 8.27 | 3.18x 428 → 1362 токена/сек. | 1.21x 93 → 112 токена/сек. |
| HumanEval | 7.02 | 2.58x 426 → 1100 токена/сек. | 1.12x 91 → 101 токена/сек. |
| MBPP | 6.93 | 2.64x 426 → 1122 токена/сек. | 1.09x 89 → 97 токена/сек. |
| GSM8K | 4.02 | 1.29x 385 → 496 токена/сек. | 1.44x 90 → 129 токена/сек. |
| MT-Bench | 8.52 | 3.02x 426 → 1288 токена/сек. | 1.04x 87 → 90 токена/сек. |
| Средно | 6.95 | 2.54x 418 → 1074 токена/сек. | 1.18x 90 → 106 токена/сек. |
Как да използвате LFM2.5-DSpark
Стартирането на DSpark draft моделите със SGLang изисква версия на SGLang с поддръжка на DSpark за целеви модели LFM2 (PR #31041). Стартирайте целевия модел с прикачен draft модел:
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
След това изпратете заявка към съвместимата с OpenAI крайна точка на адрес http://localhost:30000/v1. Размерът на блока се прочита от config.json на draft модела; базовата конфигурация е същата команда без трите флага --speculative-*.
Стартирането им с llama.cpp изисква съответната компилация на llama.cpp (PR#27383).
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 99
Размерът на блока се прочита от страничните метаданни (n-max се ограничава до него). Спекулативното декодиране е точно: целевият модел проверява всеки предложен токен, така че жадният изход е равен на изхода само на целевия модел; timings за всеки отговор показва draft_n / draft_n_accepted.
Първи стъпки
Контролните точки на DSpark draft моделите са достъпни в Hugging Face като Safetensors и във формат GGUF:
- Safetensors: LFM2.5-2.6B-DSpark, LFM2.5-1.2B-Instruct-DSpark и LFM2.5-8B-A1B-DSpark
- GGUF: LFM2.5-2.6B-DSpark-GGUF, LFM2.5-1.2B-Instruct-DSpark-GGUF, LFM2.5-8B-A1B-DSpark-GGUF
Нямаме търпение да видим какво ще създадете.
Цитиране
За цитиране използвайте следната библиографска справка или BibTeX:
Liquid AI, "LFM2.5-DSpark: Up to 3.2x Faster Inference from H100 to MacBook", Liquid AI Blog, Aug 2026.
@article{liquidAI2026dspark,
author = {Liquid AI},
title = {LFM2.5-DSpark: Up to 3.2x Faster Inference from H100 to MacBook},
journal = {Liquid AI Blog},
year = {2026},
note = {www.liquid.ai/blog/lfm2.5-dspark},
}
Модели, споменати в тази статия 6
Статии, споменати в тази статия 3
Общност
· Регистрирайте се или влезте в профила си, за да коментирате
Модели, споменати в тази статия 6
Статии, споменати в тази статия 3
Преведено автоматично от английски. Оригиналната статия е на връзката по-долу.



