DiffAttnV2: когда Microsoft решает, что обычное внимание — это скучно
Пока все обсуждают, кто круче — Mamba или классические трансформеры, в Microsoft Research тихо выкатили Differential Transformer V2. Не анонс, не хайп, просто обновили репозиторий. И знаете что? Это одна из тех штук, которая заставляет пересмотреть базовые принципы.
DiffAttnV2 — это эволюция механизма внимания, где вместо прямого вычисления парных взаимодействий между всеми токенами модель учится работать с их разностями. Звучит как математическая абстракция, но на практике это дает прирост скорости на 15-30% при той же точности для длинных последовательностей. Особенно заметно на контекстах от 8k токенов и выше.
На 20 января 2026 года DiffAttnV2 — самая свежая версия архитектуры. Первый Differential Transformer появился еще в 2023, но V2 переработали с учетом опыта эксплуатации в продакшене. Если где-то видите упоминания DiffAttnV1 — это уже музейный экспонат.
Как это работает? (Без формул, обещаю)
Представьте, что вы читаете книгу. Обычный трансформер (тот, что в основе GPT-4 или Mistral Vibe) запоминает каждое слово и его связь со всеми остальными. DiffAttnV2 поступает иначе: он запоминает не сами слова, а как они меняются относительно друг друга. Разность токенов, градиент внимания — называйте как хотите.
Технически это реализовано через модифицированный механизм grouped query attention, где ключи и значения вычисляются не для абсолютных позиций, а для дифференциальных интервалов. Плюс добавили кэширование разностей, что дико экономит память при инференсе.
V1 vs V2: что сломали и что починили
Первая версия Differential Transformer была этакой лабораторной диковинкой. Работала хорошо на синтетических данных, но в реальных задачах (особенно с шумным текстом или кодом) иногда теряла важные зависимости между далекими токенами.
В V2 инженеры Microsoft переработали алгоритм агрегации разностей. Добавили адаптивный порог для отсечения малозначимых дифференциальных связей и механизм fallback на стандартное внимание для критичных участков последовательности. Это как если бы ваш автослесарь взял в один инструмент и гаечный ключ, и молоток.
| Параметр | DiffAttnV1 (2023) | DiffAttnV2 (2025-2026) |
|---|---|---|
| Сложность (память) | O(n log n) | O(n log n) с лучшей константой |
| Поддержка длинных контекстов | До 16k токенов | До 128k токенов (экспериментально) |
| Интеграция с фреймворками | Только кастомный код | Есть плагин для Transformers v5.2+ |
| Точность на GLUE | 92.1% | 92.7% (при равном числе параметров) |
Кому это впишется в пайплайн? (А кому не стоит)
DiffAttnV2 — не панацея. Если вы тренируете модель на коротких текстах (до 2k токенов), выигрыш будет минимальным. А вот если вы работаете с длинными документами, кодом или мультимодальными последовательностями — здесь начинается магия.
- Разработчики кодогенерирующих моделей: DiffAttnV2 отлично ловит паттерны в синтаксисе. Похожие идеи, кстати, есть в LoopCoder, но подход Microsoft более универсальный.
- Инженеры, которые устали ждать, когда скомпилируется гигантский граф: Ускорение инференса на 20-30% — это не маркетинг, а реальность для batch size > 8.
- Любители экспериментов с архитектурами: Код чистый, документация вменяемая. Можно заменить механизм внимания в своей кастомной LM и посмотреть, что будет.
Не стоит лезть в DiffAttnV2, если вы только начинаете разбираться с трансформерами. Сначала освоите обычный attention в Transformers v5, потом уже к дифференциальным извращениям.
Где взять код и как попробовать?
Вся реализация лежит в репозитории Microsoft unilm на GitHub. Не ищите отдельный репозиторий — DiffAttnV2 идет как модуль в составе их библиотеки для больших языковых моделей. На 20 января 2026 года актуальная ветка — `diffattn-v2-stable`.
Прямая ссылка: github.com/microsoft/unilm/tree/diffattn-v2-stable. Там же есть примеры интеграции с Hugging Face Transformers и инструкции для fine-tuning.
Чтобы не сломать себе весь пайплайн, начните с тестового скрипта, который сравнивает DiffAttnV2 и стандартное внимание на вашем датасете. Если используете Transformers v5, убедитесь, что у вас версия не ниже 5.2 — там уже есть совместимые хуки.
Что будет дальше? (Спойлер: гибриды)
DiffAttnV2 — не конечная точка. Уже видны эксперименты по комбинированию differential attention с другими подходами. Например, с латентными пространствами вместо токенов или с линейными слоями из State Space Models.
Мой прогноз: к концу 2026 года мы увидим модель, где DiffAttnV2 будет работать в паре с механизмом из FLUX.2 для мультимодальных задач. А может, и нет. Но пробовать стоит уже сейчас — пока эта штука не стала мейнстримом и не обросла слоями абстракции, которые все замедлят.
И да, если у вас есть RTX 4090 или что-то похожее, запускайте бенчмарки. Разница в скорости на длинных контекстах — это тот редкий случай, когда математическая идея сразу чувствуется в метриках.