Hugging Face TransformersЩо нового в Hugging Face Transformers 5.19
Реліз додає мультимодальну модель EmbeddingGemma 2, реалізацію token-dispatch для expert parallelism та підтримку continuous batching у базових функціях attention.
Реліз від 6 жовтня 2026 · оновлено 9 листопада 2026
Головне
- Додано мультимодальну ембединг-модель EmbeddingGemma 2 на базі Gemma 4
- Реалізація token-dispatch для expert parallelism (за замовчуванням для Qwen3 MoE та Mellum)
- Підтримка continuous batching безпосередньо у функціях SDPA та Flash Attention
- Пошарова конфігурація для DynamicCache та StaticCache
- Уніфіковане повернення router logits для моделей MoE за output_router_logits=True
Коротко
Hugging Face Transformers 5.19 представляє нову мультимодальну ембединг-модель EmbeddingGemma 2 від Google. Реліз розширює можливості паралелізації завдяки реалізації token-dispatch для expert parallelism та вводить конфігурацію кешу окремо для кожного шару моделі. Також оновлено роботу механізмів attention у режимі continuous batching та стандартизовано вивід router logits для MoE-архітектур.
Нові можливості
Мультимодальна модель EmbeddingGemma 2
- Додано
EmbeddingGemma2— мультимодальну модель ембедингів від Google на базі архітектури Gemma 4. - Модель кодує текст, зображення, аудіо та відео (окремо або в межах одного запиту) у спільний 768-вимірний векторний простір для задач крос-модального пошуку, семантичної схожості, кластеризації та класифікації.
- Завдяки Matryoshka Representation Learning розмірність ембедингів можна зменшувати до 512, 256 або 128 вимірів.
- Підтримуються налаштовувані бюджети токенів для зображень і відео, а невикористовувані вежі зору або аудіо можна вимикати під час завантаження для економії пам'яті.
Паралелізація (Parallelization)
- Для expert parallelism реалізовано механізм token-dispatch через нове правило плану
ep_dispatch_experts. Він став стандартним для Qwen3 MoE та Mellum і знімає вимогу щодо рівності розмірів EP та TP. - Плани
tp_planтаep_planрозділено, а також додано dense- та expert-сітки пристроїв (device mesh). Trainerадаптовано для роботи з expert parallelism.- Документацію оновлено з приміткою про підтримку tensor parallelism для PEFT-адаптерів.
Робота з кешем
- Додано конфігурацію кешу на рівні окремих шарів:
DynamicCacheтаStaticCacheініціалізують кожен шар із власного конфігу (sliding window, attention chunk size, conv states та кількість attention heads), що покращує підтримку гетерогенних моделей.
Continuous Batching та бекенди
- Дозволено реєстрацію нових бекендів обробки (
processing backends). - Механізм continuous batching став більш незалежним від типу пристроїв; додано підтримку бекенду XPU.
- Увімкнено тестування моделей на майбутньому бекенді
torch_tpu.
Ламаючі зміни
- Router logits у MoE-моделях: Усі MoE-моделі, маршрутизатори яких обчислюють логіти, тепер повертають їх за умови
output_router_logits=Trueза шаблоном Qwen3-MoE (рекордерrouter_logitsна базовій моделі,MoeModelOutputWithPastвід бекбону та MoE causal LM output від голови моделі). Код, який спирався на попередній формат або відсутність цих даних, має зчитувати логіти з відповідних класів виводу. - Вибір image query в Owlv2: Метод
Owlv2ForObjectDetection.embed_image_queryтепер вибирає query box із найвищим показником objectness відповідно до оригінального блокнота OWLv2, а не за евристикою OWL-ViT. Це може змінити ембединги запитів та результати детекції. - Депрекація префікса
"paged|": Префікс"paged|"для реалізацій SDPA та Flash Attention оголошено застарілим. Замістьpaged|sdpaчиpaged|flash_attention_2для continuous batching слід вказувати звичайні назви реалізацій (наприклад,sdpaабоflash_attention_2). - Підтримка continuous batching у SDPA та Flash Attention: Базові функції
sdpa_attention.pyтаflash_attention.pyотримали пряму підтримку continuous batching, а звернення через префікс"paged|..."перенаправляються до них. Дляeagerпрефікс"paged|eager"залишається обов'язковим. - Оновлення кешу в continuous batching: Оновлення кешу для шляхів на основі індексів (index-based) та таблиць блоків (block-table) об'єднано в один виклик, що змінює поведінку функції оновлення та впливає на кастомний код, що викликав ці шляхи окремо.
Виправлення та покращення
- Квантований кеш: Виправлено обробку квантованого кешу — метод
generateбільше не мутує переданий користувачемcache_config, а також відновлено роботуQuantizedLayer.reorder_cache. - Навчання: У
Trainerдодано атрибутloss_is_scaled_for_ga, що вказує, чи масштабуєcompute_lossвтрати для накопичення градієнтів (gradient accumulation). - Обчислення RoPE: Обчислення RoPE переведено на операцію множення (
mul) замість матричного множення (matmul). - Генерація тексту:
- Виправлено збереження маскованих оцінок EOS в експоненційному штрафі за довжину (
exponential decay length penalty). - Виправлено рядки джерела для encoder repetition penalty після розширення батчу.
- Виправлено підрахунок повторюваних n-грам у
WatermarkDetector.
- Виправлено збереження маскованих оцінок EOS в експоненційному штрафі за довжину (
- Робота з моделями:
- У
cohere_compassдоданоvideoдоinput_modalities. - У конфігурацію GPT-OSS додано зчитування параметрів
alphaтаlimitдля clamped SwiGLU. - Виправлено батчинг відео та CI для minicpm 4.6V.
- Для DeepseekV4 видалено
colwise_gather_outputдляlm_head. - Виправлено chunked prefill із багатоосьовими
position_idsдля Qwen3-VL. - Додано
memory mixinдля GTE.
- У
- Пайплайни: Застарілі пайплайни тепер виконують перенаправлення, а видалені — викликають виняток.
- Загальні виправлення: Виправлено ігнорування
seed=0уDataCollatorForLanguageModeling.
Огляд підготовлено автоматично за офіційними release notes за допомогою ШІ та перевірено на відповідність джерелу. Точні формулювання дивіться в оригіналі. Як ми працюємо