Нейросети без лишней мишуры

Давайте поговорим о Технологии Нейронов и Диффузии для чайников, и как это работает на самом деле. Со всеми ссылками на научные работы и пояснениями на пальцах как полагается.

Процесс Диффузии кратко:

Вы удивитесь насколько это точная картинка отражающая процесс.

Но что бы в этом убедится - я расскажу как это технически реализовано.

Технология ШУМОПОДАВЛЕНИЯ

Техника диффузии была изобретена в 2015 году исследователями ИИ из Стэнфордского университета.

Диаграмма ниже, взятая из исследования команды Стэнфорда , описывает процесс работы нейросети.

Нейросети без лишней мишуры

Первый этап заключается в том что бы взять исходное изображение (как и любые другие данные) - постепенно добавлять к картинке шум - на каждом этапе.В это время AI учится понимать как добавление шума меняет исходное изображение.

Нейросети без лишней мишуры

В итоге в конце этапа обучения изображение оказывается разбавленно почти случайным шумом.

Потом общую обученную систему используют что бы из шума получить ИСХОДНОЕ изображение :

Нейросети без лишней мишуры

Как можно видеть именно так нейросеть обучают слову «Спираль».

В итоге красная спираль справа (красной она помечена для понимания) - оказывается БУКВАЛЬНОЙ копией Спирали Слева. Ее можно назвать «Копией». с некоторыми потерями битов данных. Это можно использовать для обучения нейросети любым типам цифровых данных хоть OBJ хоть MP3, хоть PNG.

За технологией «Diffusion» не скрывается никакой магии - это последовательный алгоритм

Нейросети без лишней мишуры

Алгоритм, который учится восстанавливать из шума исходное изображение, по текстовому запросу. То есть наша нейронка это не более чем формат архивирования.

С точки зрения авторских прав - в процессе обучения нейросети -внутри формируется сверх сжатая копия чужих картинок которая оседает на узлах нейросети. И значит дав нейросети весьма долгий шаг работы над картинкой - она сможет восстановить исходное сокрытое изображение.

Нейросети без лишней мишуры

Но как робот понять что ИМЕННО ему нужно восстановить из шума?

ТЕХНОЛОГИЯ ПОДСКАЗОК

Для этого исследователи из Мюнхена усовершенствовали метод диффузии . Эти исследователи, как направить процесс шумоподавления с помощью дополнительной информации.

Этот процесс называется ДРЕССИРОВКА ( conditioning ), когда добавляется дополнительный элемент для направления «восстановления» изображения.

Наиболее распространенным инструментом дрессировкиявляются краткие текстовые описания, также известные как текстовые подсказки/. PROMT

Нейросети без лишней мишуры

Подсказки которые которые описывают элементы изображения. Это привело к доминирующему интерфейсу Stable Diffusion и других генераторов изображений AI: преобразование текстовой подсказки в изображение.

Таким образом Диффузия получает дополнительную возможность это технически способ восстановить исходное изображение из «зашумленного источника» используя известный контекст , так называемого PROMT'a - то есть «подсказки»

Это хорошо показывать на примере Моно Лизы.Которое гарантировано пойдет в любую базу нейросети.

Вот Мона лиза из Миджоры - вы можете попытаться получить свои варианты в ней.

Нейросети без лишней мишуры

Что бы замаскировать это создатели нейросетей могут пойти на кучу ухищрений - что бы пользователь получал разные результаты - а не один. Суть этого заключается в ограничении шагов генерации из диффузного шума, и подмешиванием в ваш промт - дополнительных слов. Которые определяются компьютерным псевдорандомом.Будь то слова «цветы», «икона» или даже «кот»:

Нейросети без лишней мишуры

Но как это достигается чисто физически?

ТЕХНОЛОГИЯ НЕЛИНЕЙНОЙ ИНТЕРПОЛЯЦИИ

О, в 2020 году исследователи из Калифорнийского университета в Беркли улучшили метод диффузии двумя способами:

  • Они показали, как диффузионная модель может хранить свои обучающие изображения в гораздо более сжатом формате, не влияя на ее способность реконструировать копии с высокой точностью. Эти сжатые копии обучающих изображений известны как скрытые изображения .
  • Они обнаружили, что эти скрытые изображения можно перемешивать — то есть математически смешивать - создавать линейную интерполяцию между двумя и ли большим числом запросов — для создания новых производных изображений.
Нейросети без лишней мишуры

Пример выше взят из из исследования команды Беркли , показывает, как работает этот процесс.

Нейросети без лишней мишуры

Изображение в красной рамке - получается - если взять два исходных изображения и смешать их в фотошопе поставив на слоях по 50% .

Но изображение в зеленой рамке было сделано путем взятия «скрытых исходников» из нейросети и последующий реконструкцией через шумоподавление диффузии показаной на примере спирали выше. По сравнению с «брутфорсным» смешиванием - итог выглядит как убедительное человеческое лицо, а не наложение двух лиц.

По этому принципу работают такие нейросети как «ThisPersonNot Exist» :https://thispersondoesnotexist.com/ и тысячи их клонов(жмите F5/ обновить страницу что бы получать разный результат)

***

STABLE DIFFUSION и его аналоги - реализованы все указанные технологии.

Как генерация из Промта и случайного шума

Нейросети без лишней мишуры

Так и технология работы с уже готовым изображением:

Нейросети без лишней мишуры

Но как и любая модель машинного обучения оно не буквально понимает текстовые данные.

Для этого используют CLIP (Контекстный язык предварительного обучения)

Чтобы любая модель понимала текстовые данные, нам необходимо преобразовать этот текст в числа, содержащие значение текста, называемые : embeddings (вложения). Процесс преобразования текста в число можно разбить на две части:

Токенизатор — разбивает каждое слово на подслова , а затем использует таблицу поиска для преобразования их в число смыслов, и получает матрицу.

Нейросети без лишней мишуры

Матрица которая изанчально создается за счет привязки изображений к подписям. Во время обучения на рандомных картинках скаченных Дата Саентистами с интернета:

Нейросети без лишней мишуры

После чего происходит МАТЕМАТИКА в смылсе МАГИЯ:

Нейросети без лишней мишуры

После чего имя матрицу «значений» и привязанные к ней «скрытые исходные картинки» внутри нейронки и генераторы шума - мы и получаем в итоге то что и называется «Diffusion» будь то Миджора, стебл диско и прочие …

Более подробно под капотом Стейбл Дифьюжен разобрана в следующих статьях:https://aayushmnit.com/posts/2022-11-05-StableDiffusionP2/2022-11-05-StableDiffusionP2.html

и

Что бы замаскировать что нейронка это банальный алгоритм - а не какая мега чудесная замена творчества- в ваш оцифрованый в таблицу ПРОМТ - создатели нейросетей подмешиват рандомные значения - в результате чего становиться труднее выманивать из нейросети очевидные копии обучающих изображений.

Как и меняют базовое зерно SEED базового шума при каждой генерации.

Сложно - но(!) отнюдь не невозможно: https://arxiv.org/pdf/2212.03860.pdf

Нейросети без лишней мишуры

Для примера исходный Диван справа вверху отсюда: https://ru.pinterest.com/pin/wall-view-002--863213453570261983/

Нейросети без лишней мишуры

Вот и выходит:

Нейросети без лишней мишуры

Как можно понять из всего текста выше - использовались только слова «шумоподавлене», «интерполяция» и «смешивание»- то как это может выдаваться за новую веху в творечстве?

Это же алгоритмы усреднения, работы с шумом и они создают нечто уже существующие и за пределы базы данных которую они набрали для обучения выйти за их пределы не могут. И даже если результат будет не плох, то:

это лишь означает что где то внутри нейронки скрыт не менее шедевральный оригинал - который слегка смешали с чем то еще.

***

Безопасно ли использовать нейросети ? Авторы Нейросетей отвечают : ДА.

Нейросети без лишней мишуры

Но в случае нарушения чужих авторских прав в коммерческих заказах вся ответственность будет только на ваших плечах :

Нейросети без лишней мишуры

Так что не удивительно что на создателей нейросеток готовится коллективная судебная тяжба: https://stablediffusionlitigation.com/ (так же часть материалов для данной статьи взята с этого сайта)

А чем это все это в итоге отличается от живого мозга который «тоже» работает с существующими изображениями - мы поговорим как нибудь в следующий раз…

114114
179 комментариев

«в процессе обучения нейросети -внутри формируется сверх сжатая копия чужих картинок которая оседает на узлах нейросети. И значит дав нейросети весьма долгий шаг работы над картинкой - она сможет восстановить исходное сокрытое изображение.»

— это неправильное понимание принципа работы. Вы как себе представляете сжатие почти 6 млрд (шести миллиардов!) картинок в файл 2.1гб или пусть 4.27гб? Все немного интереснее:
1. Для обучения конкретно SD использовали открытую билиотеку изображений (LAION), которую позволяют использовать для исследовательских целей. Этим занималась некоммерческая организация в соответствии с лицензией (иначе бы всего остального мы не увидели).
2. В файле не хранятся исходники изображений. Процесс кодирования-декодирования это не винрар. Никаких копий исходных картинок там нет, они в дальнейшем процессе не используются.
3. Восстановления исходных копий при генерации не происходит. Это воспроизведение чего-то похожего на оригинал, но это всегда случайное изображение и это всегда новое изображение. Отличия даже с тем же случайным исходным числом одной и той же модели будут при генерации на разных устройствах с разными видеокартами.

Теперь самое интересное, что беспокоит большинство людей — копирайт. Исходные модели SD распространяются бесплатно, и обучены на бесплатной базе. Но для дообучения этих моделей (создания своих версий моделей) нужно использовать новые изображения — если вы обучаете на своих картинках, у вас должны быть права на их использование. При этом скрипт для обучения — он тоже в опенсорсе — не имеет прямого отношения к SD, у него другие разработчики.

22

Я потом расписал как это происходит и приложил даже примеры как можно вытащить исходник.
Внимательнее)
Для особо не внимательных продублирую еще раз:
https://arxiv.org/pdf/2212.03860.pdf

Само собой все 4.5 миллиарда картинок не храняться - но сотня тысяч самых распространенных котоыре повторяются в дата базе в разном качестве - очень даже.

5

Сжатие 6 миллиардов картинок легко объяснить векторизацией. Разделение изображения на числовые признаки, в том числе неоднократно повторяющиеся в разных изображениях. Это как сжатие с потерями, только потерь 98%. Восстановление изображения происходит при рекомбинации признаков - чем то похоже на случайную генерацию уровней в играх. К тому же изображения почти всегда обучаются в лоурезе. В среднем модель должна требовать около 60 - 70 терабайт несжатых данных, впрочем, это не так уж и много.

Чисто теоретически при определенной комбинации признаков можно почти точно восстановить одно из исходных изображений, что конечно вызывает некоторые правовые вопросы.

4

Комментарий недоступен

11

Комментарий недоступен

7

"Ну, статью воспринимать не особо стоит после слов, что модель в 1-4 гига каким-либо образом хранит 240 терабайт картинок датасета LAION-5B"Я этого не говорил)
Это ты сам придумал. Я как раз во всю говорю что данные архивируются до максимально сжатого вида.

"Другое дело, что в датасете может быть слишком много похожих работ, что вызовет оверфит по конкретным примерам, и очень похожие работы будут выдаваться по соответствующим запросам."Вот именно - она так и работает - в нее грузят картинки и учат их восстанавливать из шума.
Ясен фиг что всех 4.5 млрд в нейронки не останется

Я это показал на примере МОНО ЛИЗЫ. Если Нейронка может выдать на уровне УЗНАВАЕМОГО ОБРАЗА... то это ОЗНАЧАЕТ что она(моно лиза), БУКВАЛЬНО - ЛЕЖИТ ВНУТРИ нейронки, естественно с потерей данных. О чем указано в статье.


Но помимо моно лизы - есть тысячи узнаваемых образов которые штампуются нейронкой. У того же Грега Рутовски в весрии 1.5 Стейбл Дифьюжн - можно заставить выдать с десяток его работ. На уровне узнаваемого плагиата.

Комментарий недоступен