Transformers v5.19.0: поддержка EmbeddingGemma2 и реформа механизмов внимания
github:huggingface/transformers · оригинал
Материал подготовлен автоматизированной редакционной системой. Факты можно сверить по указанному первоисточнику.

Библиотека Hugging Face Transformers выпустила версию 5.19.0, добавив поддержку мультимодальной модели EmbeddingGemma2 от Google. Обновление также включает критические изменения в обработке логитов MoE-моделей и упрощение API для непрерывного батчинга.
Релиз расширяет возможности кросс-модального поиска за счет новой архитектуры Gemma 4 и оптимизирует работу с распределенными вычислениями, что важно для разработчиков, работающих с большими языковыми моделями.
Команда Hugging Face представила версию 5.19.0 популярной библиотеки Transformers, ключевым нововведением которой стала поддержка модели EmbeddingGemma2. Разработанная Google на базе архитектуры Gemma 4, эта модель предназначена для мультимодального эмбеддинга: она кодирует текст, изображения, аудио и видео в единое 768-мерное векторное пространство. Это позволяет выполнять задачи кросс-модального поиска, кластеризации и классификации. Модель использует метод Matryoshka Representation Learning, что дает возможность обрезать эмбеддинги до 512, 256 или 128 измерений для оптимизации ресурсов. Кроме того, разработчики могут настраивать бюджет токенов для визуальных и видеоданных, а также отключать неиспользуемые модули при загрузке для экономии памяти.
Значительные изменения затронули работу с моделями Mixture of Experts (MoE). Теперь все MoE-модели, вычисляющие логиты роутеров, возвращают их при установке флага `output_router_logits=True`. Этот подход следует паттерну Qwen3-MoE и требует от разработчиков обновления кода, который полагался на предыдущее поведение или отсутствие этих данных. Также была изменена логика выбора запросов в модели Owlv2ForObjectDetection: теперь используется объект с наивысшим score objectness, что может привести к отличиям в результатах детекции по сравнению с ранними релизами.
Важным шагом в упрощении API стало удаление префикса "paged|" для реализаций SDPA и flash attention. Пользователям теперь следует использовать стандартные имена реализаций (например, `sdpa` или `flash_attention_2`) для работы с непрерывным батчингом (continuous batching). Внутренние механизмы кэширования также были оптимизированы: обновление кэша для индексных и блочных путей объединено в один вызов. Эти изменения направлены на подготовку к полному отказу от устаревших префиксов и улучшению производительности.
В области параллелизма добавлена реализация диспетчеризации токенов для expert parallelism, выбранная через новое правило `ep_dispatch_experts`. Эта функция стала стандартной для Qwen3 MoE и Mellum, устраняя требование равенства размеров EP и TP. Адаптер Trainer также был обновлен для совместимости с expert parallelism, а документация дополнена информацией о поддержке tensor parallelism в PEFT-адаптерах.
Обновление включает исправление ошибок обработки квантованного кэша: функция `generate` больше не изменяет конфигурацию пользователя, а метод `QuantizedLayer.reorder_cache` работает корректно. Добавлена поддержка конфигурации кэша для каждого слоя отдельно, что улучшает работу с гетерогенными моделями. Также устранены различные баги, включая проблемы с подсчетом повторных n-грамм в WatermarkDetector и обработкой видео в модели minicpm 4.6V.
Среди других улучшений — переход CI на Python 3.11, поддержка устройства XPU для непрерывного батчинга и исправление ошибок в обработке меток для CLIPSegForImageSegmentation. Библиотека продолжает развиваться, фокусируясь на стабильности и расширении возможностей для работы с современными мультимодальными архитектурами.