Voydevich
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 за допомогою ШІ та перевірено на відповідність джерелу. Точні формулювання дивіться в оригіналі. Як ми працюємо