Top.Mail.Ru
Что такое DFlash — как ускорить инференс любой LLM | Блог Serverflow Скачать
прайс-лист
Бесплатная
доставка по РФ
Бонус за
обратную связь
Интернет-магазин
Серверного оборудования
8 (800) 222-70-01 Консультация IT-специалиста Сравнение

Что такое DFlash — как ускорить инференс любой LLM

~ 10 мин
41
Средний
Статьи
Что такое DFlash — как ускорить инференс любой LLM

Введение

Еще год назад главным показателем качества больших языковых моделей был объем параметров — метод оценки “чем больше, тем лучше” работал как часы, так как только количество параметров могло действительно отразить производительность LLM. Но время шло, и от моделей начали требовать не только большой мозг, но и быстрые ноги, поэтому разработчики начали искать способ ускорить вывод нейронок вне зависимости от их размера, контекстного окна и других “но”. Способов было много, и одним из наиболее популярных стал так называемый DFlash. В этой статье специалисты компании ServerFlow расскажут вам, что из себя представляет DFlash, как он появился и как работает, в чем его преимущества и в каких моделях его применяют уже сегодня.

Что такое DFlash

DFlash (Block Diffusion for Flash Speculative Decoding) — это алгоритмический метод ускорения инференса больших языковых моделей от 2,5 до 6 раз при сохранении качества ответов, базирующийся на принципах спекулятивного декодирования с добавлением диффузионного подхода.

Чтобы понять, в чем соль DFlash, вспомним, как вообще работает любая LLM. Любая авторегрессионная LLM пишет ответ по одному токену за раз: посчитала слово, оглянулась на весь предыдущий текст, посчитала следующее. Вычислить несколько слов разом она не может, все строго по очереди. Из-за этого мощная видеокарта, на которой крутится модель, большую часть времени простаивает: она способна перемолоть кучу вычислений за раз, но модель подкидывает ей работу по одному токену. Чем длиннее ответ, тем сильнее это бьет по скорости — особенно на рассуждающих моделях, которые выдают тысячи токенов подряд.

Разработчики бились над этой проблемой не первый год, и одним из самых удачных решений стало спекулятивное декодирование. Идея в том, чтобы поставить рядом с большой моделью вторую — маленькую и быструю. Маленькая забегает вперед и предлагает сразу несколько следующих токенов, а большая проверяет всю пачку разом за один проход: что совпало с ее мнением — принимает, на первом расхождении обрывает и дописывает сама. Проверить готовую пачку за один проход дешево, это та параллельная работа, с которой отлично справляется GPU, а вот сгенерировать те же токены по одному стоило бы нескольких проходов. За счет этой разницы генерация продвигается на несколько токенов сразу.

Первые версии этого подхода, вроде популярной серии EAGLE-моделей, работали, но упирались в потолок. Их маленькая модель-подсказчик сама писала токены по одному, точно также как большая: чтобы предложить пять токенов, ей нужно было пять циклов инференса. Поэтому ее приходилось делать крошечной, в несколько сотен миллионов параметров, иначе она сама становилась тормозом. Ускорить сильнее не получалось — выигрыш в скорости не мог превысить 2-3 раз.

Выход нашли китайские ИИ-исследователи из команды z-lab, которые в начале 2026 года представили метод DFlash. Они догадались заменить маленькую LLM-подсказчика на диффузионную модель, которая выдает не по одному токену, а сразу весь блок информации за один инференс. Диффузионные модели умеют генерировать текст не слева направо, а целыми кусками параллельно, что делает из них отличных моделей-подсказчиков вместо медленных LLM, обеспечивая прирост скорости инференса от 2,5 до 6 раз.

Архитектура DFlash
Архитектура DFlash. Источник: Z-lab.

Как работает DFlash

Инференс ИИ-модели с модулем DFlash происходит в 3 этапа. Сначала большая модель обрабатывает вопрос и выдает самый первый токен. В этот момент из нее вытаскивают внутренние скрытые состояния сразу с нескольких слоев и сжимают их в одну компактную подсказку. сУТЬ в том, что в этих состояниях уже заложена информация о нескольких будущих токенах — большая модель фактически сама намекает, что будет дальше. Поэтому маленькой модели не приходится угадывать с чистого листа, у нее уже есть шпаргалка от старшего.

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

И наконец маленькая модель за один проход раскрывает целый блок токенов — все позиции сразу, а не каждое слово по отдельности. Большая модель проверяет этот блок, оставляет совпавшую часть, добавляет свой токен, и цикл повторяется уже с этой точки.

Теперь про обучение. Чтобы все это работало, маленькую модель заранее натаскивают на четырех принципах.
  • Во-первых, ее учат угадывать ровно то, что сказала бы большая модель. Для этого готовые пары "вопрос — ответ" прогоняют через большую модель, забирают ее внутренние подсказки и уже на них тренируют маленькую. Так подсказчик с самого начала подстраивается под манеру старшего.
  • Во-вторых, тренировку устраивают так, чтобы она один в один совпадала с реальной работой. Берут случайный токен ответа как отправную точку и заставляют модель достроить блок дальше — потому что в бою она тоже всегда стартует от последнего проверенного токена. Никакого разрыва между тем, как учили, и тем, как модель работает.
  • В-третьих, учитывают, что ранние токены в блоке важнее поздних. Логика простая: ошибешься в первом токене — все следующие уже не примут, каким бы верным ни был хвост. Поэтому за промахи в начале блока модель штрафуют сильнее, чем за промахи в конце, и она в первую очередь учится не косячить там, где это критично.
  • И в-четвертых, маленькая модель строится не с нуля — она переиспользует части большой модели, а именно словарь и выходной слой, причем в замороженном виде. Обучаются только ее собственные слои. За счет этого она выходит легкой и работает как компактная надстройка поверх большой модели, а не как отдельная громоздкая сеть.
DFlash обеспечивает наибольшую скорость инференса LLM
DFlash обеспечивает наибольшую скорость инференса LLM среди всех методов оптимизации. Источник: Z-lab.

Какие модели поддерживают DFlash

Если вы думаете, что DFlash — это какая-то привилегия для отдельных ИИ-моделей, например, самых современных нейронок Qwen3.8, то вы ошибаетесь. DFlash можно прикрутить к абсолютно любой LLM, потому что это не более, чем адаптер, интегрируемый в голову модели как токенайзер-эмбеддинг, увеличивающий количество обрабатываемых токенов за один проход. Поэтому вы можете встретить DFlash как надстройку в свежие модели, вроде той же Qwen-3.8-27b, так и в уже устаревшие нейронки, по типу DeepSeek R1 или Llama*-3.1.

DFlash модели на Hugging Face
DFlash-оптимизированные модели, доступные для скачивания на Hugging Face. Источник: Hugging Face.

Также нельзя не отметить, что DFlash поддерживается многими основными движками инференса LLM: SGLang, vLLM, Transformers и даже MLX от Apple могут использовать спекулятивное декодирование с использованием диффузионного драфтера, хотя в  vLLM и MLX эта возможность пока что числится как “экспериментальная”. Даже llama.cpp, исконно не дружащий с диффузионными нейронками из-за особенностей GGUF-формата, тоже позволяет экспериментировать с ускорением инференса LLM.

Прирост скорости инференса при использовании DFlash
Сравнение скорости инференса при использовании DFlash, EAGLE и стандартной LLM. Источник: Z-Lab.

Альтернативы DFlash

DFlash — не единственный способ разогнать вывод модели, ведь у него есть несколько заметных конкурентов и предшественников. Разберем каждый подробно.
  • Серия EAGLE (вплоть до EAGLE-3). Это ближайшая альтернатива и прямой предок DFlash — именно с ней его сравнивают в первую очередь. EAGLE тоже строится на спекулятивном декодировании с маленьким подсказчиком, но подсказчик здесь авторегрессионный: он пишет токены по одному, как и большая модель. Чтобы предложить, скажем, пять токенов, ему нужно пять последовательных прогонов. Из-за этой последовательности его приходится держать очень мелким, иначе он сам станет тормозом, а мелкий подсказчик угадывает неточно. В итоге ускорение упирается в 2-3 раза. EAGLE-3 дополнительно научился подмешивать в подсказчик внутренние признаки большой модели, что подняло точность, но фундаментальную проблему последовательной генерации это не убрало. DFlash фактически взял идею EAGLE и заменил ее слабое звено, авторегрессионного подсказчика, на параллельный диффузионный.
  • Medusa. Этот метод идет от обратного: он вообще отказывается от отдельной модели-подсказчика. Вместо нее к большой модели приделывают несколько дополнительных "голов" — небольших выходных блоков, каждый из которых предсказывает свой будущий токен (первая голова, следующий токен, вторая, токен через один, и так далее). Затем все эти предположения проверяются большой моделью. Плюс подхода в простоте: не нужно обучать и держать в памяти вторую сеть. Минус в том, что головы предсказывают токены независимо друг от друга и не видят контекста соседних предположений, поэтому качество догадок ниже, а итоговое ускорение скромнее, чем у более поздних методов вроде EAGLE-3 и DFlash.
  • DiffuSpec и SpecDiff-2. Это попытка использовать диффузию для подсказок, но принципиально иначе, чем в DFlash. Здесь в роли подсказчика берут крупную, полноценную диффузионную модель на несколько миллиардов параметров. Такой подсказчик действительно выдает качественные предположения и позволяет принимать длинные цепочки токенов за раз. Но за это приходится дорого платить: большая диффузионная модель занимает много видеопамяти и сама по себе медленная в работе, из-за чего реальный выигрыш в скорости оказывается умеренным — около 3–4 раз, а для серверов с ограниченной памятью такой подсказчик часто просто нерентабелен. DFlash сделал ставку на противоположное: подсказчик у него крошечный и легкий, а нехватку собственных "мозгов" он компенсирует подсказками, которые вытягивает из внутренних состояний большой модели.
  • PARD. Этот метод пытается научить маленькую обычную (не диффузионную) модель имитировать параллельную генерацию — то есть выдавать несколько токенов сразу, подражая диффузионному поведению. Идея дешевая в реализации, но у такого подсказчика нет глубокой связи с большой моделью и не хватает ее знаний, поэтому его догадки неточны. В результате ускорение снова застревает в районе трех раз — примерно там же, где и у старых методов.

Выводы

DFlash не просто так внезапно стал одним из самых популярных способов оптимизации LLM — до этого метода возможность ускорять инференс ИИ вплоть до 6 раз не давал ни один вид спекулятивного декодирования и даже альтернативные ИИ-архитектуры. Однако несмотря на то, что сейчас внедрение DFlash начало набирать обороты, до его полноценного внедрения в “корпоративный продакшен” должно еще пройти какое-то время — High-End компании всегда выжидают, когда технология пройдет тестирование в потребительском сегменте рынка, и только после этого начинают интеграцию популярной технологии в свои инфраструктуры. Так было с функцией размышления, так было со спекулятивным декодированием и так будет с DFlash. Но уже сейчас вы можете прочувствовать всю эффективность этой передовой системы в инференса многочисленных ИИ-моделей с интегрированным DFlash.

*LLAMA — проект Meta Platforms Inc.**, деятельность которой в России признана экстремистской и запрещена

**Деятельность Meta Platforms Inc. в России признана экстремистской и запрещена
Автор: Serverflow Serverflow
Поделиться

Комментарии 0

Написать комментарий
Сейчас тут ничего нет. Ваш комментарий может стать первым.
Написать отзыв
До 6 фото, размером до 12Мб каждое
Мы получили ваш отзыв!

Он появится на сайте после модерации.

Написать комментарий

Комментарий появится на сайте после предварительной модерации

До 6 фото, размером до 12Мб каждое
Мы получили ваш отзыв!

Он появится на сайте после модерации.

Мы свяжемся с вами утром

График работы: Пн-Пт 10:00-18:30 (по МСК)

Обработаем вашу заявку
в ближайший рабочий день

График работы: Пн-Пт 10:00-18:30 (по МСК)