Whisper-large-v3-distil-draft
черновик для ускорения Whisper large-v3
Отдельная draft-модель для greedy speculative decoding с openai/whisper-large-v3 на английском, китайском, японском и кантонском. Это distil-whisper/distil-large-v3, дообученный на транскриптах самой large-v3; обучался только декодер с привязанным эмбеддингом — 119,4 млн параметров. Автор — wilsonzheng0327.
😎 Ключевые особенности
- 🤝 Работает как assistant в assisted generation transformers: получает выход энкодера целевой модели.
- 🦾 Энкодер бит-в-бит совпадает с large-v3 в bf16 — runtime может передавать ему энкодерный выход таргета.
- ✨ На всех четырёх языках принимает 5,2–5,7 токена за раунд; обычный distil-large-v3 на неанглийских почти не помогает.
- 📉 В transformers ускоряет все четыре языка: средний speedup 1,58× против 0,73× у distil-large-v3.
- 🤫 Исключение — китайский YODAS2: 0,88×, там в среднем всего 17 выходных токенов.
😺 Пример
import torch
from transformers import WhisperForCausalLM, WhisperForConditionalGeneration
target = WhisperForConditionalGeneration.from_pretrained("openai/whisper-large-v3", dtype=torch.bfloat16).cuda()
draft = WhisperForCausalLM.from_pretrained("wilsonzheng0327/Whisper-large-v3-distil-draft", dtype=torch.bfloat16).cuda()
tokens = target.generate(input_features, language="ja", task="transcribe", assistant_model=draft)
Подробнее
Accept length на held-out: 5,53 в среднем против 1,36 у distil-large-v3 и 3,33 у DFlash-черновика без аудио.Speedup в transformers: 1,58× в среднем; на YODAS2 Chinese — 0,88×.
Обучение: 913 227 клипов (~2 740 ч), 24 969 шагов, 3 ч 23 мин на двух H200.
Ограничения: в sglang-omni пока нет пути для отдельного Whisper-draft; замеры — eager transformers, batch 1, без CUDA graphs; VRAM не указан. Лицензия Apache-2.0.








Комментарии