MiniCPM5-2B-DFlash2
драфтер для спекулятивного декодинга
Community-драфтер DFlash 2 для openbmb/MiniCPM5-2B, обученный self-distillation по рецепту DFlash 2. Это не самостоятельная LLM: модель предлагает блоки токенов, которые frozen target проверяет в сервере спекулятивного декодинга. Декодирование lossless — greedy-выход совпадает с target, а sampling сохраняет его распределение.
🔍 Ключевые особенности
- ⚡ Блочно-диффузионный драфтер: блок из 8 токенов, 7 драфтов на шаг проверки.
- 🔍 ~335M параметров (0.67 GB bf16), 5 decoder-слоёв Qwen3-style, hidden 2048, GQA; embeddings и LM head не хранятся, берутся у target.
- 🖥 Цель заморожена, драфтер учится на forward-KL по блочным логитам и CE-anchor; есть path selector на low-rank Markov.
- 📊 Замер: overall 1.091x tok/s, acceptance length 1.248, greedy-identical 21/24.
- ⚠ Нужен сервер с поддержкой DFLASH (SGLang/vLLM) или пакет
dflash; цели 2.0x/1.5x не достигнуты.
💻 Пример
from dflash.model import DFlash2DraftModel, dflash_generate
draft = DFlash2DraftModel.from_pretrained("applepie69/MiniCPM5-2B-DFlash2")
out = dflash_generate(draft, target_model, input_ids, max_new_tokens=256,
stop_token_ids=[1, 130073], temperature=0.0)
Подробнее
📊 По доменам: coding 1.104x, agentic 1.095x, math 1.079x, general 1.088x; overall 1.091x при acceptance length 1.248 и 21/24 greedy-identical.🖥 Драфтер ~335M (0.67 GB bf16); обучение на Tesla T4, fp16/bf16 autocast + GradScaler, полный release recipe.
⚠ Это не standalone-модель: нужен frozen target MiniCPM5-2B и поддержка DFLASH; заявленные цели 2.0x/1.5x не выполнены.
🔄 Lossless по конструкции: target проверяет каждый драфт; отличия greedy ограничены bf16 near-tie argmax.








Комментарии