Hugging Face TransformersЩо нового в Hugging Face Transformers 5.21
Реліз додає моделі MiniCPM-OCR, Flint, UltraVBert, сімейство Pocket TTS, бекенд FP8 для кешу та оновлення паралелізму.
Реліз від 26 жовтня 2026 · оновлено 8 листопада 2026
Головне
- Нові моделі: MiniCPM-OCR, MoE-модель Flint, UltraVBert та TTS-архітектури Pocket TTS і Gradium Phonon TTS
- Бекенд FP8 для QuantizedCache зі збереженням KV-станів у torch.float8_e4m3fn
- Шардування експертів у всіх планах паралелізму MoE (TP/EP)
- Виділений стиль ембедингів для Tensor Parallelism зі шардуванням вхідних ембедингів за замовчуванням
- Підтримка static cache для Flash Attention і продовження кешу для chunked prefill
Коротко
Hugging Face Transformers 5.21 розширює каталог архітектур моделями MiniCPM-OCR, Flint, UltraVBert, а також легковаговими TTS-системами Pocket TTS і Gradium Phonon TTS із власним аудіотокенізатором. У бібліотеці з'явився FP8-бекенд для квантованого кешу та оновлено механіку паралелізму: ембединги отримали власний стиль шардування, а плани MoE тепер обов'язково розподіляють експертів між рангами. Також реліз покращує роботу з кешем генерації та усуває низку помилок у мультимодальних процесорах.
Нові можливості
Нові моделі
- MiniCPM-OCR: модель розуміння документів із родини MiniCPM-V від OpenBMB. Зберігає архітектуру MiniCPM-V 4.6 (енкодер бачення SigLIP, модуль об'єднання з window-attention і мовна модель Qwen3.5) та призначена для зчитування зображень із високою щільністю тексту (скани, скриншоти, чеки, таблиці).
- Flint: MoE-модель (mixture-of-experts) від Recursive. На відміну від стандартних трансформерів SwiGLU MoE, використовує гібридну увагу (sliding-window attention з rotary embeddings над поточним токеном і 512 попередніми в більшості шарів та full attention без позиційного кодування в інших). Модель містить learned attention sinks із похедовою RMS-нормалізацією запитів і ключів. У розріджених шарах токен спрямовується до 6 із 256 експертів за sigmoid-оцінкою плюс додається некерований спільний експерт; перші два шари моделі — щільні (dense).
- UltraVBert: розширення ModernVBert для візуального розуміння документів і пошуку інформації, що поєднує текстовий енкодер UltraBERT з енкодером бачення SigLIP. Процесор зображень розбиває кожну сторінку на тайли по 512 пікселів плюс глобальний вигляд. Конектор об'єднує блоки патчів 4x4 в один токен (тайл перетворюється на 64 токени зображення) та застосовує RMS-нормалізацію до масштабу ембедингів UltraBERT. Кількість тайлів на сторінку обмежується параметром
max_image_tiles(за замовчуванням 27). - Pocket TTS: модель перетворення тексту в мовлення від Kyutai на 100 млн параметрів на базі архітектури Continuous Audio Language Model. Працює швидше за реальний час на CPU. Казуальний трансформер генерує один неперервний аудіолатент на кадр (12.5 Hz) через однокрокову flow-голову, а голова end-of-speech визначає завершення висловлювання. Токенізатор на базі Mimi кодує голосові підказки та декодує латенти в аудіо 24 kHz. Доступні дві flow-голови: Lagrangian self-distillation (за замовчуванням) та drifting; підтримується клонування голосу із запису, передача готових латентів або завантаження з кешованих KV-станів.
- Pocket TTS Audio Tokenizer: кодек для Pocket TTS на базі архітектури Mimi (згортки SEANet та невеликий казуальний трансформер з обох боків), де залишковий векторний квантувальник замінено неперервним 32-вимірним bottleneck (VAE-GAN). Перетворює аудіо 24 kHz у латенти на частоті 12.5 Hz і назад. Використовується як
audio_tokenizerуPocketTTSProcessor, а його енкодер і декодер можна завантажувати окремо. - Gradium Phonon TTS: родина on-device TTS-моделей від Gradium, навчена за рецептом Pocket TTS. Казуальний трансформер генерує 32-вимірні неперервні аудіолатенти на частоті 12.5 Hz через однокрокову flow-голову, а токенізатор Pocket TTS декодує їх у 24 kHz. Для кондиціонування голосу використовуються 512-вимірні латенти з окремого закритого кодека спікера, тому голоси постачаються як попередньо обчислені латенти і не можуть клонуватися із запису.
Квантування та кешування
- FP8-бекенд у
QuantizedCache: поряд ізquantoтаhqqдодано бекенд"fp8", який зберігає стани KV у форматіtorch.float8_e4m3fnз одним масштабом на тензор. Вмикається за допомогоюcache_implementation="quantized"таcache_config={"backend": "fp8"}. expert_dtypeу квантуванні: для роботи з FP4-експертами DeepSeek-V4.1 конфігураціяFineGrainedFP8Configотримала опціюexpert_dtype(значення"fp8"за замовчуванням або"fp4").
Ламаючі зміни
- Тензорний паралелізм для ембедингів: вхідні ембединги отримали власний стиль паралелізму, шардуються за замовчуванням для кожної моделі та підтримують розмірності, які не діляться націло на розмір TP. Через це класи
ColwiseParallelтаRowwiseParallelтепер застосовуються виключно до лінійних шарів. Користувацькі плани TP, які використовували їх для ембедингів, необхідно перевести на новий стиль. - Шардування експертів у MoE: кожен план TP та EP для MoE тепер зобов'язаний шардувати своїх експертів, усуваючи дублювання всіх експертів на кожному рангу. Це перевіряється новим тестом
test_moe_parallel_plans_shard_experts. Користувацькі паралельні плани MoE мають додати шардування експертів, щоб проходити перевірку. - Імпорти процесорів Gemma4: виправлено крос-імпорти для процесорів Gemma4, Gemma4 unified та EmbeddingGemma2, через які
from transformers import *завершувався збоєм у середовищах ізPIL, але безtorch. Зміна не вимагає дій від користувачів.
Виправлення та покращення
- Робота з кешем:
- Реалізовано підтримку static cache для Flash Attention.
- Усунено збої моделі BLOOM під час роботи зі static cache та скомпільованим
generate. - Додано можливість продовження кешу (cache continuation) для chunked prefill.
- Для лінійної уваги додано нові гетери (
is_recording_past,get_recurrent_state, доступ до conv-станів). - Скорочено час прогріву (warmup) завдяки відмові від обчислення уваги по всьому кешу.
- Виправлено життєвий цикл кешу позицій індексатора Qwen4-Exp.
- Обробка зображень та мультимодальні моделі:
- Процесори зображень тепер накладають прозорість PNG на біле тло замість чорних пікселів.
- Виправлено обробку
background_colorу процесорах DeepSeek-VL та Janus. - Виправлено роботу
inputs_mergerу SmolVLM, коли кількість токенів зображення не кратнаpatch_size. - Виправлено прив'язку зображень у HunYuan-VL під час пакетної генерації та beam search.
- Скрипти конвертації DETR переведено на використання
from_pretrained.
- Генерація:
- Виправлено приведення типів вхідних словників у методі
generate(зокрема дляModelOutput). - Усунено вибірку порожніх кадрів для коротких відео.
- Виправлено генерацію масок із multi-zoom кропами в пайплайні SAM.
- Враховано параметр
generation_modeпід час генерації аудіо в Qwen3-Omni. - Виправлено збій відносних імпортів модулів генерації з Hub на Windows через роздільники шляхів.
- Виправлено приведення типів вхідних словників у методі
- Паралелізм:
- Додано план тензорного паралелізму для Nemotron.
- Додано шардування текстових і візуальних експертів під TP та EP для Ernie4.5-VL-MoE.
- Відновлено градієнти відправки токенів (token dispatch) під час паралелізму експертів на PyTorch версій від 2.7 до 2.10.
- Виправлено невідповідність пристроїв під час model parallel у Molmo2.
- Скориговано
base_model_prefixдля детекторів PP-OCR, CLIPSeg, TimesFM, CLIP і VideoPrism.
- Виправлення в патчі 5.21.1: виправлено сетер
rope_scalingдля конфігурацій, які задають його під час ініціалізації, що усунуло помилку завантаження віддаленого коду у vLLM.
Огляд підготовлено автоматично за офіційними release notes за допомогою ШІ та перевірено на відповідність джерелу. Точні формулювання дивіться в оригіналі. Як ми працюємо