Polymathic AI и изследователи от Princeton представиха FlashMap — модел-чернова на Flow Map за 6,14 пъти по-бързо декодиране на LLM
Изследователи от Polymathic AI, Принстънския университет, USC ISI, NYU и Flatiron Institute представиха FlashMap. Спекулативното декодиране с FlashMap заменя дискретния дифузионен модел-генератор с непрекъсната flow map. Той генерира цял блок от 16 токена за 1 forward pass. Токените в този блок остават съгласувани помежду си. При Qwen3-8B изследователският екип отчита до 6.14x ускорение без загуба на точност при GSM8K. Теглата на генератора за Qwen3-8B и Qwen3-4B са налични в Hugging Face, заедно с плъгини за vLLM и SGLang.
Накратко
- Размер: генератор с 0.5B параметъра (500M за Qwen3-8B, 475M за Qwen3-4B); генерира блокове от K = 16 токена.
- Работи на: същия GPU като целевия модел. Ускоренията в статията са измерени с 1 NVIDIA H200 NVL при едновременност 1 и bf16.
- Производителност: най-бързият тестван генератор за Qwen3-8B, средно с около 7% по-бърз от дообучен DFlash.
- Най-добър резултат: 6.14x ускорение при GSM8K при температура 0 (приета дължина 7.69 токена).
- Най-слаб резултат: 2.28x ускорение при Alpaca при температура 1. При Qwen3-4B (температура 0) изостава от DFlash при 4 от 9 задачи.
Какво представлява FlashMap?
FlashMap е генератор за спекулативно декодиране, който преобразува гаусов шум в блок от токени за 1 стъпка. Малък генератор предлага K токена. След това целевият модел проверява всички K токена в 1 паралелен pass и запазва най-дългия съвпадащ префикс. Резултатът остава точно такъв, какъвто би генерирал целевият модел.
Скоростта зависи от 2 неща. Колко от генерираните токени са приети и колко евтино са генерирани. EAGLE-3 генерира авторегресивно, така че разходът нараства с дължината на блока. DFlash генерира целия блок в 1 pass чрез блокова дифузия.
Защо дифузионните генератори губят приемане?
DFlash предсказва всяка позиция в блока независимо. Изследователският екип нарича това факторизирано приближение. Представете си продължение, което е „new york“ или „san diego“ с еднаква вероятност. Независимият генератор предлага „new diego“ или „san york“ в половината от случаите. Целевият модел отхвърля тези варианти на позиция 2.
FlashMap надгражда Flow Map Language Models. Всяка извадка от шум се преобразува в 1 пълен блок. Шумът избира съвместно режима за всяка позиция.
Как работи FlashMap?
Генераторът представлява дифузионен трансформатор (DiT) с 6 блока, embedding dimension 2048 и 16 attention heads. Той прочита скрити състояния от слоеве 1, 9, 17, 25 и 33 на целевия модел. Embedding матрицата и LM head са копирани от целевия модел и остават замразени.
Обучението протича на 2 етапа:
- Flow teacher: непрекъснат поток върху one-hot блокове от токени, обучен с cross-entropy. Препараметризацията на времето обработва речника от 151 936 токена на Qwen3.
- Flow map student: дестилацията на полугрупата превръща потока в денойзър с 2 времеви точки. Той преминава от шум към данни в 1 стъпка.
И двата генератора са обучени с 500K извадки от Open-PerfectBlend. Общият изчислителен ресурс за всички модели и аблации е около 4 600 GPU часа на H200.
Как се представя FlashMap при бенчмарковете?
Изследователският екип е дообучил EAGLE-3 и DFlash върху същите данни и при същите настройки. Тестовете обхващат 9 бенчмарка в областите на математиката, програмирането и чата, при температури 0 и 1.
- Скорост: FlashMap с 1 стъпка е най-бързият генератор при всяка задача за Qwen3-8B и при двете температури.
- Точност: FlashMap с 1 стъпка превъзхожда DFlash по дължина на приемане в 15 от 18 настройки. Той има приблизително наполовина по-малко параметри.
- Най-големи ползи при чат: при температура 0 подобрението спрямо DFlash е 5.5% при математически задачи и 11.1% при чат.
- Режим с 2 стъпки: дължината на приемане надминава тази на DFlash в 18 от 18 настройки, средно с 10%.
- EAGLE-3: при температура 1 има с 9% по-висока дължина на приемане, но работи с 35% по-бавно.
Тест с разбъркване проверява дали генерираните последователности използват реалната структура между токените. При 2 стъпки FlashMap възстановява по-голямата част от ползата от съвместната структура на учител с 16 стъпки. При 1 стъпка запазва само малка част от нея. Генерирането на 4 извадки от шум като дърво увеличава ускорението средно с 11%.
Сравнение: FlashMap спрямо други генератори за спекулативно декодиране
| Функция | FlashMap | DFlash | EAGLE-3 | DSpark |
|---|---|---|---|---|
| Стил на генериране | Непрекъсната flow map, 1 или 2 pass-а | Блокова дифузия, 1 pass | Авторегресивен, дърво | Полуавторегресивен |
| Зависимости между токените | Да, съвместни за блока | Не, независими за всяка позиция | Да, последователни | Да, лек последователен модул |
| Размер на генератора (Qwen3-8B) | 500M | 1B | 302M (дообучен, според статията за FlashMap) | Не е разкрит |
| Основно твърдение (собствен източник) | До 6.1x | До 6.17x при Qwen3-8B | До 6.5x | С 60 до 85% по-бърз на потребител спрямо MTP-1 |
| Средно ускорение, Qwen3-8B, T=0 (съпоставимо, статията за FlashMap) | 4.36x | 4.07x | 2.55x | Не е тестван |
| Ускорение при GSM8K, T=0 (съпоставимо) | 6.14x | 5.77x | 3.20x | Не е тестван |
| Лиценз на теглата | Apache-2.0 | MIT | Apache-2.0 (код) | Не е разкрит |
| Поддръжка | Transformers, vLLM, SGLang | Transformers, vLLM, SGLang | SGLang и други | DeepSeek-V4 serving |
Средните ускорения са изчислени от Marktechpost въз основа на Фигура 1(c) от статията за FlashMap. Съпоставимите редове използват дообучените базови модели на авторите.
Как се внедрява FlashMap?
Пакетът flashmap изисква само torch и transformers>=4.56. Инсталирайте го с uv pip install flashmap. Извикването на spec_generate стартира генератора и целевия модел заедно на 1 GPU.
За обслужване страницата на проекта предлага 2 варианта:
- vLLM 0.31: подайте генератора чрез
--speculative-config, като зададетеnum_speculative_tokensна 16. - SGLang 0.5.20: използвайте
--speculative-algorithm DSPARKс пътя към FlashMap draft.
Задайте num_steps=2, за да размените част от скоростта за по-висока степен на приемане. При семплиране при температура над 0 vLLM изисква "draft_sample_method": "probabilistic".
Основни изводи
- FlashMap генерира съвместно 16 токена в 1 pass чрез непрекъсната flow map.
- До 6.14x ускорение без загуба на точност при Qwen3-8B, с генератор от 0.5B.
- По-бърз от дообучен DFlash при всички 9 бенчмарка за Qwen3-8B.
- Режимът с 2 стъпки запазва стабилна степен на приемане в целия блок.
- Теглата са с лиценз Apache-2.0, кодът е с лиценз MIT, а има и плъгини за vLLM и SGLang.
Разгледайте статията, страницата на проекта, GitHub хранилището и теглата на модела. Също така можете да ни последвате в Twitter и не забравяйте да се присъедините към нашия 150k+ ML SubReddit и да се абонирате за нашия бюлетин. Чакайте! В Telegram ли сте? Сега можете да се присъедините към нас и в Telegram.
Имате нужда от партньор за популяризиране на вашето GitHub хранилище, страница в Hugging Face, представяне на продукт, уебинар и т.н.? Свържете се с нас
Преведено автоматично от английски. Оригиналната статия е на връзката по-долу.