Российские исследователи научили нейросеть запоминать объект, а не фон
Если загрузить в нейросеть фото собачки на лежанке и попросить переместить её на Марс, то она там окажется на той же лежанке, но с космическим пейзажем вокруг. Это называется меморизацией контекста, и бороться с ней при минимуме данных крайне сложно. Исследователи из ВШЭ, МФТИ и Института системного программирования им. В. П. Иванникова РАН нашли способ, как переучить генеративную модель.
Диффузионные модели, в том числе Stable Diffusion, DALL·E и Midjourney, — это класс генеративных нейронных сетей, которые «разучиваются» добавлять шум к изображению, а потом проводят этот процесс в обратном направлении, превращая случайный шум в картинку по текстовому описанию. Процесс диффузии состоит из временных шагов и на каждом из них к изображению добавляется немного шума, пока оно не превратится в случайный «белый шум». При обучении нейросеть учится предсказывать, какой шум добавляется на следующем этапе. Команда российских учёных выяснила, что шаги с малым шумом, которые сначала близки к исходному изображению, содержат тонкие и отличительные детали внешности — текстуры шерсти, форму носа, цвет глаз. Шаги с большим шумом кодируют только общую форму, схему расположения элементов. При стандартном обучении нейросеть уделяет одинаковую долю внимания мало- и сильношумовым шага.
Исследователи из ВШЭ, МФТИ и Института системного программирования им. В. П. Иванникова РАН предложили метод P-LoRA (Probability LoRA), изменяющий распределение вероятностей, с которым выбираются шаги диффузии при обучении. Модель акцентируется на малошумовых шагах, где видна идентичность объекта. При это нет никакого сдвига в распределении данных и никакой нестабильности обучения. При тестировании оказалось, что умеренный уклон к малошумовым шагам улучшает редактируемость, то есть способность нейросети откликаться на новые текстовые запросы, в частности перемещения объекта в неожиданные контексты, не теряя качества его воспроизведения.
Метод практически не требует дополнительных вычислительных ресурсов (дополнительных проходов через сеть, новых параметров модели или дополнительной памяти). Его можно встроить в любой существующий диффузионный пайплайн буквально за несколько строк кода.
