Промпт-инжиниринг
ChatGPT и продвинутая инженерия запросов: стимулирование эволюции ИИ

OpenAI сыграла решающую роль в разработке революционных инструментов, таких как OpenAI Gym, предназначенный для обучения алгоритмов усиления, и моделей GPT-n. Также стоит отметить DALL-E, модель ИИ, которая создает изображения из текстовых входных данных. Одна из таких моделей, которая привлекла значительное внимание, – это ChatGPT от OpenAI, блестящий пример в области больших языковых моделей.
GPT-4: инженерия запросов
ChatGPT изменил ландшафт чат-ботов, предлагая человеческие ответы на входные данные пользователей и расширяя свои применения в различных областях – от разработки и тестирования программного обеспечения до деловой коммуникации и даже создания поэзии.
В руках бизнеса и отдельных лиц GPT-4, например, может служить неисчерпаемым резервуаром знаний, профессионально разбирающимся в предметах, начиная от математики и биологии и заканчивая юридическими исследованиями. Такие сложные и доступные модели ИИ готовы переопределить будущее работы, обучения и творчества.
Генеративные модели, такие как GPT-4, могут производить новые данные на основе существующих входных данных. Это отличительная особенность позволяет им выполнять различные задачи, включая генерацию текста, изображений, музыки и видео.
В контексте ChatGPT и моделей OpenAI запрос – это входные данные, которые пользователи предоставляют моделям, обычно в виде текста. Запросы служат основным средством контроля выходных данных, генерируемых этими моделями, что делает их важными для успешных и осмысленных разговоров.
Влияние качества запроса
Использование хорошо определенных запросов является ключом к ведению полезных и осмысленных разговоров с системами ИИ. Плохо определенные запросы могут привести к выходным данным, которые не полезны для пользователя и могут даже привести к вводящей в заблуждение информации.
Чтобы продемонстрировать влияние качества запроса, давайте сравним два разных запроса, заданных ChatGPT. Первый запрос, плохо определенный и предполагающий предварительные знания, генерирует потенциально бесполезный ответ для пользователя. С другой стороны, второй запрос предоставляет больше контекста и примеров, гарантируя более релевантный и понятный ответ.
Запрос 1: “Расскажите мне о свёрточных нейронных сетях.”
Ответ 1: “Свёрточные нейронные сети (CNN) – это многослойные перцептроны, которые состоят из полностью связанных слоев и пулинговых слоев. Они обычно используются в задачах распознавания изображений. Процесс включает применение фильтров к входным изображениям и уменьшение их размера с помощью пулинговых слоев.”
Запрос 2: “Я хочу узнать о свёрточных нейронных сетях, но у меня нет предварительных знаний об искусственных нейронных сетях. Можете ли вы, пожалуйста, предоставить начинающим объяснение и пример того, как CNN используются в распознавании изображений?”
Ответ 2: “Свёрточные нейронные сети (CNN) – это тип нейронной сети, в основном используемой для задач распознавания изображений. В отличие от других нейронных сетей, они используют свёрточные слои и пулинговые слои для обработки изображений. Представьте, что у вас есть изображение кошки. CNN могут определить различные особенности на изображении, такие как усы, уши и хвост, применяя фильтры и уменьшая изображение с помощью пулинговых слоев. Этот процесс делает CNN высокоэффективными для распознавания объектов на изображениях.”
Сравнивая два ответа, становится очевидным, что хорошо определенный запрос приводит к более релевантному и пользовательскому ответу. Проектирование и инженерия запросов – это развивающиеся дисциплины, целью которых является оптимизация качества выходных данных моделей ИИ, таких как ChatGPT.
В следующих разделах этой статьи мы углубимся в область продвинутых методологий, направленных на совершенствование больших языковых моделей (LLM), таких как техники инженерии запросов и тактики. Это включает в себя обучение с несколькими примерами, ReAct, цепочку мыслей, RAG и многое другое.
Продвинутые инженерные техники
Прежде чем мы продолжим, важно понять одну из ключевых проблем с LLM – “галлюцинацию”. В контексте LLM “галлюцинация” означает тенденцию этих моделей генерировать выходные данные, которые могут показаться разумными, но не основаны на фактической реальности или заданном контексте входных данных.
Эта проблема была ярко продемонстрирована в недавнем судебном деле, где защитник использовал ChatGPT для юридических исследований. Инструмент ИИ, испытывающий неудачу из-за своей проблемы с галлюцинацией, цитировал несуществующие юридические дела. Этот промах имел значительные последствия, вызывая путаницу и подрывая достоверность во время судебного процесса. Этот инцидент служит ярким напоминанием о срочной необходимости решить проблему “галлюцинации” в системах ИИ.
Наше исследование техник инженерии запросов направлено на улучшение этих аспектов LLM. Улучшая их эффективность и безопасность, мы открываем путь для инновационных применений, таких как извлечение информации. Кроме того, это открывает двери для бесшовной интеграции LLM с внешними инструментами и источниками данных, расширяя диапазон их потенциальных применений.
Обучение с нулевым и несколькими примерами: оптимизация с помощью примеров
Генеративные предварительно обученные трансформеры (GPT-3) ознаменовали важный поворотный момент в разработке генеративных моделей ИИ, поскольку они ввели концепцию “обучения с несколькими примерами“. Этот метод был прорывом благодаря своей способности работать эффективно без необходимости полного дообучения. Фреймворк GPT-3 обсуждается в статье “Языковые модели – это обучение с несколькими примерами“, где авторы демонстрируют, как модель отлично работает в различных применениях без необходимости настраиваемых наборов данных или кода.
В отличие от дообучения, которое требует постоянных усилий для решения различных задач, модели с обучением с несколькими примерами демонстрируют более легкую адаптивность к более широкому спектру применений. Хотя дообучение может обеспечить прочные решения в некоторых случаях, оно может быть дорогим в масштабе, что делает использование моделей с обучением с несколькими примерами более практичным подходом, особенно при интеграции с инженерией запросов.
Представьте, что вы пытаетесь перевести английский язык на французский. В обучении с несколькими примерами вы бы предоставили GPT-3 несколько примеров перевода, таких как “морская выдра -> лутра де мер”. GPT-3, будучи продвинутой моделью, затем способна продолжать предоставлять точные переводы. В обучении с нулевым примером вы не предоставили бы никаких примеров, и GPT-3 все равно смогла бы переводить английский язык на французский эффективно.
Термин “обучение с несколькими примерами” возникает из идеи, что модель дана ограниченное количество примеров для “обучения”. В этом контексте “обучение” не означает обновление параметров или весов модели, а скорее влияет на ее производительность.
Обучение с нулевым примером доводит эту концепцию до следующего уровня. В обучении с нулевым примером в модели не предоставляются примеры выполнения задачи. Модель ожидается, что она будет работать хорошо на основе своего первоначального обучения, что делает этот метод идеальным для сценариев ответа на вопросы в открытом домене, таких как ChatGPT.
Во многих случаях модель, профессионально освоившая обучение с нулевым примером, может работать хорошо, когда предоставляются несколько примеров или даже один пример. Эта способность переключаться между нулевым, одиночным и несколькими примерами подчеркивает адаптивность крупных моделей, повышая их потенциальные применения в различных областях.
Методы обучения с нулевым примером становятся все более распространенными. Эти методы характеризуются своей способностью распознавать объекты, не виденные во время обучения. Вот практический пример запроса с несколькими примерами:
Переведите следующие английские фразы на французский:
'морская выдра' переводится как 'лутра де мер'
'небо' переводится как 'ciel'
Как переводится 'облако' на французском языке?"
Предоставляя модели несколько примеров и затем задавая вопрос, мы можем эффективно направить модель на генерацию желаемого выходного сигнала. В этом случае GPT-3, скорее всего, правильно переведет “облако” на французский язык как “nuage”.
Мы углубимся в различные нюансы техник инженерии запросов и их важную роль в оптимизации производительности модели во время вывода. Мы также рассмотрим, как их можно эффективно использовать для создания экономически эффективных и масштабируемых решений в широком спектре применений.
Когда мы进一步 исследуем сложность техник инженерии запросов в моделях GPT, важно подчеркнуть нашу предыдущую статью ‘Основное руководство по инженерии запросов в ChatGPT‘. Это руководство предоставляет информацию о стратегиях для эффективного инструктирования моделей ИИ в различных применениях.
В наших предыдущих обсуждениях мы углубились в фундаментальные методы запросов для крупных языковых моделей (LLM), таких как обучение с нулевым и несколькими примерами, а также инструктирование запросов. Освоение этих техник имеет решающее значение для навигации по более сложным задачам инженерии запросов, которые мы будем исследовать здесь.
Обучение с несколькими примерами может быть ограничено из-за ограниченного контекстного окна большинства LLM. Кроме того, без надлежащих мер предосторожности LLM могут быть введены в заблуждение и могут предоставлять потенциально вредоносный выходной сигнал. Кроме того, многие модели испытывают трудности с задачами рассуждения или выполнением многоступенчатых инструкций.
Учитывая эти ограничения, задача заключается в том, чтобы использовать LLM для решения сложных задач. Очевидным решением может быть разработка более продвинутых LLM или усовершенствование существующих, но это может потребовать значительных усилий. Итак, вопрос возникает: как мы можем оптимизировать текущие модели для улучшения решения проблем?
Не менее интересно исследование того, как эта техника взаимодействует с творческими применениями в статье Unite AI ‘Освоение искусства ИИ: краткое руководство по Midjourney и инженерии запросов‘, которая описывает, как слияние искусства и ИИ может привести к удивительному искусству.
Цепочка мыслей
Цепочка мыслей использует внутренние авто-регрессивные свойства крупных языковых моделей (LLM), которые отлично справляются с предсказанием следующего слова в данной последовательности. Запрашивая модель, чтобы она объяснила свой мыслительный процесс, она побуждает более тщательное и методическое генерирование идей, которое, как правило, соответствует точной информации. Это соответствие возникает из-за склонности модели обрабатывать и предоставлять информацию вдумчивым и упорядоченным образом, подобно тому, как человеческий эксперт ведет слушателя через сложную концепцию. Простое заявление, такое как “пройдите со мной шаг за шагом, как…”, часто достаточно, чтобы вызвать этот более подробный и подробный выходной сигнал.
Цепочка мыслей с нулевым примером
Хотя традиционная цепочка мыслей требует предварительного обучения с демонстрациями, появляется новая область – цепочка мыслей с нулевым примером. Этот подход, представленный Kojima et al. (2022), инновационно добавляет фразу “Давайте подумаем шаг за шагом” к исходному запросу.
Давайте создадим продвинутый запрос, в котором ChatGPT задача состоит в том, чтобы суммировать ключевые выводы из исследований ИИ и НЛП.
В этом демонстрации мы будем использовать способность модели понимать и суммировать сложную информацию из академических текстов. Используя подход обучения с несколькими примерами, давайте научим ChatGPT суммировать ключевые выводы из исследований ИИ и НЛП:
1. Название статьи: "Внимание - это все, что вам нужно"
Ключевой вывод: Введена модель трансформера, подчеркивающая важность механизмов внимания над рекуррентными слоями для задач трансдукции последовательностей.
2. Название статьи: "BERT: предварительное обучение глубоких двунаправленных трансформеров для понимания языка"
Ключевой вывод: Введен BERT, демонстрирующий эффективность предварительного обучения глубоких двунаправленных моделей, что привело к достижению лучших результатов в различных задачах НЛП.
Теперь, с учетом этих примеров, суммируйте ключевые выводы из следующей статьи:
Название статьи: "Инженерия запросов в крупных языковых моделях: исследование"
Этот запрос не только сохраняет четкую цепочку мыслей, но также использует подход обучения с несколькими примерами для направления модели. Он связан с нашими ключевыми словами, сосредотачиваясь на областях ИИ и НЛП, в частности, задача состоит в том, чтобы заставить ChatGPT выполнить сложную операцию, связанную с инженерией запросов: суммирование исследовательских статей.
ReAct Prompt
ReAct, или “Рассуждение и действие”, был представлен Google (GOOGL ) в статье “ReAct: синергия рассуждения и действия в языковых моделях“, и революционизировал то, как языковые модели взаимодействуют с задачами, побуждая модель динамически генерировать как вербальные следы рассуждения, так и задачи-специфические действия.
Представьте, что вы находитесь на кухне: вы не только выполняете ряд действий (режете овощи, кипятите воду, перемешиваете ингредиенты), но также занимаетесь вербальным рассуждением или внутренней речью (“теперь, когда овощи нарезаны, я должен поставить кастрюлю на плиту”). Этот постоянный мыслительный диалог помогает в стратегировании процесса, адаптации к внезапным изменениям (“у меня нет оливкового масла, я буду использовать масло вместо него”) и запоминании последовательности задач. ReAct имитирует эту человеческую способность, позволяя модели быстро учиться новым задачам и принимать прочные решения, как и человек в новых или неопределенных обстоятельствах.
ReAct может решить проблему галлюцинации, распространенную проблему в системах цепочки мыслей (CoT). CoT, хотя и эффективная техника, лишена способности взаимодействовать с внешним миром, что потенциально может привести к галлюцинации фактов и распространению ошибок. ReAct, однако, компенсирует это, взаимодействуя с внешними источниками информации. Это взаимодействие позволяет системе не только проверить свое рассуждение, но и обновить свои знания на основе последней информации из внешнего мира.
Фундаментальная работа ReAct можно объяснить примером из HotpotQA, задачи, требующей высокого порядка рассуждения. Получив вопрос, модель ReAct разбивает вопрос на управляемые части и создает план действий. Модель генерирует след рассуждения (мысль) и определяет соответствующее действие. Она может решить поиск информации об Apple (AAPL ) Remote на внешнем источнике, таком как Wikipedia (действие), и обновляет свое понимание на основе полученной информации (наблюдение). Через несколько шагов мысли-действия-наблюдения ReAct может получить информацию для поддержки своего рассуждения, уточняя, что ей нужно получить дальше.
Примечание:
HotpotQA – это набор данных, полученный из Wikipedia, состоящий из 113 000 пар вопросов и ответов, предназначенный для обучения систем ИИ сложному рассуждению, поскольку вопросы требуют рассуждения над несколькими документами для ответа. С другой стороны, CommonsenseQA 2.0, построенный с помощью геймификации, включает 14 343 вопроса “да/нет” и предназначен для проверки понимания ИИ общих знаний, поскольку вопросы намеренно созданы для введения ИИ в заблуждение.
Процесс может выглядеть следующим образом:
- Мысли: “Мне нужно поискать информацию об Apple Remote и совместимых устройствах.”
- Действие: Поиск “совместимые устройства Apple Remote” на внешнем источнике.
- Наблюдение: Получение списка устройств, совместимых с Apple Remote, из результатов поиска.
- Мысли: “На основе результатов поиска несколько устройств, помимо Apple Remote, могут управлять программой, с которой она была первоначально разработана для взаимодействия.”
Результатом является динамический, основанный на рассуждениях процесс, который может эволюционировать на основе взаимодействия с информацией, что приводит к более точным и надежным ответам.

Сравнительная визуализация четырех методов запросов – Стандартный, Цепочка мыслей, Только действие и ReAct, для решения HotpotQA и AlfWorld (https://arxiv.org/pdf/2210.03629.pdf)
Проектирование агентов ReAct – это специализированная задача, учитывая его способность достигать сложных целей. Например, разговорный агент, построенный на базовой модели ReAct, включает в себя разговорную память для обеспечения более богатых взаимодействий. Однако сложность этой задачи упрощается инструментами, такими как Langchain, которые стали стандартом для проектирования этих агентов.
Контекстно-верная подача
Статья ‘Контекстно-верная подача для крупных языковых моделей‘ подчеркивает, что хотя LLM показали значительный успех в задачах НЛП, основанных на знаниях, их чрезмерная зависимость от параметрических знаний может привести их astray в контекстно-чувствительных задачах. Например, когда языковая модель обучена на устаревших фактах, она может производить неверные ответы, если она игнорирует контекстные подсказки.
Эта проблема очевидна в случаях конфликта знаний, когда контекст содержит факты, отличающиеся от предварительных знаний LLM. Рассмотрим случай, когда крупная языковая модель (LLM), обученная на данных до чемпионата мира 2022 года, получает контекст, указывающий на то, что Франция выиграла турнир. Однако LLM, полагаясь на свои предварительно обученные знания, продолжает утверждать, что предыдущий победитель, то есть команда, выигравшая в 2018 году, является действующим чемпионом. Это демонстрирует классический случай “конфликта знаний”.
По сути, конфликт знаний в LLM возникает, когда новая информация, предоставленная в контексте, противоречит предварительным знаниям, на которых была обучена модель. Склонность модели полагаться на свои предварительные знания, а не на новый контекст, может привести к неверным выходным данным. С другой стороны, галлюцинация в LLM – это генерация ответов, которые могут показаться правдоподобными, но не основаны на обучающих данных модели или предоставленном контексте.
Другая проблема возникает, когда предоставленный контекст не содержит достаточно информации для точного ответа, ситуация, известная как предсказание с воздержанием. Например, если LLM спрашивают о основателе Microsoft (MSFT ) на основе контекста, который не предоставляет эту информацию, она должна идеально воздержаться от догадок.
Чтобы улучшить контекстную верность LLM в этих сценариях, исследователи предложили ряд стратегий запросов. Эти стратегии направлены на то, чтобы сделать ответы LLM более соответствующими контексту, а не полагаться на их закодированные знания.
Одной из таких стратегий является формулирование запросов как вопросов мнения, где контекст интерпретируется как заявление рассказчика, а вопрос относится к этому заявлению. Этот подход перенаправляет внимание LLM на представленный контекст, а не на ее предварительные знания.
Добавление контрфактических демонстраций к запросам также было определено как эффективный способ увеличить верность в случаях конфликта знаний. Эти демонстрации представляют сценарии с ложными фактами, которые направляют модель на то, чтобы обратить пристальное внимание на контекст для предоставления точных ответов.
Дообучение инструкций
Дообучение инструкций – это фаза обучения с учителем, которая использует предоставление модели конкретных инструкций, например, “Объясните различие между восходом и закатом солнца”. Инструкция сопоставляется с подходящим ответом, например, “Восход солнца относится к моменту, когда солнце появляется над горизонтом утром, в то время как закат солнца отмечает точку, когда солнце исчезает ниже горизонта вечером”. Через этот метод модель фактически учится следовать и выполнять инструкции.
Этот подход существенно влияет на процесс запросов LLM, что приводит к радикальному сдвигу в стиле запросов. LLM, дообученная инструкциям, позволяет немедленно выполнять задачи с нулевым примером, обеспечивая бесшовное выполнение задач. Если LLM еще не дообучена, может потребоваться подход обучения с несколькими примерами, включающий несколько примеров в запрос, чтобы направить модель на желаемый ответ.
“Дообучение инструкций с GPT-4′ обсуждает попытку использовать GPT-4 для генерации данных для дообучения инструкций LLM. Они использовали богатый набор данных, состоящий из 52 000 уникальных записей для дообучения инструкций в английском и китайском языках.
Набор данных играет решающую роль в дообучении инструкций моделей LLaMA, открытой серии LLM, что приводит к улучшению нулевого выходного сигнала на новых задачах. Заметные проекты, такие как Stanford Alpaca, эффективно использовали само-инструктивное дообучение, эффективный метод выравнивания LLM с человеческими намерениями, используя данные, сгенерированные продвинутыми дообученными инструкциями моделей.
Основной целью исследования дообучения инструкций является повышение способностей нулевого и нескольких примеров LLM. Дальнейшее масштабирование данных и моделей может предоставить ценные идеи. С текущим размером данных GPT-4 в 52 000 и базовой моделью LLaMA в 7 миллиардов параметров, есть огромный потенциал для сбора большего количества данных GPT-4 и объединения их с другими источниками данных для обучения более крупных моделей LLaMA для лучшей производительности.
STaR: самобутстреп рассуждений с помощью рассуждений
Потенциал LLM особенно заметен в сложных задачах рассуждения, таких как математика или вопросы-ответы на общие знания. Однако процесс побуждения языковой модели к генерации обоснований – это серия пошаговых оправданий или “цепочки мыслей” – имеет свои собственные проблемы. Это часто требует создания крупных наборов данных обоснований или жертвования точностью из-за зависимости только от вывода с несколькими примерами.
“Самообучаемый рассуждатель” (STaR) предлагает инновационное решение этим проблемам. Он использует простой цикл для непрерывного улучшения способности модели рассуждать. Этот итеративный процесс начинается с генерации обоснований для ответов на несколько вопросов, используя несколько рациональных примеров. Если сгенерированные ответы неверны, модель пытается сгенерировать обоснование еще раз, на этот раз предоставляя правильный ответ. Модель затем дообучается на всех обоснованиях, которые привели к правильным ответам, и процесс повторяется.

STaR методология, демонстрирующая ее цикл дообучения и образец генерации обоснования на наборе данных CommonsenseQA (https://arxiv.org/pdf/2203.14465.pdf)
Чтобы проиллюстрировать это практическим примером, рассмотрим вопрос “Что можно использовать для переноски небольшой собаки?” с вариантами ответов, варьирующимися от бассейна до корзины. Модель STaR генерирует обоснование, определяя, что ответ должен быть чем-то, способным переносить небольшую собаку, и приходит к выводу, что корзина, предназначенная для переноски предметов, является правильным ответом.
Подход STaR уникален, поскольку он использует предварительно существующую способность модели рассуждать. Он использует процесс самообучения и уточнения обоснований, итеративно бутстрепируя способность модели рассуждать. Однако цикл STaR имеет свои ограничения. Модель может не решить новые проблемы в наборе данных, поскольку она не получает прямого сигнала для проблем, которые она не может решить. Чтобы решить эту проблему, STaR вводит рационализацию. Для каждой проблемы, которую модель не может ответить правильно, она генерирует новое обоснование, предоставляя модели правильный ответ, что позволяет ей рассуждать в обратном направлении.
STaR, таким образом, представляет собой масштабируемый метод бутстрепинга, который позволяет моделям учиться генерировать свои собственные обоснования, а также учиться решать все более сложные проблемы. Применение STaR показало перспективные результаты в задачах, связанных с арифметикой, математическими задачами и рассуждениями на основе общих знаний. На CommonsenseQA STaR улучшил результаты как базовой модели с несколькими примерами, так и модели, дообученной для прямого предсказания ответов, и показал результаты, сравнимые с моделью, которая в 30 раз больше.
Метки контекста
Концепция ‘Метки контекста‘ вращается вокруг предоставления модели ИИ дополнительного слоя контекста путем меток определенной информации в входных данных. Эти метки по сути служат ориентирами для ИИ, направляя его на то, как точно интерпретировать контекст и генерировать ответ, который является как релевантным, так и фактическим.
Представьте, что вы ведете разговор с другом о конкретной теме, скажем, “шахматы”. Вы делаете заявление, а затем метите его ссылкой, такой как “(источник: Википедия)”. Теперь ваш друг, который в данном случае является моделью ИИ, точно знает, откуда берется ваша информация. Этот подход направлен на то, чтобы сделать ответы ИИ более надежными, снижая риск галлюцинаций или генерации ложных фактов.
Уникальным аспектом меток контекста является их потенциал для улучшения “контекстного интеллекта” моделей ИИ. Например, статья демонстрирует это, используя разнообразный набор вопросов, извлеченных из нескольких источников, таких как резюме статей Википедии на различных предметах и разделы недавно опубликованной книги. Вопросы помечены, предоставляя модели ИИ дополнительный контекст об источнике информации.
Этот дополнительный слой контекста может оказаться чрезвычайно полезным, когда речь идет о генерации ответов, которые не только точны, но и соответствуют предоставленному контексту, что делает выходные данные ИИ более надежными и заслуживающими доверия.
Заключение: взгляд на перспективные техники и будущие направления
ChatGPT от OpenAI демонстрирует неисследованный потенциал крупных языковых моделей (LLM) в решении сложных задач с замечательной эффективностью. Продвинутые техники, такие как обучение с несколькими примерами, ReAct, цепочка мыслей и STaR, позволяют нам использовать этот потенциал в широком спектре применений. Когда мы глубже погружаемся в нюансы этих методологий, мы обнаруживаем, как они формируют ландшафт ИИ, предлагая более богатые и безопасные взаимодействия между людьми и машинами.
Несмотря на проблемы, такие как конфликт знаний, чрезмерная зависимость от параметрических знаний и потенциал галлюцинации, эти модели ИИ, с правильной инженерией запросов, доказали, что они являются трансформирующими инструментами. Дообучение инструкций, контекстно-верная подача и интеграция с внешними данными дополнительно усиливают их способность рассуждать, учиться и адаптироваться.
















