Это 23-й день моего участия в ноябрьском испытании обновлений. Узнайте подробности события:Вызов последнего обновления 2021 г.
Непрерывные подсказки
Первоначальная цель построения Prompt состоит в том, чтобы иметь возможность найти подходящий метод, чтобы предварительно обученная языковая модель (PLM) могла лучше выводить нужные нам результаты, но на самом деле нет необходимости проектировать форму Prompt в естественный язык, понятный людям, пока его понимает машина. Следовательно, есть несколько способов исследовать непрерывные подсказки, напрямую воздействующие на пространство встраивания модели. Непрерывные подсказки снимают два ограничения:
- Встраивание слов в шаблон может быть встраиванием всего естественного языка, а не только ограниченного количества вложений.
- Параметры шаблона больше не принимают напрямую параметры PLM, а имеют свои независимые параметры, которые можно настроить через обучающие данные нижестоящих задач.
Prefix TuningПервоначально предложенный Ли и др., это метод добавления набора непрерывных векторов перед входным предложением.Этот метод сохраняет параметры PLM неизменными и обучает только вектор префикса. Предложение Prefix Tuning в основном предназначено для создания задач, поэтому оно определяет различные методы объединения подсказок в соответствии с различными структурами модели.Модель авторегрессии (авторегрессии) класса GPT принимаетметод, модель Encoder-Decoder класса T5 принимаетПуть
раздел вводаИдентификатор позиции записывается как. Prefix Tuning инициализирует обучаемую матрицу, обозначаемую как,в
Смысл вышеприведенной формулы в том, что индексЕсли это часть префикса, отизвлечь вектор;Если не префиксная часть, то поПредварительно обученные модели с фиксированными параметрамиСгенерируйте соответствующий вектор. Целями обучения являются:
По сути, это матрица, и есть много способов создать матрицу, вы можете использовать
nn.Embedding()
,илиnn.Linear()
То же самое для поиска Prompt в непрерывном пространстве,OptiPromptПостроенный «шаблон» не ограничивается префиксами, но может находиться и в середине предложения.
Сначала определите шаблон подсказки в соответствии с AutoPrompt:
вявляется непрерывным вектором (согласуется с входной размерностью BERT). OptiPrompt также рассматривает искусственно созданную дискретную подсказку в качестве отправной точки для поиска в непрерывном пространстве для создания лучшей подсказки. Напримерможет быть преобразован в
будетis
иcitizen
Соответствующий вход Embedding используется какиинициализация
Можно сказать, что метод гибридной настройки Hard-Soft Prompt представляет собой комбинацию ручного проектирования и автоматического обучения.Обычно он не просто использует обучаемый шаблон Prompt, но вставляет некоторое обучаемое встраивание в созданный вручную шаблон. На самом деле, с учетом вышеизложенного мы все знаем, что непрерывная подсказка немного лучше, чем дискретная подсказка, но есть ли возможности для улучшения на этой основе? ** предложено Liu et al.P-Tuning**Решена проблема ассоциации между токенами Prompt.
Предыдущий метод непрерывной генерации подсказок представляет собой не что иное, как обучение матрицы, а затем объединение некоторых векторов-строк матрицы путем индексирования. Честно говоря, мы надеемся, что между этими вложениями токенов подсказок существует хорошая корреляция, а не независимое обучение.Чтобы решить эту проблему, P-Tuning вводит кодировщик подсказок (как показано на рисунке b ниже).
На рисунке а выше показана традиционная дискретная подсказка, мы называем то, что генерирует дискретный токен подсказки Генератор подсказок; рисунок б выше сначала передает некоторые виртуальные (псевдо) токены, такие как [неиспользуемый1], [неиспользуемый2]... Конечно , количество токенов здесь является гиперпараметром, и положение вставки также можно настроить. Передайте эти псевдотокены через кодировщик подсказок, чтобы получить непрерывный вектор.,в
То есть Prompt Encoder — это простая сеть, состоящая из BiLSTM+MLP. Автор также обнаружил, что добавление некоторых токенов привязки (токенов, связанных с доменом или задачей) может помочь оптимизировать шаблоны. Например, в задаче текстового следования исходными данными являются посылка и предположение, и судят, является ли оно следствием или нет. Непрерывный шаблон
Добавьте к нему токен привязки:[?]
Эффект будет лучше, в это время шаблон становится
Вы можете спросить, как оптимизировать P-настройку? На самом деле, в зависимости от количества размеченных данных, есть два случая для обсуждения.
- Менее размеченные данные. В этом случае мы фиксируем параметры PLM и оптимизируем толькоВстраивание этих токенов. Другими словами, мы просто хотим обновить параметры Prompt Encoder.
- Аннотированных данных много. В этом случае сразу отпустите всю тонкую настройку параметров.