Проектирование подсказок — это процесс структурирования инструкции, которая может быть интерпретирована и понята генеративной моделью искусственного интеллекта (ИИ). [1] [2] Подсказка — это текст на естественном языке, описывающий задачу, которую должен выполнить ИИ. [3] Подсказка для языковой модели «текст в текст» может быть запросом, например «что такое малая теорема Ферма ?», [4] командой, например «написать стихотворение в стиле Эдгара Аллана По о падающих листьях» [5] или более длинным утверждением, включающим контекст, инструкции [6] и историю разговора.
Инжиниринг подсказок может включать формулировку запроса, указание стиля [5], предоставление соответствующего контекста [7] или назначение роли ИИ, например, «действовать как носитель французского языка» [8] .
При общении с моделью «текст-изображение» или «текст-аудио» типичной подсказкой является описание желаемого результата, например, «высококачественное фото астронавта, едущего на лошади» [9] или «Lo-fi slow BPM electro chill с органическими образцами». [10] Подсказка для модели «текст-изображение» может включать добавление, удаление, подчеркивание и переупорядочивание слов для достижения желаемой темы, стиля, [1] макета, освещения [11] и эстетики.
В 2018 году исследователи впервые предложили, что все ранее отдельные задачи в НЛП могут быть представлены как проблема ответа на вопрос в контексте. Кроме того, они обучили первую единую, совместную, многозадачную модель, которая будет отвечать на любой вопрос, связанный с задачей, например «Каково настроение» или «Переведите это предложение на немецкий язык» или «Кто президент?» [12]
В 2021 году исследователи доработали одну генеративно предобученную модель (T0) для выполнения 12 задач NLP (используя 62 набора данных, поскольку каждая задача может иметь несколько наборов данных). Модель показала хорошую производительность на новых задачах, превзойдя модели, обученные напрямую на выполнении только одной задачи (без предобучения). Для решения задачи T0 дается задача в структурированной подсказке, например, If {{premise}} is true, is it also true that {{hypothesis}}? ||| {{entailed}}.
подсказка, используемая для того, чтобы заставить T0 решить вывод . [13]
Репозиторий подсказок сообщил, что в феврале 2022 года было доступно более 2000 публичных подсказок для примерно 170 наборов данных. [14]
В 2022 году исследователи Google предложили метод подсказки цепочки мыслей . [15] [16]
В 2023 году несколько баз данных подсказок для преобразования текста в текст и текста в изображение стали общедоступными. [17] [18]
По данным Google, подсказки цепочки мыслей (CoT) считаются методом, который позволяет большим языковым моделям (LLM) решать проблему в виде серии промежуточных шагов [19] перед тем, как дать окончательный ответ. В 2022 году Google также заявил, что подсказки цепочки мыслей улучшают способность к рассуждению, побуждая модель отвечать на многошаговую задачу с помощью шагов рассуждения, которые имитируют ход мыслей . [20] [15] [21] Согласно заявлениям Google и Amazon, методы цепочки мыслей гипотетически позволяют большим языковым моделям преодолевать трудности с некоторыми задачами рассуждения, требующими логического мышления и нескольких шагов для решения, такими как арифметические или здравые вопросы рассуждения . [22] [23] [24]
Например, если задать вопрос «В: В кафе было 23 яблока. Если они использовали 20 для приготовления обеда и купили еще 6, сколько яблок у них осталось?», Google утверждает, что подсказка CoT может побудить LLM ответить «A: Изначально в кафе было 23 яблока. Они использовали 20 для приготовления обеда. Таким образом, у них было 23 - 20 = 3. Они купили еще 6 яблок, поэтому у них есть 3 + 6 = 9. Ответ: 9». [15]
Как изначально предлагалось Google, [15] каждая подсказка CoT включала несколько примеров вопросов и ответов. Это сделало ее техникой подсказок с несколькими выстрелами . Однако, по словам исследователей из Google и Токийского университета, простое добавление слов «Давайте подумаем шаг за шагом», [25] также оказалось эффективным, что делает CoT техникой подсказок с нулевым выстрелом . OpenAI утверждает, что эта подсказка обеспечивает лучшее масштабирование, поскольку пользователю больше не нужно формулировать много конкретных примеров вопросов и ответов CoT. [26]
Google утверждает, что применительно к PaLM , языковой модели с параметрами 540B , подсказки CoT значительно помогли модели, позволив ей работать на уровне, сопоставимом с точно настроенными моделями для конкретных задач, и достичь самых современных результатов на тот момент на математическом бенчмарке GSM8K . [15] По данным Google, можно точно настроить модели на наборах данных CoT для дальнейшего улучшения этой возможности и стимулирования лучшей интерпретируемости . [27] [28]
Пример: [25]
В: {вопрос} A: Давайте подумаем шаг за шагом.
Подсказка цепочки мыслей — это всего лишь один из многих методов инженерии подсказок. Были предложены и другие методы. Было опубликовано не менее 29 различных методов. [29]
Подсказка цепочки символов (CoS)
Научное сотрудничество между Университетом Вестлейк, Китайским университетом Гонконга и Эдинбургским университетом заявило, что подсказки в виде цепочки символов в сочетании с подсказками CoT помогают LLM справляться с трудностями пространственного рассуждения в тексте. Другими словами, использование произвольных символов, таких как ' / ', помогает LLM интерпретировать пробелы в тексте. Это, как утверждается, помогает в рассуждениях и повышает производительность LLM. [30]
Пример: [30]
Вход: Есть набор кирпичей. Желтый кирпич C находится на кирпиче E. Желтый кирпич D находится на кирпиче A. Желтый кирпич E находится на кирпиче D. Белый кирпич A находится на кирпиче B. Для кирпича B цвет белый. Теперь нам нужно получить определенный кирпич. Теперь кирпичи должны быть захвачены сверху вниз, и если нужно захватить нижний кирпич, сначала нужно удалить верхний кирпич. Как получить кирпич D?Б/А/Д/Е/СС/ЭЭ/ДДВыход:Итак, мы получаем результат как C, E, D.
Обучение с небольшим количеством выстрелов
Подсказка может включать несколько примеров, на которых может учиться модель, например, попросить модель завершить « maison → house, chat → cat, chien →» (ожидаемый ответ — dog ), [31] подход, называемый обучением с несколькими попытками . [32]
Подсказка сгенерированных знаний [33] сначала побуждает модель генерировать соответствующие факты для завершения подсказки, а затем приступать к ее завершению. Качество завершения обычно выше [ необходима цитата ] , поскольку модель может быть обусловлена соответствующими фактами.
Пример: [33]
Сформируйте некоторые знания о концепциях, представленных во входных данных. Ввод: {вопрос} Знание:
Метод подсказок «от наименьшего к наибольшему» [34] побуждает модель сначала перечислить подзадачи проблемы, а затем решить их последовательно, так что последующие подзадачи могут быть решены с помощью ответов на предыдущие подзадачи.
Пример: [34]
Вход: В: {вопрос} A: Давайте разберем эту проблему: 1.
Самосогласованное декодирование [35] выполняет несколько цепочек мыслей, затем выбирает наиболее часто достигаемый вывод из всех цепочек. Если цепочка мыслей сильно расходится, можно запросить человека на правильную цепочку мыслей. [36]
Подсказки на основе сложности [37] выполняют несколько развертываний CoT, затем выбирают развертывания с самыми длинными цепочками мыслей, затем выбирают из них наиболее часто достигаемый вывод.
Self-refine [38] побуждает LLM решить проблему, затем побуждает LLM критиковать свое решение, затем побуждает LLM снова решить проблему с учетом проблемы, решения и критики. Этот процесс повторяется до тех пор, пока не будет остановлен, либо из-за того, что закончатся токены, время, либо LLM выведет токен «стоп».
Пример критики: [38]
У меня есть код. Дайте одно предложение по улучшению читаемости. Не исправляйте код, просто дайте предложение. Код: {код} Предположение:
Пример уточнения:
Код: {код} Давайте воспользуемся этим предложением для улучшения кода. Предложение: {предложение} Новый код:
Подсказка с использованием дерева мыслей [39] обобщает цепочку мыслей, побуждая модель генерировать один или несколько «возможных следующих шагов», а затем запуская модель на каждом из возможных следующих шагов с помощью поиска в ширину , луча или какого-либо другого метода поиска по дереву. [40]
Майевтическое подсказывание похоже на дерево мыслей. Модель побуждается ответить на вопрос с объяснением. Затем модель побуждается объяснить части объяснения и так далее. Непоследовательные деревья объяснений обрезаются или отбрасываются. Это улучшает производительность при сложных рассуждениях здравого смысла. [41]
Пример: [41]
В: {вопрос} A: Верно, потому что
В: {вопрос} A: Ложь, потому что
Подсказка направленного стимула [42] включает подсказку или сигнал, например, желаемые ключевые слова, чтобы направить языковую модель к желаемому результату.
Пример: [42]
Статья: {статья} Ключевые слова:
Статья: {статья} В: Напишите краткое изложение статьи в 2–4 предложениях, точно включающее указанные ключевые слова. Ключевые слова: {ключевые слова} А:
По умолчанию выходные данные языковых моделей могут не содержать оценок неопределенности. Модель может выводить текст, который кажется уверенным, хотя базовые предсказания токенов имеют низкие оценки правдоподобия . Большие языковые модели, такие как GPT-4, могут иметь точно откалиброванные оценки правдоподобия в своих предсказаниях токенов, [43] и поэтому неопределенность выходных данных модели может быть напрямую оценена путем считывания оценок правдоподобия предсказаний токенов.
Но если доступ к таким оценкам невозможен (например, когда доступ к модели осуществляется через ограниченный API), неопределенность все равно может быть оценена и включена в выходные данные модели. Один простой метод — побудить модель использовать слова для оценки неопределенности. [44] Другой метод — побудить модель отказаться отвечать стандартизированным образом, если входные данные не удовлетворяют условиям. [ необходима цитата ]
Генерация дополненного поиска (RAG) — это двухфазный процесс, включающий поиск документа и формулировку ответа с помощью Большой языковой модели (LLM). Начальная фаза использует плотные вложения для поиска документов. Этот поиск может быть основан на различных форматах баз данных в зависимости от варианта использования, таких как векторная база данных , сводный индекс, древовидный индекс или индекс таблицы ключевых слов. [45]
В ответ на запрос извлекатель документов выбирает наиболее релевантные документы. Эта релевантность обычно определяется путем первого кодирования как запроса, так и документов в векторы, а затем идентификации документов, векторы которых наиболее близки по евклидову расстоянию к вектору запроса. После извлечения документов LLM генерирует вывод, который включает информацию как из запроса, так и из извлеченных документов. [46] Этот метод особенно полезен для обработки частной или динамической информации, которая не была включена в начальные фазы обучения или тонкой настройки модели. RAG также примечателен своим использованием обучения «несколькими выстрелами», когда модель использует небольшое количество примеров, часто автоматически извлеченных из базы данных, для информирования своих выводов.
GraphRAG [47] (разработанный Microsoft Research) — это метод, который расширяет RAG с помощью графа знаний (обычно созданного LLM), чтобы позволить модели связывать разрозненные фрагменты информации, синтезировать идеи и целостно понимать обобщенные семантические концепции в больших наборах данных.
Было показано, что он эффективен на таких наборах данных, как Violent Incident Information from News Articles (VIINA). [48] Объединяя графы знаний, созданные LLM, с графическим машинным обучением, GraphRAG существенно улучшает полноту и разнообразие генерируемых ответов на глобальные вопросы осмысления.
Более ранние работы показали эффективность использования графа знаний для ответов на вопросы с использованием генерации текста в запрос. [49] Эти методы можно комбинировать для поиска как по неструктурированным, так и по структурированным данным, обеспечивая расширенный контекст и улучшенный рейтинг.
Большие языковые модели (LLM) сами по себе могут использоваться для составления подсказок для больших языковых моделей. [50] [51] [52] [53]
Алгоритм автоматического инженера подсказок использует один LLM для передачи поиска по подсказкам для другого LLM: [54]
Примеры CoT могут быть сгенерированы самим LLM. В «auto-CoT» [55] библиотека вопросов преобразуется в векторы с помощью такой модели, как BERT . Векторы вопросов кластеризуются . Выбираются вопросы, ближайшие к центроидам каждого кластера. LLM выполняет CoT с нулевым выстрелом по каждому вопросу. Полученные примеры CoT добавляются в набор данных. При запросе нового вопроса примеры CoT к ближайшим вопросам могут быть извлечены и добавлены в запрос.
Инженерия подсказок, возможно, может быть дополнительно обеспечена контекстным обучением , определяемым как способность модели временно обучаться на основе подсказок. Способность к контекстному обучению является эмерджентной способностью [56] больших языковых моделей . Само по себе контекстное обучение является эмерджентным свойством масштаба модели , то есть разрывы [57] в законах масштабирования ниже по потоку происходят таким образом, что его эффективность увеличивается с разной скоростью в больших моделях, чем в меньших. [58] [15]
В отличие от обучения и тонкой настройки для каждой конкретной задачи, которые не являются временными, то, что было изучено во время контекстного обучения, имеет временную природу. Оно не переносит временные контексты или предубеждения, за исключением тех, которые уже присутствуют в (пред)тренировочном наборе данных , из одного разговора в другой. [59] Этот результат «меза-оптимизации» [60] [61] в слоях трансформатора является формой мета-обучения или «обучения обучению». [62]
В 2022 году модели преобразования текста в изображение, такие как DALL-E 2 , Stable Diffusion и Midjourney , были выпущены для публики. [63] Эти модели принимают текстовые подсказки в качестве входных данных и используют их для генерации изображений искусства ИИ . Модели преобразования текста в изображение, как правило, не понимают грамматику и структуру предложений так же, как большие языковые модели , [64] и требуют другого набора методов подсказок.
Подсказка «текст-изображение» обычно включает описание предмета искусства (например, ярко-оранжевые маки ), желаемую среду (например, цифровая живопись или фотография ), стиль (например, гиперреалистичный или поп-арт ), освещение (например, ореол освещения или сумеречные лучи ), цвет и текстуру. [65]
Документация Midjourney поощряет короткие, описательные подсказки: вместо «Покажите мне картинку с множеством цветущих калифорнийских маков, сделайте их яркими, сочно-оранжевыми и нарисуйте их в иллюстрированном стиле цветными карандашами» эффективной подсказкой может быть «Ярко-оранжевые калифорнийские маки, нарисованные цветными карандашами» [64] .
Порядок слов влияет на вывод подсказки «текст-изображение». Слова, расположенные ближе к началу подсказки, могут быть выделены сильнее. [1]
Некоторые модели преобразования текста в изображение способны имитировать стиль конкретных художников по имени. Например, фраза в стиле Грега Рутковски использовалась в подсказках Stable Diffusion и Midjourney для генерации изображений в отличительном стиле польского цифрового художника Грега Рутковски. [66]
Модели «текст-изображение» изначально не понимают отрицание. Подсказка «вечеринка без торта» скорее всего создаст изображение, включающее торт. [64] В качестве альтернативы, отрицательные подсказки позволяют пользователю указать в отдельной подсказке, какие термины не должны появляться в результирующем изображении. [67]
Некоторые подходы дополняют или заменяют текстовые подсказки на естественном языке нетекстовым вводом.
Для моделей «текст-изображение» «Текстовая инверсия» [68] выполняет процесс оптимизации для создания нового встраивания слова на основе набора примеров изображений. Этот вектор встраивания действует как «псевдослово», которое может быть включено в подсказку для выражения содержания или стиля примеров.
В 2023 году исследование Meta AI выпустило Segment Anything, модель компьютерного зрения , которая может выполнять сегментацию изображений с помощью подсказок. В качестве альтернативы текстовым подсказкам Segment Anything может принимать ограничивающие рамки, маски сегментации и точки переднего плана/фона. [69]
При «настройке префикса», [70] «настройке подсказки» или «мягкой подсказке» [71] векторы с плавающей точкой ищутся напрямую с помощью градиентного спуска , чтобы максимизировать логарифмическое правдоподобие выходных данных.
Формально, пусть будет набором мягких токенов подсказок (настраиваемых вложений), тогда как и будут вложениями токенов входа и выхода соответственно. Во время обучения настраиваемые вложения, входные и выходные токены объединяются в одну последовательность и подаются в большие языковые модели (LLM). Потери вычисляются по токенам; градиенты распространяются обратно к параметрам, специфичным для подсказок: в настройке префиксов это параметры, связанные с токенами подсказок на каждом уровне; в настройке подсказок это просто мягкие токены, добавленные в словарь. [72]
Более формально, это быстрая настройка. Пусть LLM записывается как , где — последовательность лингвистических токенов, — функция преобразования токена в вектор, а — остальная часть модели. При настройке префикса задается набор пар вход-выход , а затем используется градиентный спуск для поиска . Другими словами, — это логарифмическое правдоподобие вывода , если модель сначала кодирует вход в вектор , затем добавляет к вектору «вектор префикса» , а затем применяет .
Для настройки префикса все аналогично, но «вектор префикса» предварительно добавляется к скрытым состояниям в каждом слое модели.
Более ранний результат [73] использует ту же идею поиска градиентного спуска, но разработан для маскированных языковых моделей, таких как BERT, и ищет только по последовательностям токенов, а не по числовым векторам. Формально, он ищет, где is ранжируется по последовательностям токенов указанной длины.
Prompt injection — это семейство связанных компьютерных эксплойтов безопасности, реализуемых путем получения модели машинного обучения (например, LLM), обученной следовать инструкциям, данным человеком, для выполнения инструкций, предоставленных злонамеренным пользователем. Это контрастирует с предполагаемой работой систем, следующих инструкциям, в которых модель ML предназначена только для выполнения доверенных инструкций (подсказок), предоставленных оператором модели ML. [74] [75] [76]
Инженерия подсказок — это процесс структурирования слов, которые могут быть интерпретированы и поняты моделью преобразования текста в изображение . Думайте об этом как о языке, на котором вам нужно говорить, чтобы сообщить модели ИИ, что рисовать.
Оперативное проектирование — это искусство общения с генеративной моделью ИИ.
Мы демонстрируем, что языковые модели могут выполнять нисходящие задачи в нулевой настройке — без каких-либо изменений параметров или архитектуры.
Что такое малая теорема Ферма
«Базовая подсказка: «Напишите стихотворение о листопаде». Лучшая подсказка: «Напишите стихотворение в стиле Эдгара Аллана По о листопаде».
Затем я дал более сложную подсказку, чтобы попытаться сбить MusicGen с толку: "Lo-fi slow BPM electro chill with organic samples."
«Цепочка мыслей позволяет нам описывать многошаговые задачи как ряд промежуточных шагов», — генеральный директор Google Сундар Пичаи
...подсказки от наименьшего к наибольшему. Основная идея этой стратегии — разбить сложную задачу на ряд более простых подзадач, а затем последовательно их решить.
Направленный стимул служит подсказками или сигналами для каждого входного запроса, чтобы направлять LLM к желаемому результату, например, к ключевым словам, которые желаемое резюме должно включать для реферирования.
Если вы явно указываете в своей подсказке, что хотите, чтобы генеративный ИИ выдал квалификацию определенности или неопределенности, то вы почти наверняка получите такое указание.
{{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь )При подсказке предварительно обученная языковая модель получает подсказку (например, инструкцию на естественном языке) задачи и завершает ответ без дальнейшего обучения или градиентных обновлений ее параметров... Способность выполнять задачу с помощью подсказки с несколькими попытками является возникающей, когда модель имеет случайную производительность до определенного масштаба, после чего производительность увеличивается до уровня, значительно превышающего случайную
К тому времени, как вы вводите запрос в ChatGPT, сеть должна быть исправлена; в отличие от людей, она не должна продолжать учиться. Поэтому стало неожиданностью, что LLM на самом деле обучаются на подсказках своих пользователей — эта способность известна как контекстное обучение.
Таким образом, мы показываем, как обученные трансформеры становятся меза-оптимизаторами, т.е. обучают модели градиентным спуском в своем прямом проходе.
-Optimization — это ситуация, которая возникает, когда обученная модель (например, нейронная сеть) сама является оптимизатором.
Обучение модели выполнению контекстного обучения можно рассматривать как пример более общей парадигмы обучения обучению или метаобучения
Используя всего 3-5 изображений предоставленной пользователем концепции, такой как объект или стиль, мы учимся представлять ее с помощью новых «слов» в пространстве встраивания замороженной модели преобразования текста в изображение.
В этой статье мы предлагаем настройку префиксов, легкую альтернативу тонкой настройке... Настройка префиксов черпает вдохновение из подсказок
В этой работе мы исследуем «настройку подсказок», простой, но эффективный механизм обучения «мягким подсказкам»... В отличие от дискретных текстовых подсказок, используемых GPT-3, мягкие подсказки обучаются с помощью обратного распространения