Voydevich
Hugging Face Transformers

Що нового в Hugging Face Transformers 5.20

Реліз Transformers 5.20 додає нові архітектури моделей, вбудоване квантування в експортерах і покращення розподіленого навчання FSDP та TP.

Реліз від 15 жовтня 2026 · оновлено 9 листопада 2026

Головне

  • Додано нові архітектури: Muse Spark Open, Ling 3.0, Kolibri 1, MiniCPM-V 4.7, UnlimitedOcr та Beam
  • Експортери отримали пряме квантування (PT2E, ONNX Runtime, NNCF) для Dynamo, ONNX, OpenVINO та ExecuTorch
  • Підтримка збереження та завантаження чекпоїнтів моделей і оптимізаторів для FSDP × TP
  • З `cache_utils.py` прибрано застарілі перевірки та методи для кешу
  • Мінімальну версію бібліотеки `kernels` підвищено до 0.17.2
  • Декодування зображень переведено на `torchcodec`

Коротко

Hugging Face Transformers 5.20 розширює список підтримуваних архітектур новими мультимодальними та мовними моделями, зокрема Muse Spark Open, Ling 3.0, Kolibri 1 та Beam. В експортерах зʼявилося уніфіковане квантування для Dynamo, ONNX, OpenVINO та ExecuTorch. Оновлення також містить покращення розподіленого навчання FSDP × TP, перехід декодування зображень на torchcodec та низку виправлень сумісності.

Нові можливості

Нові моделі

  • Muse Spark Open: мультимодальна Mixture-of-Experts (MoE) модель від Meta з підтримкою вхідного тексту, зображень, аудіо та відео й генерацією тексту. Має 816 млрд загальних параметрів (42 млрд активних на токен), спільне для всіх модальностей контекстне вікно на 1 048 576 токенів і чекпоїнти у форматах BF16 та NVFP4.
  • Ling 3.0 Flash: гібридна MoE-модель від InclusionAI, декодер якої групує пʼять шарів Kimi Delta Attention (KDA) з одним шаром Multi-head Latent Attention (MLA). Отримала нативну підтримку через BailingHybridForCausalLM без потреби у trust_remote_code=True.
  • Kolibri 1: MoE-модель міркувань від Aleph Alpha для німецької та англійської мов. Містить 50 шарів, маршрутизує кожен токен до 6 із 384 експертів за допомогою sigmoid routing і має один спільний експерт; RoPE використовується лише в шарах зі sliding-window attention.
  • MiniCPM-V 4.7: мультимодальна модель від OpenBMB, що поєднує енкодер SigLIP із мовною моделлю Qwen3.5. Отримала підтримку canvas M-RoPE, де токени розміщуються на 2D-полотні з координатами (temporal, height, width).
  • UnlimitedOcr: OCR-модель на 3 млрд параметрів від Baidu з контекстом 32 768 токенів. Замінює шари уваги декодера на Reference Sliding Window Attention (R-SWA), забезпечуючи константний розмір KV-кешу під час декодування. Підтримує режими «gundam» (тайли 640x640) та «base» (1024x1024).
  • UltraBERT: родина двонаправлених текстових енкодерів із підтримкою послідовностей до 32 768 токенів. Використовує RMSNorm, rotary embeddings, SwiGLU та чергування локальної й глобальної уваги. Представлені чекпоїнти UltraBERT-150M, UltraBERT-380M та UltraBERT-Embed-150M.
  • MOSS-Transcribe-Diarize 0.9B: модель для транскрипції, діарізації та розпізнавання таймкодів у довгому аудіо для понад 50 мов на базі енкодера Whisper та Qwen3. Сегменти формуються у вигляді [start][S01]text[end].
  • Beam: модель масштабу frontier від Reflection AI, орієнтована на завдання програмування та роботу в ролі агента.

Експортери та квантування

  • Пряме квантування під час експорту: новий уніфікований API інтегрує квантувальники PT2E, ONNX Runtime та NNCF. Підтримуються статичне й динамічне квантування, а також weight-only стиснення (INT8/INT4) для Dynamo, ONNX, OpenVINO та ExecuTorch із workflow калібрування.

Паралелізація

  • FSDP × TP: реалізовано збереження та завантаження чекпоїнтів моделей і оптимізаторів між різними конфігураціями паралелізму.
  • Звʼязані голови lm_head у складених моделях отримали окремий план тензорного паралелізму (TP).
  • Прапорець enable_expert_parallel знову застосовує виключно план EP.

Робота з візуальними даними та я ядрами

  • Декодування зображень: переведено на використання бібліотеки torchcodec.
  • Резервні ядра для ROCm: flash_attention_2 перемикається на ядро AITER на платформі ROCm, якщо бібліотека flash-attn не встановлена.
  • Злиті ядра для T5: маска position_bias для SDPA зроблена неперервною (contiguous).

Ламаючі зміни

  • Регресія швидкості EP: під час інференсу з expert parallelism спостерігається тимчасова регресія швидкості виконання.
  • Видалення застарілих методів кешу: з cache_utils.py прибрано застарілі перевірки й методи (це зачіпає моделі на кшталт minimax_m3_vl та pi0). Код, який їх викликав, має перейти на актуальний Cache API.
  • Видалення перехресних імпортів: прибрано випадкові імпорти з інших моделей у низці модулів (зокрема embedding_gemma2, ijepa, lightglue). Сутності потрібно імпортувати з їхніх оригінальних модулів.
  • Підвищення вимог до kernels: мінімальну версію kernels піднято до 0.17.2. Це додає підтримку use_fallback=KernelizeFallback.ALL для відкату до базової реалізації в разі збою завантаження ядра.
  • Зміна ініціалізації конфігурацій через SubConfigSpec: впроваджено SubConfigSpec для централізованої ініціалізації вкладених конфігурацій зі значень полів датакласів замість створення екземплярів класу. Користувацькі конфігурації можуть потребувати оновлення.
  • Поведінка токенізаторів LUKE та mLUKE: спеціальні сутності (наприклад, <ent>) тепер обробляються саме як спеціальні токени (не розбиваються, враховують skip_special_tokens і нормалізуються), зберігаючи стандартні пробіли regular-токенів під час декодування. Вихідні дані токенізації можуть відрізнятися від попередніх версій.

Виправлення та покращення

  • Генерація та пайплайни:
    • Виправлено роботу generate() зі статичним кешем під час передавання входів із боку хоста та в умовах тензорного паралелізму.
    • Прискорено генерацію Whisper на TPU завдяки скороченню синхронізацій пристрою та перекомпіляцій; виправлено декодування таймкодів у батчах для тензорних і NumPy-входів.
    • Очищено обробку аргументів генерації у pipelines від зайвих попереджень.
    • Усунуто втрату початкового типу словника входів усередині prepare_inputs_for_generation під час виклику generate.
  • Зір:
    • Усунено появу хибних меж зображень у Pixtral Flash Attention після рефакторингу axial RoPE, які спричиняли помилки неправомірного доступу до памʼяті в CUDA.
    • Ключові аргументи для обробки зображень та відео в Molmo2 приведені до стандартних конвенцій бібліотеки.
    • Виправлено призначення зображень для моделі HunYuan-VL під час батчевої генерації.
  • Розподілені обчислення та ядра:
    • Виправлено завантаження TP на TPU завдяки переходу на API пристроїв torch.accelerator.
    • Ядро rotary з Hugging Face Hub обмежено використанням виключно на етапі inference для CUDA через некоректні градієнти під час зворотного проходу.
    • Додано вимогу torch>=2.8 для розподіленого чекпоїнтингу в from_pretrained, а роботу DtensorShardOperation скориговано для PyTorch 2.6 та 2.7.
    • Виправлено нульові градієнти експертів у форматі bfloat16 під час використання expert parallelism, коли ep_size < fsdp_size.
    • Усунено зайве копіювання з хоста на пристрій у eager_mask.

Огляд підготовлено автоматично за офіційними release notes за допомогою ШІ та перевірено на відповідність джерелу. Точні формулювання дивіться в оригіналі. Як ми працюємо