Узнайте, как проекты подсказок и программные подсказки используются для разработки и развертывания моделей SOTA.

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

В последнее время, в связи с успехом крупных моделей-трансформеров, таких как ГПТ-2 и ГПТ-3, большое внимание уделяется подсказкам. С помощью GPT-2 OpenAI показала, что масштабирование больших моделей может сравнительно повысить их производительность для конкретных задач без необходимости обновлять веса моделей для последующих задач. В то время как с GPT-3 они показали, что подсказки с описанием требуемой задачи, которую необходимо выполнить, а также от нуля до нескольких образцов результата было достаточно, чтобы эти большие модели успешно выполнили задачу. Это привело к созданию Prompt Engineering, целью которого является тщательная обработка этих входных запросов, позволяющая извлечь из модели наилучшие возможные результаты. Опираясь на это, исследователи Google недавно представили Настройку подсказок, суть которой заключается в изучении частых подсказок. которые могут направлять модели большого языка (LLM) для выполнения различных задач. Эти подсказки представляют собой обученные веса, которые после настройки могут быть переданы в замороженную языковую модель вместе с входными данными для получения требуемых результатов.

Фон

Наблюдается растущая тенденция к предварительному обучению языковых моделей для создания языковых представлений, не зависящих от задач, которые можно гибко адаптировать для выполнения конкретных задач с помощью наборов данных и архитектуры для конкретных задач. Соответствующим примером может служить BERT Google, который имеет многоуровневый двунаправленный кодировщик Transformer и предварительно обучен на немаркированном наборе данных с использованием Masked LM и Next Sentence Prediction (NSP). Затем модель необходимо настроить для последующих задач с использованием помеченных данных для обновления ее параметров. Отличительной чертой BERT является возможность обойти потребность в архитектуре для конкретных задач, используя унифицированную архитектуру как для предварительного обучения, так и для тонкой настройки:

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

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

1. Программирование с помощью простого текста — Prompt Design

Многозадачное обучение всегда было многообещающей основой для преодоления этих ограничений и повышения общей производительности модели. Одним из наиболее известных подходов к достижению этого является метаобучение, при котором модель обучают выполнять несколько задач во время обучения, так что она развивает широкий спектр навыков и способностей распознавания образов, которые можно использовать во время логического вывода для получения желаемого результата. . С введением преобразователей GPT2 показал, что этого можно достичь, изучив условную вероятность p(output | input, task), сделав их многозадачными обучающимися. Хотя было проведено несколько подобных исследований в этом направлении, таких как MAML (независимое от модели метаобучение) и MQAN (многозадачная сеть ответов на вопросы), способность преобразователей масштабироваться и доступность огромных объемов данных сделали Исследователи могут разрабатывать модели, не зависящие от задачи, которые могут работать наравне с существующими точно настроенными моделями. Кроме того, MQAN показал, что природа общих задач НЛП обеспечивает гибкость, позволяющую преобразовать их в задачу вопрос-ответ с инструкциями по выполнению каждой задачи. Это один из

В то время как GPT2 показал, что большие модели могут быть многозадачными обучающимися, GPT3, который отличается от первого в основном размером модели, объемом и разнообразием данных, а также временем обучения, показал, что можно улучшить большие модели LM на последующих задачах за несколько -настройка выстрела, указанная с помощью текстовых взаимодействий, без каких-либо обновлений градиента или тонкой настройки. Это избавляет от необходимости обучать, хранить и развертывать различные модели для конкретных задач. Few-shot(K) здесь подразумевает, что модели требуется только несколько демонстраций требуемой задачи с K в диапазоне от 0 до максимума, который может быть размещен токеном модели. предел. Чтобы сравнить разницу в производительности на основе K, на рисунке 1 показана точность модели на контрольном наборе данных LAMBADA (языковое моделирование, расширенное для учета аспектов дискурса). Цель этого теста — оценить способность модели понимать абзацы текста, попросив ее предсказать наиболее вероятное слово в конце абзаца. Это также можно использовать для косвенного измерения способности модели фиксировать долгосрочные зависимости. Чтобы узнать больше о производительности GPT-3 в различных тестах языкового моделирования, обратитесь к его оригинальной статье здесь.

К сожалению, оперативный дизайн также страдает некоторыми ключевыми недостатками. Качество работы модели часто зависит от описания задач и ограничено объемом условного текста, который может поместиться во входные данные модели. Создание высококачественной подсказки требует участия человека и запуска нескольких экспериментов с несколькими схемами подсказок для каждой задачи. Хотя были попытки (такие как AutoPrompt) автоматизировать создание подсказок и инструменты (например, promptsource), доступные для оптимизации процесса, производительность часто отставала. СОТА.

2. Обучаемые подсказки — настройка подсказок

Другой метод, представленный Google и построенный на основе их преобразования текста в текст T5 LM, заключается в обучении набора токенов для конкретных задач, которые можно прикрепить к токенам ввода модели замороженного LM. Быстрая настройка — это процесс изучения настраиваемых токенов размера k для каждой нисходящей задачи, которые можно добавлять перед входным текстом. Это эффективный метод кондиционирования замороженных моделей, поскольку он может обеспечить производительность, сравнимую с SOTA (по мере масштабирования модели), даже при меньших размерах модели, однако, в отличие от быстрого проектирования, для обучения этих запросов по-прежнему требуются наборы данных для конкретных задач.

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

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

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

Поскольку мягкие подсказки можно использовать для воздействия на пространство встраивания модели в соответствии с последующими задачами, они обеспечивают эффективный способ объединения огромных LM без связанных с этим накладных расходов. Метод повышения производительности задачи заключается в использовании ансамбля точно настроенных моделей с различными инициализациями, но обученных на одних и тех же данных. Этого можно добиться с помощью мягких подсказок, так как теперь можно создавать Nотдельных подсказок с разными инициализациями вместо N точно настроенных моделей. Здесь также можно использовать ранее обсуждавшуюся идею пакетной обработки и векторизации для получения результатов за один проход через замороженный LM.

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

Основные выводы:

  • Настройка модели включает в себя обновление весов предварительно обученного LM, не зависящего от задачи, для последующих задач с/без обновлений базовой архитектуры. Поэтому каждое приложение может обслуживаться только своими собственными моделями, и они довольно плохо работают на примерах вне дистрибутива.
  • Prompt Design работает с огромными LM, которые рассматривают каждую задачу NLP как форму проблемы контроля качества, а выходной ярлык часто представляет собой серию токенов. Замораживая веса модели, они могут быстро адаптировать задачу с помощью нескольких подсказок, однако, поскольку тексты подсказок в основном создаются вручную, качество вывода зависит от качества входных подсказок и описания задачи.
  • Вместо обновления весов модели Быстрая настройкавключает обучение вектора токенов отдельно от пространства встраивания модели, который может модулировать встраивания модели в зависимости от поставленной задачи. Подсказки могут быть объединены вместе с входными данными для конкретных задач и переданы в замороженную модель. Этот метод демонстрирует высокую устойчивость к сдвигу домена и может эффективно заменить ансамбль нейронных сетей.

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

  • GPT 2: Рэдфорд, Алек и др. «Языковые модели — это неконтролируемые многозадачные учащиеся». Блог OpenAI 1.8 (2019): 9.
  • GPT 3: Браун, Том и др. «Языковые модели — это малоэффективные ученики». Достижения в области нейронных систем обработки информации 33 (2020): 1877–1901.
  • MAML: Финн, Челси, Питер Аббил и Сергей Левин. «Независимое от модели метаобучение для быстрой адаптации глубоких сетей». Международная конференция по машинному обучению. ПМЛР, 2017.
  • MQAN: Макканн, Брайан и др. «Десятиборье на естественном языке: многозадачное обучение как ответ на вопрос». препринт arXiv arXiv:1806.08730 (2018 г.).
  • Быстрая настройка: Лестер, Брайан, Рами Аль-Рфу и Ной Констант. «Возможность масштабирования для оперативной настройки с эффективным использованием параметров». препринт arXiv arXiv:2104.08691 (2021 г.).