Введение
В этой статье я разберу идею DTG‑MA (Dynamic Task‑Graph Masked Attention) пусть будет такое название и сокращение.
Есть одна неприятная штука, которую почти каждый ловил на практике, когда пробовал последовательное обучение моделей. Когда в 1997 году в институте проходили нейросети на лабораторной возникла идея, что можно нейросеть использовать как хранилище данных но как оказалось не все так просто ).
Вы обучили систему на задаче A. Потом приходит задача B — модель обновляется, и внезапно качество на A падает так, будто A никогда и не было.
Так проявляется catastrophic forgetting — катастрофическое забывание.
История из личного опыта
Когда я учил несколько языков (французский, испанский), мне очень помогла методика «Полиглот» Дмитрия Петрова как "ядро", он рекомендовал делать ассоциации к каждому языку чтобы не путать и легко переключаться.
Она строится на том, что язык проще усваивать, если у него есть отдельный контекст:
Французский — Эйфелева башня, Сена, круассаны, мягкий ритм речи.
Испанский — солнце, фламенко, гитара, быстрый темперамент.
Так мозг разделяет контексты, не смешивая языки.
DTG-MA делает то же самое для нейросети, только не на уровне «настроения», а архитектуры:
каждую задачу модель обрабатывает в своём маршруте,
«чужие» пути закрыты жёстко — маской внимания.
Это не просьба к оптимизатору «не трогай старые знания».
Это запертая дверь.
1. Почему появляется забывание
В трансформере почти все задачи используют одни и те же:
веса,
скрытые представления,
проекции,
attention-головы.
Оптимизатор не знает, что какие-то параметры важны для задачи A — он видит только текущий лосс задачи B.
Итог: интерференция новой задачи стирает старую.
2. Что делают обычно и почему этого недостаточно
Сравнение подходов
Подход |
Механизм |
Плюсы |
Минусы |
|---|---|---|---|
EWC |
штраф на важные веса |
простота |
мягкое ограничение, память, подбор λ |
LwF |
дистилляция |
не нужны данные прошлых задач |
нужен «учитель», двойной forward |
Replay |
хранение старых примеров |
мощная защита |
приватность, хранилище, сложность |
Adapters |
модули под задачу |
явная изоляция |
линейный рост, слабая гарантия внутри общей части |
DTG-MA |
маска внимания + граф задач |
архитектурная изоляция |
нужны task-границы, рост параметров |
3. DTG-MA: идея в трёх пунктах
Параметры — это граф: каждое ребро имеет
task_id.Маска внимания закрывает запрещённые пути через
−∞в scores.Старые ребра замораживаются и не обновляются.
Это переносит проблему с уровня «лосса» на уровень топологии вычисления.
4. Как выглядит маска задач
Формула внимания:
Attention(Q, K, V; t) = Softmax( (QKᵀ / √d) + Mₜ ) * V
Где Mₜ:
0— путь разрешён,−1e9— путь запрещён (softmax → 0).
Пример
scores = QK^T / √d
M_task_1 =
[ 0 0 -1e9 ]
[ 0 0 0 ]
[ -1e9 0 0 ]
scores + M →
[ ... ... -1e9 ] → после softmax → 0.0
Запрещённый путь просто исчезает.
5. Почему —∞ это сильнее, чем EWC и дистилляция
Потому что:
EWC «просит» оптимизатор не трогать параметры,
дистилляция «намекает» через старую модель,
маска attention архитектурно запрещает доступ.
Это не рекомендация — это жёсткая маршрутизация.
6. Преимущества DTG-MA
6.1 Жёсткая изоляция
Старая задача недоступна физически — ни forward, ни backward не проходят.
6.2 GPU-дружественность
Маска — это обычная матричная операция.
6.3 Прозрачность
Каждая задача вычисляется по конкретному подграфу.
6.4 Чистая инженерия
Хранится только:
маска,
метаданные ребер,
новые параметры для новых задач.
7. Минусы и ограничения
нужны границы задач (
task_id),растёт количество параметров,
перенос знаний между задачами уменьшается (если двери закрыты слишком жёстко).
Обычно это решается гибридом: часть путей общая, часть — изолирована.
8. Где DTG-MA особенно полезен
доменные модели (медицина / юриспруденция / финансы);
multi-tenant SaaS (каждый клиент обучает своё без риска сломать чужое);
онлайн-адаптация (поток новых задач без реплея);
ограничения приватности (нет возможности хранить данные).
9. Главная ценность
Когда вы работаете с production-ML, главное — предсказуемость.
DTG-MA делает поведение модели контролируемым за счёт архитектурных ограничений, а не методом подбора коэффициентов.
11. Куда развивать идею
автоматическое определение контекста (router/gating),
контроль роста параметров,
совмещение с prefix-tuning,
динамические маски между пересекающимися задачам
Заключение
Проект DTG-MA — это попытка сделать обучение моделей предсказуемым, когда задачи приходят последовательно.
Тестовый код:
https://github.com/infosave2007/graphai
Если идея откликается — тестируйте, предлагайте улучшения, создавайте PR.
Для тех кто хочет поддержать проект и отблагодарить, то вы можете сделать это через Tribute буду рад поддержке ?