Искусственные нейросети в процессе обучения могут терять способность учиться — пластичность, — но есть идеи, как это исправить
▶️Этот феномен подробно изучали авторы статьи “Loss of plasticity in deep continual learning”.
Нейросети сначала обучают на больших массивах данных, потом на конкретные задачи натаскивают на наборах поменьше, специально отобранных, потом фиксируют текущее состояние и выпускают. Набирают ещё данных, проводят ещё раунд обучения, выпускают новую версию.
Хорошо бы, чтобы они могли продолжать обучаться постоянно, получая новые данные в работе с пользователями, но не выходит: в какой-то момент они теряют эту способность.
Помимо того, есть ещё проблема “катастрофичного забывания” (catastrophic forgetting), когда нейросеть перестаёт правильно решать задачи, с которыми раньше справлялась.
▶️Авторы “Forgetting, plasticity, and co-observation: a third facet of continual learning” считают, что дело (во всяком случае, отчасти) в самом формате обучения.
Обычно данные передают последовательно, как я описала выше: накопили немного данных — провели новое обучение на новых данных (старые не трогали). В результате у модели не формируются связи между старыми данными и новыми.
Например, её научили распознавать написанные от руки числа от 0 до 9 и делить их на чётные и нечётные. Потом дали второй набор данных и научили делить числа на те, что больше пяти и те, что меньше.
И ещё во втором наборе картинки с числами были намеренно искажены, и модель учили распознавать числа на искажённых картинках.
Потом дали ей искажённые картинки и поставили задачу делить числа на чётные и нечётные, и она не справилась, потому что училась решать эту задачу на чистых картинках.
Поэтому, говорят авторы, надо давать все данные сразу: так и забывания не происходит, и пластичность сохраняется, и связи между старыми и новыми данными настраиваются.
▶️В “Loss of plasticity” писали, что нейросети теряют пластичность, потому что их нейроны становятся менее разнообразными.
То есть, они уже адаптированы под первый набор данных, и некоторые нейроны на следующих наборах участвуют в обучении меньше: они обрабатывают данные, и на выходе получаются маленькие числа, которые мало влияют на последующие изменения.
На втором наборе некоторые другие нейроны тоже стали меньше, то есть, коэффициенты в формулах стали такими, что очень слабо меняют входные данные.
На третьем наборе они тоже будут влиять на обучение меньше. И так далее, пока не останется небольшое число нейронов, которые определяют результат. Поскольку их мало, они уже под новые данные не могут подстроиться*.
▶️В “Forgetting, plasticity, and co-observation” похоже получилось: если все данные передать разом, пластичность страдает меньше, чем если передавать их по кусочкам.
То есть, когда мы собрали новых данных, надо устраивать обучение заново на всём массиве, чтобы все нейроны с нуля перенастроить.
Но на практике это дорого, поэтому есть промежуточные подходы: можно сбросить часть выученных настроек или проводить новое полноценное обучение не каждый раз, а когда данных побольше накопится.
▶️И ещё кое-что может помочь — внешняя память. Авторы статьи “When Continual Learning Moves to Memory: A Study of Experience Reuse in LLM Agents” говорят:
“У нас же есть ИИ-агенты, а у них есть доступ ко внешним хранилищам с данными. Может, и не надо их каждый раз переобучать?”
Здесь есть подводные камни. В частности, ограничен объём текста, который агент может за раз обработать (контекстное окно). Если он достанет из памяти лишнюю и ненужную информацию, он с задачей не справится.
Но если грамотно организовать память и хранить там не конкретные инструкции, а обобщённую информацию, агенты справляются гораздо лучше, так что, возможно, это выход.
* Там есть и другие механизмы, я очень сократила изложение
▶️Этот феномен подробно изучали авторы статьи “Loss of plasticity in deep continual learning”.
Нейросети сначала обучают на больших массивах данных, потом на конкретные задачи натаскивают на наборах поменьше, специально отобранных, потом фиксируют текущее состояние и выпускают. Набирают ещё данных, проводят ещё раунд обучения, выпускают новую версию.
Хорошо бы, чтобы они могли продолжать обучаться постоянно, получая новые данные в работе с пользователями, но не выходит: в какой-то момент они теряют эту способность.
Помимо того, есть ещё проблема “катастрофичного забывания” (catastrophic forgetting), когда нейросеть перестаёт правильно решать задачи, с которыми раньше справлялась.
▶️Авторы “Forgetting, plasticity, and co-observation: a third facet of continual learning” считают, что дело (во всяком случае, отчасти) в самом формате обучения.
Обычно данные передают последовательно, как я описала выше: накопили немного данных — провели новое обучение на новых данных (старые не трогали). В результате у модели не формируются связи между старыми данными и новыми.
Например, её научили распознавать написанные от руки числа от 0 до 9 и делить их на чётные и нечётные. Потом дали второй набор данных и научили делить числа на те, что больше пяти и те, что меньше.
И ещё во втором наборе картинки с числами были намеренно искажены, и модель учили распознавать числа на искажённых картинках.
Потом дали ей искажённые картинки и поставили задачу делить числа на чётные и нечётные, и она не справилась, потому что училась решать эту задачу на чистых картинках.
Поэтому, говорят авторы, надо давать все данные сразу: так и забывания не происходит, и пластичность сохраняется, и связи между старыми и новыми данными настраиваются.
▶️В “Loss of plasticity” писали, что нейросети теряют пластичность, потому что их нейроны становятся менее разнообразными.
То есть, они уже адаптированы под первый набор данных, и некоторые нейроны на следующих наборах участвуют в обучении меньше: они обрабатывают данные, и на выходе получаются маленькие числа, которые мало влияют на последующие изменения.
На втором наборе некоторые другие нейроны тоже стали меньше, то есть, коэффициенты в формулах стали такими, что очень слабо меняют входные данные.
На третьем наборе они тоже будут влиять на обучение меньше. И так далее, пока не останется небольшое число нейронов, которые определяют результат. Поскольку их мало, они уже под новые данные не могут подстроиться*.
▶️В “Forgetting, plasticity, and co-observation” похоже получилось: если все данные передать разом, пластичность страдает меньше, чем если передавать их по кусочкам.
То есть, когда мы собрали новых данных, надо устраивать обучение заново на всём массиве, чтобы все нейроны с нуля перенастроить.
Но на практике это дорого, поэтому есть промежуточные подходы: можно сбросить часть выученных настроек или проводить новое полноценное обучение не каждый раз, а когда данных побольше накопится.
▶️И ещё кое-что может помочь — внешняя память. Авторы статьи “When Continual Learning Moves to Memory: A Study of Experience Reuse in LLM Agents” говорят:
“У нас же есть ИИ-агенты, а у них есть доступ ко внешним хранилищам с данными. Может, и не надо их каждый раз переобучать?”
Здесь есть подводные камни. В частности, ограничен объём текста, который агент может за раз обработать (контекстное окно). Если он достанет из памяти лишнюю и ненужную информацию, он с задачей не справится.
Но если грамотно организовать память и хранить там не конкретные инструкции, а обобщённую информацию, агенты справляются гораздо лучше, так что, возможно, это выход.
* Там есть и другие механизмы, я очень сократила изложение