Ключевые технологии генеративного ИИ «на пальцах». искусственный интеллект.. искусственный интеллект. нейросети.. искусственный интеллект. нейросети. трансформеры.
Нейросети - основа генеративного ИИ

Нейросети – основа генеративного ИИ

Считается, что революция генеративного ИИ началась в ноябре 2022 года с выходом в публичное пространство чат-бота ChatGPT 3.5, разработанного компанией OpenAI. Но революции на голом месте не происходят. Все второе десятилетие XXI века велась подготовительная работа – разрабатывались, апробировались и совершенствовались технологии работы с нейросетями.

За каждой технологией скрываются сложные математические понятия, алгоритмы, модели. Как мы уже говорили, погружаться в них – удел специалистов по проектированию, разработке и обучению нейросетей. Поэтому мы познакомимся лишь с концепциями, которые предельно кратко описывают эти ключевые технологии. По каждой технологии любознательный читатель при желании самостоятельно сможет найти публикации нужного уровня сложности и детализации.

Сначала напомним, что ключевой проблемой нейросетей предыдущего поколения была необходимость вручную отбирать и размечать данные, на которых нейросети обучались. Громоздкая задача даже для специализированных нейросетей. Для универсальных – задача просто неподъемная. Поэтому исследователи в первую очередь искали способы, как обучать нейросети на исходных неразмеченных данных, которых на просторах интернета – воз и маленькая тележка.

Первая технология – генеративно-состязательная нейросеть (Generative adversarial network, GAN). Это архитектурное решение, состоящее из двух конкурирующих нейросетей, каждая из которых в процессе состязания обучается сама и помогает обучаться конкуренту.

GAN была представлена на суд общественности в 2014 году.

Концептуальная идея проста и гениальна.

Первая нейросеть генерирует объект, относящийся к заданной категории. Например, изображение кота. Эту нейросеть так и называют – генератор. Новое изображение – это его (генератора) выход.

Выходные данные генератора подаются на вход второй нейросети, которую назвали дискриминатор. Чтобы внести элемент неопределенности, на вход дискриминатора также периодически подаются реальные изображения. Получив изображение, дискриминатор должен определить – оно реальное или сгенерированное.

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

Если дискриминатор точно определил, что поданное ему на вход изображение – плод работы генератора, он считается победителем. Победитель сохраняет настройки, а проигравший (генератор), получив соответствующий сигнал, свои настройки корректирует, улучшая способности к генерации.

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

Предварительно для GAN собирается набор исходных данных. Исходные данные нужны генератору – это источник его вдохновения. Исходные данные нужны дискриминатору – по ним определяется, правильно ли он определил источник изображения.

GAN могут работать с разными данными: изображениями, текстами, аудио, видео. Главное – ручная разметка исходных данных не нужна, все обучение происходит в автоматическом режима.

Вторая технология – автоэнкодеры. Это базовая техника генеративного ИИ и машинного обучения, на основе которой строятся более сложные модели. Понятно, что в ее основе тоже лежат нейросети.

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

Автоэнкодер состоит из двух частей. Первая часть – энкодер – переводит исходные данные в более компактную форму. Вторая часть – декодер – пытается восстановить исходные входные данные из закодированного представления. Цель состоит в том, чтобы обеспечить максимальное сходство выходных данных с оригинальными входными, показывая, что кодирование сохраняет основные признаки.

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

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

Третья технология – стабильная диффузия (Stable Diffusion, SD). Эта технология лежит в основе нейросетей, которые генерируют изображения и видео.

Для пользователей генерация изображений и тем более видео выглядит как магия. Как компьютер может генерировать настолько реалистичные изображения и делать это так быстро? Еще несколько лет назад это казалось совершенно невозможным. SD позволила сделать фантастику реальностью.

На концептуальном уровне модель SD проста и гениальна.

Модель учится на исходном наборе парных изображений. Одно изображение в паре – реальное изображение. Второе – то же изображение, в которое по определенному алгоритму добавляются искажения (шум). Узнать во втором изображение исходное – сложно или невозможно. Для этого второе изображение нужно очистить от шума.

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

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

Когда SD обучена делать прекрасное из шума, ее можно начинать использовать. Пользователям предлагается описать свои пожелания и передать это SD-модели.

На вход SD-модели поступает текстовый запрос, в котором описывается, что пользователь хочет получить на изображении. Запрос разбирается, кодируется и передается в информационное пространство SD-модели. В этом пространстве хранится закодированное описание сущностей, которые участвовали в процессе обучения: котов, собак, облаков, деревьев, попугаев, …

По закодированному запросу SD-модель находит в пространстве нужные сущности, определяет контекст, в котором они должны быть связаны на изображении, и запускает процесс генерации.

Четвертая технология – сверточные нейросети (Convolutional Neural Network, CNN). CNN – технология не новая, ее придумали еще в XX веке. Но она развивается и продолжает активно использоваться.

Если изображения показывать обычной нейросети, то она будет воспринимать все пиксели, а потом по этим пикселям будет учиться распознавать котов. Человек делает это совсем по-другому. Он видит уши, усы, плоский нос, пушистый хвост и понимает – это кот. Похожий подход к анализу изображений используют CNN.

На вход CNN поступает изображение. Фрагменты изображения последовательно рассматриваются с помощью специального блока, которое называется ядром CNN. Уместно провести аналогии с лупой. Мы наводим ее на левую верхнюю часть страницы и начинаем читать, перемещаясь слева направо и сверху вниз.

Отличие ядра CNN от лупы заключается в том, что выделенные фрагменты изображения по правилам ядра обрабатываются и трансформируются (сворачиваются), например, в числа. Числа одно за другим по мере просмотра всех фрагментов изображения помещаются в дополнительную структуру, например, матрицу.

Предположим у нас есть квадратное изображение. Разбиваем его по вертикали и горизонтали на 5 квадратных фрагментов – всего получается 25 фрагментов. Ядро CNN одно за другим просматривает эти фрагменты и по заложенным в него правилам последовательного заполняет числами матрицу 5 на 5. В дальнейшем решение о том, кот на изображении или не кот нейросеть принимает, анализируя матрицу.

Пятая технология – рекуррентные нейросети (Recurrent neural network, RNN). Эту технологию сегодня заменили трансформеры – ключевая технология генеративного ИИ, о которой пойдет речь дальше. Но мы решили включить концептуальное описание RNN для лучшего понимания тех решений, которые пришли им на смену.

В обычной нейросети любой нейрон внутренних слоев имеет один вход для получения сигнала от нейрона предыдущего слоя и один выход для передачи сигнала нейрону последующего слоя. Такая конструкция плохо приспособлена для получения и обработки последовательностей, например, фрагментов текста (последовательности слов).

Для восприятия и обработки последовательностей элементов и были придуманы RNN. Узлы в такой нейросети могли иметь несколько выходов и входов. То есть, нейрон мог передавать обычный сигнал об элементе нейрону следующего слоя и одновременно передавать сигнал другому нейрон, например, соседнему в том же слое. Второй сигнал содержал информацию о порядке элемента в последовательности. Таким образом CNN можно было научить обрабатывать тексты, последовательности событий, статистических данных и многое другое.

RNN широко использовались во втором десятилетии XXI века. Они, например, лежали в основе первых версий голосовых помощников Siri корпорации Apple и Alexa корпорации Amazon. RNN активно применялись для машинного перевода с одних языков на другие.

Главный недостаток RNN проявлялся при работе с длинными фрагментами текста. Чтобы хранить весь контекст приходилось помнить все и создавать для этого очень громоздкие модели CNN. Если модель упрощалась для обработки более коротких сообщений, контекст мог теряться – модель, обрабатывая конец текста, забывала о том, что было в его начале.

Все мы помним, как коряво по нынешним стандартам работали машинные переводчики еще 10 лет назад. Воспринять книгу и сохранить контекст между главами при помощи RNN – об этом не было даже речи. Нужно было принципиально иное архитектурное решение.

Шестая технология – трансформеры. Новое архитектурное решение в 2017 году представили на суд общественности исследователи из Google Brain. Именно оно подготовило шестую информационную революцию – революцию генеративного ИИ. Революцию готовили в исследовательских лабораториях лидеров ИИ-рынка. Пять лет полученные результаты (например, ChatGPT 1, 2, 3) до широкой общественности не доводились. Когда в ноябре 2022 года количество перешло в качество, мир узнал о ChatGPT 3.5.

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

В сравнении с RNN такой подход был существенно экономичнее по вычислительным ресурсам, необходимым для обработки текстов. Кроме того, он позволял разбивать большие фрагменты текста на блоки, а затем воспринимать и обрабатывать их параллельно. Таким образом существенно повышалась скорость работы ИИ-технологий.

О трансформерах речь пойдет в одном из следующих сюжетов.

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

Автор: Digit-march

Источник

Rambler's Top100