Искусственный интеллект стал одной из самых обсуждаемых тем в последние годы, и на то есть веские причины. Благодаря развитию искусственных нейронных сетей сервисы, которые когда-то считались предметом научной фантастики, теперь становятся реальностью. От диалоговых агентов до создания и редактирования медиаконтента ИИ меняет способ нашего взаимодействия с технологиями. В частности, модели машинного обучения (ML) добились значительных успехов в области обработки естественного языка (NLP). Одним из ключевых прорывов стало введение архитектуры «самовнимания» и преобразователя для обработки последовательностей, что позволило решить несколько ключевых проблем, которые ранее доминировали в этой области.

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

BERT-подобные модели для текста

Первый раздел посвящен моделям на основе кодировщика Transformer, которые используются для векторизации, классификации, маркировки последовательностей, QA (ответ на вопрос), NER (распознавание именованных объектов) и т. д.

БЕРТ

Google/2018

Кодер-трансформер, токенизация слов (словарь 30K). Входное вложение формируется из трех векторов: вектора маркера, обучаемого позиционного вектора и вектора сегмента (1-й текст или 2-й). Входные данные модели — это встраивание токена CLS, встраивания первого текста и встраивания второго.

Есть две обучающие задачи: моделирование маскированного языка (MLM) и прогнозирование следующего предложения (NSP). В MLM 15% токенов статически маскируются, 80% заменяются токеном MASK, 10% заменяются случайным токеном и 10% остаются неизменными. Модель предсказывает правильный токен, и убыток рассчитывается только на этих 15% токенов. В NSP модель предсказывает, следует ли второй текст за первым. Прогноз делается на выходном векторе токена CLS.

Для ускорения обучения в 90% случаев длина последовательности составляла 128 токенов, затем в 10% случаев модель обучалась на 512 токенах для получения корректных позиционных вложений. 16 ГБ тренировочных данных.

РОБЕРТа

Фейсбук / 2019

Улучшенная версия BERT без радикальных изменений. Обучается только на MLM (NSP считается менее полезным), обучающие последовательности длиннее (но все же до 512 токенов). Используется динамическое маскирование (т.е. при повторной обработке одних и тех же данных маскируются разные токены), а обучающих данных на порядок больше. В целом гиперпараметры обучения тщательно подобраны.

XLM

Фейсбук / 2019

Одним из подходов к обучению многоязычных моделей является использование различных базовых моделей (в настоящее время наиболее популярной моделью является XLM-R на основе RoBERTa). В исходном XLM есть общий словарь BPE для всех языков.

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

Трансформер-XL

Университет Карнеги-Меллона, 2019 г.

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

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

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

ЭРНИ

Университет Цинхуа, Huawei / 2019

Встраивание информации об именованных сущностях из графа знаний в BERT. Входные данные состоят из набора текстовых токенов и набора токенов сущностей (каждый токен представляет всю сущность). Текстовые токены кодируются BERT. Поверх BERT есть набор блоков К-энкодера (~3% параметров сети). В этих блоках:

  • обновленные векторы текстовых токенов и исходные векторы токенов сущностей сначала проходят через самовнимание независимо друг от друга;
  • векторы сущностей сопоставляются с первыми токенами их появления в тексте;
  • внутри линейного слоя с GeLU-активацией они совместно используются для получения новых скрытых представлений текстовых токенов (для токенов с вектором сущностей — на основе двух векторов, для других токенов — только на основе их вектора);
  • новые векторы как текстовых, так и сущностных токенов получаются из скрытого представления и передаются в качестве входных данных в следующий блок K-кодировщика.

Во время предобучения есть три потери: MLM, NSP и предсказание сущностей из токенов (как шумоподавляющий автоэнкодер). Для последнего:

  • в 5% случаев сущность заменяется на неправильную, но соответствие сохраняется, и модель вынуждена предсказывать правильную сущность;
  • в 15% случаев сопоставление удаляется, и модель должна предсказывать сущность только на основе текста;
  • в остальных случаях все предусмотрено.

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

XLNet

Университет Карнеги-Меллона, 2019 г.

Существуют проблемы с процедурой обучения BERT:

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

XLNet основан на Transformer-XL и в дополнение к задаче Permutation Language Modeling (PLM) предлагает научиться прогнозировать токены в их коротких контекстах вместо прямого использования MASK. Это гарантирует, что градиент проходит через все токены, и устраняет необходимость в специальном маскирующем токене.

Токены в контексте перемешиваются (т. е. i-й токен можно предсказать на основе (i-2)-го и (i+1)-го токенов), но их позиции остаются известными. Этого нельзя достичь с текущим позиционным кодированием (включая Transformer-XL). При попытке предсказать вероятность токена с учетом части его контекста модель не должна знать сам токен, но должна знать положение токена в контексте. Для решения этой проблемы самовнимание разделяется на два потока:

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

При тонкой настройке векторы запросов можно игнорировать, и модель будет работать как обычный Transformer-XL.

PLM значительно сложнее, чем MLM. На практике контексты должны быть достаточно длинными, чтобы модель правильно обучалась. Она обучается на том же объеме данных, что и RoBERTa, и результаты у нее схожи, но из-за сложности реализации модель не стала такой популярной, как RoBERTa.

АЛЬБЕРТ

Google / 2019

Попытка упростить BERT без ущерба для качества:

  • Общие параметры используются в разных блоках энкодера, и было показано, что можно разделить веса слоев внутреннего внимания, а разделение весов полносвязных слоев приводит к падению качества.
  • По сравнению с BERT используются меньшие входные вложения и большие векторы скрытых слоев. Это возможно за счет использования на входе сети дополнительной проекционной матрицы, позволяющей отделить размер вложений от размера скрытых представлений.
  • В результате модель имеет в 18 раз меньше параметров и работает в 1,7 раза быстрее.

Модель обучена MLM и прогнозированию порядка предложений (SOP). В МЛМ маскируются не только отдельные токены, но и N-граммы (одно из ограничений BERT). В качестве обучающих данных используются наборы данных XLNet и RoBERTa.

ДистилБЕРТ

Обнимающее лицо / 2019

Другой подход к оптимизации BERT — дистилляция:

  • Количество блоков энкодера уменьшено вдвое (берется каждый второй).
  • Три компонента потерь: MLM, кросс-энтропия на сглаженных выходных данных-вероятности модели большого учителя и косинусное расстояние между выходными данными соответствующих слоев.

В результате модель на 40% меньше учителя, на 60% быстрее и сохраняет 97% качества на различных задачах.

ЛаБСЭ

Google/2020

Многоязычная модель на основе BERT для векторизации предложений. Сначала обучается на MLM и TLM (маскируется 20% токенов), затем дорабатывается для аппроксимации векторов параллельных переводов. Он поддерживает более 100 языков со словарным запасом в 500 тысяч токенов.

ЭЛЕКТРА

Google, Стэнфордский университет, 2020 г.

Ускорение обучения BERT с использованием генеративно-состязательного подхода:

  • Обучаются две BERT-подобные модели: небольшой генератор и основной дискриминатор.
  • Генератор обучается на MLM, а затем заполняет замаскированные токены.
  • Дискриминатор обучен предсказывать оригинальность текстов, сгенерированных генератором (задача Replaced Token Detection).
  • После обучения генератор убирается, а дискриминатор используется для тонкой настройки.

В отличие от MLM, градиент проходит через все токены, а не только замаскированные. В моделях используются общие веса встраивания.

Объем обучающих данных такой же, как для RoBERTa или XLNet, и модель обучается до аналогичного уровня качества быстрее, чем BERT, RoBERTa и ALBERT. Если тренироваться дольше, он работает лучше.

ДеБЕРТа

Майкрософт / 2020

Другая модель, в которой содержимое и позиционные компоненты вектора токена разделены на два отдельных вектора (распутанное внимание):

  • Позиционные векторы являются общими для всех слоев и являются относительными, т. е. существуют по одному для каждого возможного расстояния между маркерами.
  • Для них добавлены две новые весовые матрицы K_pos и Q_pos (в дополнение к существующим матрицам для контента K_cont и Q_cont).
  • Расчет веса внимания изменен и сведен к сумме трех произведений: Q_cont * K_cont + Q_cont * K_pos + K_cont * Q_pos (исключая транспозиции).

Enhanced Mask Decoder — абсолютные позиционные вложения, которые нежелательно использовать во внимании, но могут быть полезны при предсказании токена, добавляются после всех слоев перед softmax. Как и в ALBERT, матрица проекций используется для отделения размера встраивания от размера вектора представления скрытых токенов.

GPT-подобные и T5-подобные модели для текстов

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

ГПТ-2

Открытый ИИ / 2018

Декодер преобразователя обучен задаче Causal LM (предсказание следующего токена на основе левого контекста). С точки зрения архитектуры есть небольшие изменения: слой перекрестного внимания убран из каждого блока декодера (очевидно) и используется pre-LayerNorm — слой нормализации применяется на входе каждого блока и дополнительно на выходе блока. последний слой внимания к себе.

Используемый токенизатор — это BPE на уровне байтов (словарь 50K) с запретом одинаковых подстрок («dog», «dog!», «dog.») при формировании. Максимальная длина последовательности — 1024. Выходные данные слоя кэшируются для всех ранее сгенерированных токенов.

T5

Google / 2019

Полный преобразователь, предварительно обученный на MLM (маскировано 15% токенов), с интервалами, замаскированными уникальной кодовой маской (‹X›, ‹Y›, …). Вывод предсказывает последовательность ‹X›span‹Y›span…

LayerNorm применяется перед вводом самостоятельного внимания и полносвязных слоев. Используется относительное позиционное кодирование:

  • Позиция кодируется обучаемыми вложениями, где каждое «вложение» — это просто скаляр, добавляемый к соответствующему логиту при вычислении весов внимания.
  • Матрица B является общей для всех слоев, но отличается для разных головок само-внимания.
  • Каждый слой учитывает 128 расстояний между токенами и обнуляет остальные, что позволяет делать выводы о последовательностях, более длинных, чем те, которые были видны во время обучения.

Токенизация выполняется с помощью SentencePiece (словарь 32 КБ) с максимальной длиной последовательности 512 во время предварительной подготовки. Затем модель настраивается на различные задачи НЛП с соответствующими подсказками («перевести», «TL;DR», …).

БАРТ

Фейсбук / 2019

Еще один полноценный трансформер, но с заменой везде ReLU на GeLU. Он обучен предсказывать исходный текст из зашумленного текста (шумоподавления AE) со следующими типами шума:

  • Маскировка токена
  • Удаление токена
  • Заполнение токена (выборка диапазонов токенов с длиной ›=0 и замена их одним токеном MASK)
  • Перетасовка предложений
  • Ротация токена (смещение, так что случайный токен становится началом последовательности)

Токенизация выполняется с использованием BPE на уровне байтов (размер словаря 50 КБ).

CTRL

Salesforce/2019

Декодер-трансформер с возможностью управления генерацией с помощью токенов кода префикса (например, ввод текста «Ужас»…). Коды присваиваются соответствующим текстам во время обучения, а затем используются во время логического вывода для генерации текста в соответствующем стиле. Модель обучена на Causal LM, дополнительные потери не используются. Используемая токенизация — это BPE с размером словаря 250 тыс.

ГПТ-3

Открытый ИИ / 2020

Это модель GPT-2 с архитектурой Sparse Transformer и увеличенной длиной последовательности 2048 токенов. Модель оптимизирована для обучения и логического вывода за счет распараллеливания нескольких графических процессоров как по ширине, так и по глубине.

mT5

Google/2020

Эта модель основана на модели T5 с аналогичным обучением, но с использованием многоязычных данных. Вероятность выбора языка при формировании пакетов во время обучения пропорциональна доле образцов этого языка в корпусе, возведенной в степень 0,3.

Активация ReLU заменена на GeGLU, а словарный запас расширен до 250 тыс. токенов.

Юрский-1

Лаборатория AI21 / 2021

Эта модель похожа на GPT, но имеет меньше слоев в больших моделях, но больше размерности эмбеддингов. Для токенизации используется SentencePiece со словарем на 256 тысяч токенов. Для обучения используйте DeepSpeed ​​и MegatronLM.

ГЛАМ

Google / 2021

Эта модель концептуально похожа на Switch Transformer, но больше ориентирована на работу в режиме нескольких выстрелов, а не на точную настройку. Модели разных размеров используют от 32 до 256 экспертных слоев с K=2. Используется относительное позиционное кодирование от Transformer-XL. Менее 10% сетевых параметров активируются при обработке токена.

ЛаМДА

Google / 2021

Модель, подобная GPT, с активациями Gated GELU, кодированием относительного положения при внутреннем внимании, аналогично T5. Это разговорная модель, предварительно обученная на Causal LM и настроенная на генеративные и дискриминационные задачи. Формат ввода: «‹контекст›‹префикс›‹ответ›[‹атрибут›‹значение›]», например, «как дела? ОТВЕТ хороший ЗНАЧЕНИЕ 0”. Потери рассчитываются только по ответу и значению. Тонкая настройка проводилась в два этапа:

  • Модель учится генерировать и оценивать качество своих ответов в соответствии с определенными критериями.
  • Модель используется для фильтрации обучающих наборов данных.
  • Затем он повторно обучается на этих отфильтрованных наборах данных для получения ответов более высокого качества.

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

GPT-NeoX-20B

ЭлеутерАИ / 2022

Эта модель похожа на GPT-J и также использует поворотное позиционное кодирование. Токены для повторяющихся пробелов (до 24) добавляются в токенизатор, чтобы уменьшить количество токенов в тексте кода. Веса модели используют представление float16. Максимальная длина последовательности — 2048, с сегментированием состояния оптимизатора во время обучения (ZeRO) и тензорным и конвейерным параллелизмом.

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

ЦВЕСТИ

Большая наука / 2022

Это самая большая модель с открытым исходным кодом для 46 языков и 13 языков программирования. Для обучения модели был агрегирован большой набор данных под названием ROOTS, который включал около 500 открытых наборов данных. Функции:

  • позиционные вложения ALiBi;
  • LayerNorm перед самостоятельным вниманием, перед полносвязными слоями, после последнего блока и после первого встраивающего слоя;
  • регулярное (неразреженное) внимание с длиной последовательности 2048;
  • оптимизация обучения с использованием 3D-параллелизма на DeepSpeed ​​и MegatronLM (как в Megatron-Turing NLG);
  • токенизация BPE на уровне байтов (словарь 250K);
  • тип данных bfloat16.

Ладонь

Google, 2022 г.

Это большая многоязычная модель декодера со следующими деталями:

  • функция активации SwiGLU;
  • Параллельное вычисление полносвязных слоев и слоев с самостоятельным вниманием (ускорение на 15% без потери качества);
  • позиционное кодирование RoPE;
  • Multi-Query Attention (K и V общие для всех головок внимания, Q уникален);
  • Причинный LM + дополнительный регуляризатор потерь (логарифм выхода знаменателя softmax сети приближается к 0).

Модель обучается с использованием Adafactor с отключенным отсевом во время предварительной подготовки и 0,1 во время тонкой настройки. При наличии расхождений обучение возобновляется с действующей контрольной точки с пропуском 200–500 пакетов.

ЛАМА

Мета/2023

Большой GPT-подобный LM с открытым исходным кодом для научных исследований, который использовался для обучения нескольких моделей обучения. В модели используются pre-LayerNorm, активации SwiGLU и позиционные вложения RoPE.

Во время обучения тяжелые активации (например, выходные данные линейных слоев) кэшируются на прямом проходе, чтобы ускорить обратный проход. Это увеличивает потребление памяти, поэтому используется как модельный, так и последовательный параллелизм. Модель токенизирована с использованием BPE с откатом байтов (словарь 32 КБ).

Instruct-модели для текстов

Работы этого блока являются модернизированными версиями моделей декодеров из предыдущего блока. Они были настроены на выполнение инструкций и (опционально) были применены дополнительные методы коррекции выходных данных модели (такие как RLHF) для улучшения качества ответов во время диалога и решения задач.

InstructGPT

Открытый ИИ / 2022

Эта работа включает в себя адаптацию GPT-3 для эффективного следования инструкциям. Во-первых, модель подвергается тонкой настройке на наборе данных подсказок и ответов, которые люди считают хорошими на основе набора критериев. В результате получается базовая модель, которая затем улучшается с применением RLHF. Используемая модель переименования («вознаграждение») — GPT-3 6B. Полученная модель способна давать ответы более высокого качества, и на основе InstructGPT была создана модель под названием ChatGPT.

Флан-Т5

Google / 2022

Процесс обучения Flan-PaLM применительно к T5 аналогичен, за исключением некоторых незначительных технических деталей. В некоторых задачах Flan-T5 11B превосходит PaLM 62B без такой тонкой настройки. Эти модели были выпущены с открытым исходным кодом.

Воробей

Глубокий разум / 2022

Это большой проект, направленный на повышение надежности диалоговой модели. Базовая модель получается путем тонкой настройки Chinchilla на выбранных высококачественных диалогах, при этом первые 80% слоев заморожены во время настройки. Затем модель дополнительно обучается следовать инструкциям чат-бота, использующего RLHF, с большой подсказкой, которая направляет ее к диалогу. Есть несколько моделей вознаграждения, которые также тренируются поверх Chinchilla (используя оставшиеся 20% последних слоев) и оценивают качество ответа и его соответствие различным правилам.

Модель может получить доступ к поисковой системе и получить фрагменты длиной до 500 символов, которые могут стать ответами.

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

Альпака

Стэнфордский университет/2023

Проинструктируйте о тонкой настройке LLaMA. Основное внимание в этой работе уделяется процессу построения набора данных с использованием GPT-3:

  • Цель состоит в том, чтобы получить набор триплетов Task-Input-Output, где Input может быть пустым.
  • Люди генерируют 175 подсказок с ответами, которые вводятся в GPT-3, который генерирует новые задачи.
  • Процесс генерации является итеративным, и на каждом этапе предоставляется несколько задач в качестве примеров от людей и несколько из ранее сгенерированных.
  • GPT-3 классифицирует сгенерированные Задачи как задачи классификации или нет, и Ввод и Вывод генерируются по-разному в зависимости от этого.
  • Триплеты фильтруются по качеству и непохожести на существующие в базе данных.

Всего было сгенерировано 52 тыс. уникальных триплетов, на которых была доработана LLaMA 7B.

Коала

Университет Беркли / 2023

Еще одна работа по тонкой настройке LLaMA на инструктируемых данных, но, в отличие от Альпаки, не только на данных, сгенерированных такой большой моделью, как GPT-3. Состав набора данных:

  • 30 тыс. образцов инструкций и ответов по математике, поэзии и диалогам;
  • 52 000 образцов из набора данных модели Alpaca;
  • 160 тыс. пар ответов моделей с пользовательскими предпочтениями о пользе и вреде;
  • 20 тысяч пар ответов модели с вопросами пользователей и оценками;
  • 93 000 обобщений с пользовательскими оценками их качества.

Было продемонстрировано, что данные поверх ответов GPT-3 мало повышают качество. Тем не менее, в слепом тесте пользователи предпочитают ответы Коалы ответам Альпаки.

Модели для создания изображений из текста и изображений

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

ДАЛЛ-Э

Открытый ИИ / 2021

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

На первом этапе обучается dVAE, в котором изображение транслируется из пространства 256x256x3 в 32x32xdim и обратно, где dim — размерность вектора скрытого представления. Всего таких векторов токенов 8192, которые в дальнейшем используются в модели.

В качестве основной модели используется декодер Sparse Transformer. В качестве входных данных подаются текстовые токены и токены изображений, и модель изучает совместное распределение (Causal LM), после чего она может генерировать токены изображений на основе текста. dVAE генерирует образ на основе этих же токенов. Потеря веса для текстовых токенов составляет 1/8, а для графических токенов — 7/8.

Для текстовых токенов существуют как обычные, так и позиционные вложения, а для токенов изображений — обычные, позиционные по столбцам и позиционные по строкам. Максимальная длина последовательности текстовых токенов — 256, а токенизация — BPE (словарь 16 КБ).

Используются несколько видов самоконтроля:

  • текстовые токены могут обслуживать все входные токены
  • токены изображения могут обслуживать все текстовые токены
  • жетоны изображения могут обращать внимание друг на друга посредством двух типов внимания: на соседей по вертикали и по горизонтали.

Отсев BPE используется для текстовых токенов для регуляризации во время обучения. Основная часть весов и активаций находится в float16, а изредка для стабильности (например, в остаточных связях) есть переход в float32.

Скользить

Открытый ИИ / 2021

Модель распространения (DM), работающая на уровне пикселей и управляемая текстом. Он основан на архитектуре U-Net со сверткой, вниманием и остаточными соединениями. Для управления генерацией используются разные подходы. Средний прогнозируемый шум может быть смещен в направлении градиента заданной функции текста, где сила сдвига определяет компромисс между качеством и разнообразием. Тип управления зависит от используемой функции со следующими вариантами:

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

Скрытая диффузия [Стабильная диффузия]

CompVis [Стабильный ИИ] / 2021 [2022]

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

Для этого обучаются две модели:

  • автоэнкодер VAE для уменьшения размерности и генерации из скрытого пространства
  • DM на его внутренних представлениях

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

Условная генерация может выполняться на основе текста, изображений, семантических карт. Каждый из этих объектов должен быть закодирован собственной моделью кодировщика в один или несколько векторов. Результат поступает на каждый шаг декодирования МД в скрытом пространстве: если условие является вектором, то оно конкатенируется со скрытым вектором на входе шага, если это последовательность векторов, то используется в перекрестном внимании. на разных уровнях U-Net. Для текстовых подсказок используется текстовый энкодер от CLIP.

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

Изображение

Google / 2022

Основная идея Imagen заключается в том, что увеличение размера текстового кодировщика может принести больше преимуществ генеративной модели, чем увеличение размера DM. Поэтому CLIP был заменен на обычный T5-XXL, который выводит набор эмбеддингов, которые рассылаются перекрестному вниманию всех обученных DM. Как и в других работах, используются три модели: одна основная и две модели, повышающие разрешение (64 -> 256 -> 1024).

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

Для управления генерацией используется руководство без классификатора, где текстовые векторы обнуляются в 10% случаев. Архитектура U-Net в работе была оптимизирована по скорости и потреблению памяти.

Модели для генерации текста из текста и изображений

Модели в этом разделе обычно называют мультимодальными, так как они генерируют текст, но могут анализировать данные разной природы. Чаще всего это тексты и 2D-изображения, но иногда могут обрабатываться и сложные описания окружения и сцен. Полученный текст может быть на естественном языке или набором команд, например, для робота.

КоКа

Google / 2022

Отдельный кодировщик для изображений (ViT или CNN) + общий декодер, где первая половина обрабатывает текст, а вторая половина обрабатывает текст совместно с выходом кодировщика изображений.

Изображение 288x288 нарезается на квадраты 18x18, которые кодировщик преобразует в векторы + общий вектор объединения внимания на основе всех этих векторов.

Выход первой половины декодера — текстовые векторы и вектор токенов CLS в конце последовательности, токенизация с помощью SentencePiece (лексикон 64K). Векторы текста и изображения объединяются во второй половине декодера посредством перекрестного внимания.

Используются две потери с весами 1 и 2 соответственно:

  1. Сходство между вектором из объединения внимания изображения и вектором токена CLS текста для пары изображение-описание.
  2. Авторегрессионная потеря на выходе всего декодера (уже обусловленная изображением).

Во время точной настройки кодировщик изображений может быть остановлен, и можно точно настроить только объединение внимания.

ПАЛМ-Э

Google / 2023

Изображения кодируются ViT, а выходные векторы вместе с текстовыми токенами и командами передаются в PaLM, который генерирует выходные тексты. Закодированные объекты:

  • текст векторов
  • изображение векторов
  • векторы объектов и их состояния в изображениях сцен
  • Преобразование векторов объектов сцены (другое представление для 3D-сцен)
  • Векторы токенов obj_j для явного указания объекта в сцене по номеру

Префикс LM используется во всех задачах, включая VQA, обнаружение объектов и манипулирование роботами.

ГПТ-4

Открытый ИИ / 2023

Это закрытая модель с небольшим количеством известных деталей. Предположительно, у него есть декодер с разреженным вниманием и мультимодальным вводом. Он использует авторегрессионное обучение и тонкую настройку RLHF с длиной последовательности от 8 до 32 КБ.

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

Заключение

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

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

С одной стороны, OpenAI сейчас движется в сторону close-source, с другой уже пытались не выпускать веса GPT-2, но не вышло. Опять же, тенденция последних месяцев к улучшению и оптимизации стоимости тонкой настройки и скорости вывода моделей с открытым исходным кодом в значительной степени обесценивает крупные частные модели как продукты.

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

Очевидно, что значительная часть рассмотренных моделей уже стала или скоро станет историей, не выдерживая конкуренции, но на некоторые из них стоит обратить больше внимания. Суммируя:

  • в блоке моделей кодеров модели XLM-RoBERTa и LaBSE признаны надежными многоязычными решениями;
  • среди открытых генеративных моделей наиболее интересными являются LLaMA и модели от EleutherAI (обе со всеми их доводками), Dolly-2, BLOOM (опять же с опциями доводки instruct);
  • для кода можно посмотреть модели SantaCoder, но в целом все эти модели заметно отстают по качеству от ChatGPT/GPT-4;
  • Transformer-XL и Sparse Transformer реализуют приемы, использованные в других работах, и заслуживают более пристального внимания;
  • стоит также изучить те важные работы, которые в конце отмечены курсивом: LaMDA, Megatron-Turing NLG, Sparrow.