Промпт-инжиниринг
Последние современные достижения в области инженерии подсказок: всесторонний гид

Инженерия подсказок, искусство и наука создания подсказок, которые вызывают желаемые ответы от моделей крупномасштабного языкового моделирования (LLM), стала важной областью исследований и разработок.
От улучшения возможностей рассуждения до обеспечения бесшовной интеграции с внешними инструментами и программами, последние достижения в области инженерии подсказок открывают новые горизонты в области искусственного интеллекта. Ниже мы обсуждаем последние передовые методы и стратегии, которые формируют будущее инженерии подсказок.
Продвинутые стратегии подсказок для решения сложных проблем
Хотя CoT-подсказка оказалась эффективной для многих задач рассуждения, исследователи изучили более продвинутые стратегии подсказок для решения еще более сложных проблем. Одним из таких подходов является подсказка “от меньшего к большему”, которая разбивает сложную проблему на более мелкие, более управляемые подзадачи, которые решаются независимо и затем объединяются для получения окончательного решения.
Другой инновационный метод – это подсказка “Дерево мыслей” (ToT), которая позволяет LLM генерировать несколько линий рассуждения или “мыслей” параллельно, оценивать свой прогресс к решению и возвращаться или исследовать альтернативные пути по мере необходимости. Этот подход использует алгоритмы поиска, такие как поиск в ширину или поиск в глубину, что позволяет LLM заниматься планированием и координацией во время процесса решения проблемы.
Интеграция LLM с внешними инструментами и программами
Хотя LLM невероятно мощны, они имеют внутренние ограничения, такие как невозможность доступа к актуальной информации или выполнения точных математических расчетов. Чтобы устранить эти недостатки, исследователи разработали методы, которые позволяют LLM бесшовно интегрироваться с внешними инструментами и программами.
Одним из заметных примеров является Toolformer, который учит LLM определять сценарии, требующие использования внешних инструментов, указывать, какой инструмент использовать, предоставлять соответствующий ввод и включать вывод инструмента в окончательный ответ. Этот подход включает в себя создание синтетического обучающего набора данных, который демонстрирует правильное использование различных текстовых API.
Другой инновационный каркас, Chameleon, использует подход “подключаемости”, позволяя центральному контроллеру LLM генерировать естественно-языковые программы, которые составляют и выполняют широкий спектр инструментов, включая LLM, модели зрения, поисковые системы и функции Python. Этот модульный подход позволяет Chameleon решать сложные, многомодальные задачи рассуждения, используя сильные стороны различных инструментов и моделей.
Фундаментальные стратегии подсказок
Подсказка с нулевым выстрелом
Подсказка с нулевым выстрелом включает в себя описание задачи в подсказке и запрос к модели на решение без каких-либо примеров. Например, чтобы перевести “сыр” на французский, подсказка с нулевым выстрелом может быть:
Переведите следующее английское слово на французский: сыр.
Этот подход прост, но может быть ограничен неоднозначностью описаний задач.
Подсказка с несколькими выстрелами
Подсказка с несколькими выстрелами улучшает подсказку с нулевым выстрелом, включая несколько примеров задачи. Например:
Переведите следующие английские слова на французский:
1. яблоко => яблоко
2. дом => дом
3. сыр => сыр
Этот метод снижает неоднозначность и обеспечивает более четкое руководство для модели, используя возможности контекстного обучения LLM.
Подсказка с инструкциями
Подсказка с инструкциями явно описывает желаемый вывод, что особенно эффективно для моделей, обученных следовать инструкциям. Например:
Переведите слово "сыр" на французский. Правильный перевод - "сыр".
Модели, такие как GPT-4, были специально дообучены для точного выполнения таких инструкций.
Продвинутые методы подсказок
Улучшение возможностей рассуждения с помощью цепной подсказки
Одним из наиболее значительных прорывов в области инженерии подсказок стало развитие цепной подсказки. Этот метод направлен на то, чтобы вызвать и улучшить возможности рассуждения LLM, побуждая их генерировать пошаговый процесс рассуждения или обоснование до предоставления окончательного ответа.

Слева: Традиционные методы подсказки LLM полагаются на общие входные данные (0-шаговая цепная подсказка) или требуют помеченных примеров (многошаговая цепная подсказка). Справа: Новый подход подсказывает LLM создавать соответствующие примеры перед решением проблемы, удаляя необходимость в помеченных примерах и настраивая примеры для каждой уникальной проблемы
Цепная подсказка работает путем представления LLM примеров, которые включают не только входные и выходные данные, но и промежуточные шаги рассуждения или “цепь мыслей”, которые приводят к решению. Изучая эти примеры, LLM может затем генерировать свою собственную цепь мыслей, когда ему представляются новые проблемы, улучшая свою способность решать сложные задачи рассуждения.
Пример:
Входные данные: Натали имеет 3 яблока и хочет поделиться ими поровну с двумя друзьями. Сколько яблок получит каждый человек? Цепь мыслей: Ладно, давайте разберем это шаг за шагом:
- Натали имеет 3 яблока
- Она хочет поделиться ими поровну с 2 друзьями
- Итак, есть 3 человека в общей сложности (Натали и ее 2 друга)
- Чтобы поделиться яблоками поровну, мы делим общее количество яблок (3) на количество людей (3)
- 3 разделить на 3 равно 1
- Следовательно, каждый человек получит 1 яблоко. Ответ: Каждый человек получит 1 яблоко.
Генерируя явный процесс рассуждения, LLM, такие как GPT-3 и Codex, продемонстрировали значительные улучшения в арифметических, повседневных и символических задачах рассуждения.
Самосогласованность
Самосогласованность улучшает надежность цепной подсказки, генерируя несколько цепей мыслей и принимая решение большинством голосов по окончательному ответу. Этот метод смягчает влияние любой единственной неправильной цепи рассуждения.
Подсказка от меньшего к большему
Подсказка от меньшего к большему разбивает сложные проблемы на более простые подзадачи, решая каждую подзадачу последовательно и используя контекст предыдущих решений для информирования последующих шагов. Этот подход полезен для многошаговых задач рассуждения.
Последние достижения в области инженерии подсказок
Инженерия подсказок развивается быстро, и несколько инновационных методов появились для улучшения производительности крупномасштабных языковых моделей (LLM). Давайте рассмотрим некоторые из этих передовых методов подробнее:
Автоматическая цепная подсказка (Auto-CoT)
Что это такое: Auto-CoT – это метод, который автоматизирует генерацию цепей рассуждения для LLM, устраняя необходимость в手одельных примерах. Этот метод использует подсказку с нулевым выстрелом, при которой модель руководствуется для генерации подробных рассуждений.
Как это работает:
- Подсказка с нулевым выстрелом: Модель получает простую подсказку, например “Давайте подумаем шаг за шагом”, чтобы побудить подробные рассуждения.
- Разнообразие демонстраций: Auto-CoT выбирает разнообразные вопросы и генерирует цепи рассуждения для этих вопросов, обеспечивая разнообразие типов задач и моделей рассуждения.
Преимущества:
- Автоматизация: Снижает ручной труд, необходимый для создания демонстраций рассуждения.
- Производительность: На различных задачах рассуждения Auto-CoT показал производительность, сопоставимую или превышающую ручную цепную подсказку.
Подсказка на основе сложности
Что это такое: Этот метод выбирает примеры с наивысшей сложностью (т.е. наибольшим количеством шагов рассуждения) для включения в подсказку. Он направлен на улучшение производительности модели на задачах, требующих нескольких шагов рассуждения.
Как это работает:
- Выбор примеров: Подсказки выбираются на основе количества шагов рассуждения, которые они содержат.
- Последовательность на основе сложности: Во время декодирования генерируются несколько цепей рассуждения, и решение большинством голосов принимается из наиболее сложных цепей.
Преимущества:
- Улучшенная производительность: Значительно лучшая точность на задачах, требующих нескольких шагов рассуждения.
- Робастность: Эффективна даже при разных распределениях подсказок и шумных данных.
Прогрессивная подсказка с намеками (PHP)
Что это такое: PHP итеративно уточняет ответы модели, используя ранее сгенерированные обоснования в качестве намеков. Этот метод использует предыдущие ответы модели для руководства ею к правильному ответу через несколько итераций.
Как это работает:
- Первоначальный ответ: Модель генерирует базовый ответ, используя стандартную подсказку.
- Намеки и уточнения: Этот базовый ответ затем используется в качестве намека в последующих подсказках для уточнения ответа.
- Итеративный процесс: Этот процесс продолжается до тех пор, пока ответ не стабилизируется в последовательных итерациях.
Преимущества:
- Точность: Значительные улучшения точности рассуждения.
- Эффективность: Снижает количество необходимых путей выборки, повышая вычислительную эффективность.
Разложенная подсказка (DecomP)
Что это такое: DecomP разбивает сложные задачи на более простые подзадачи, каждая из которых решается отдельной подсказкой или моделью. Этот модульный подход позволяет более эффективно решать сложные проблемы.
Как это работает:
- Разложение задачи: Основная проблема разбивается на более простые подзадачи.
- Обработчики подзадач: Каждая подзадача обрабатывается специальной подсказкой или моделью.
- Модульная интеграция: Эти обработчики можно оптимизировать, заменить или объединить по мере необходимости для решения сложной задачи.
Преимущества:
- Гибкость: Легко отлаживать и улучшать отдельные подзадачи.
- Масштабируемость: Эффективно обрабатывает задачи с длинными контекстами и сложными подзадачами.
Подсказка от гипотез к теориям (HtT)
Что это такое: HtT использует процесс научного открытия, при котором модель генерирует и проверяет гипотезы для решения сложных проблем. Этот метод включает в себя создание библиотеки правил из проверенных гипотез, которые модель использует для рассуждения.
Как это работает:
- Стадия индукции: Модель генерирует потенциальные правила и проверяет их на примерах из обучающего набора.
- Создание библиотеки правил: Проверенные правила собираются для формирования библиотеки правил.
- Стадия дедукции: Модель применяет эти правила к новым проблемам, используя библиотеку правил для руководства своим рассуждением.
Преимущества:
- Точность: Снижает вероятность ошибок, полагаясь на проверенную коллекцию правил.
- Переносимость: Наученные правила можно переносить на разные модели и формы задач.
Техники подсказок с инструментами
Toolformer
Toolformer интегрирует LLM с внешними инструментами через текстовые API, позволяя модели использовать эти инструменты для решения проблем, которые она не могла бы решить самостоятельно. Например, LLM могла бы вызвать калькуляторный API для выполнения арифметических операций.
Chameleon
Chameleon
использует центральный контроллер LLM для генерации программы, которая сочетает несколько инструментов для решения сложных задач рассуждения. Этот подход использует широкий спектр инструментов, включая модели зрения и поисковые системы, для улучшения возможностей решения проблем. GPT4Tools дообучает открытые LLM для использования многомодальных инструментов через самоинструктивный подход, демонстрируя, что даже непropriетарные модели могут эффективно использовать внешние инструменты для улучшения производительности. И Gorilla, и HuggingGPT интегрируют LLM с специализированными глубокими моделями, доступными в Интернете. Эти системы используют процесс дообучения, осведомленного о поиске, и подход планирования и координации соответственно для решения сложных задач, включающих несколько моделей. Помимо интеграции с внешними инструментами, исследователи изучали способы улучшения возможностей решения проблем LLM, сочетая естественный язык с программными конструкциями. Программно-усиливаемые языковые модели (PAL) и программы мыслей (PoT) – два таких подхода, которые используют код для дополнения процесса рассуждения LLM. PAL побуждает LLM генерировать обоснование, которое чередует естественный язык с кодом (например, Python), который затем может быть выполнен для получения окончательного решения. Этот подход решает распространенный случай неудачи, когда LLM генерирует правильное рассуждение, но производит неправильный окончательный ответ. Аналогично, PoT используют библиотеку символьной математики, такую как SymPy, позволяя LLM определять математические символы и выражения, которые можно объединить и оценить с помощью функции решения SymPy. Делегируя сложные вычисления интерпретатору кода, эти методы отделяют рассуждение от вычислений, позволяя LLM решать более сложные проблемы эффективно. Производительность LLM сильно зависит от их способности обрабатывать и использовать контекст, предоставленный в подсказке. Исследователи изучали, как LLM обрабатывают длинные контексты и влияние нерелевантной или отвлекающей информации на их выходные данные. Феномен “Потерянный в середине” подчеркивает, как LLM склонны уделять больше внимания информации в начале и конце контекста, в то время как информация в середине часто упускается из виду или “потеряна”. Этот вывод имеет последствия для инженерии подсказок, поскольку тщательное размещение релевантной информации внутри контекста может существенно повлиять на производительность. Другая линия исследований фокусируется на смягчении негативных эффектов нерелевантного контекста, которые могут существенно ухудшить производительность LLM. Техники, такие как самосогласованность, явные инструкции игнорировать нерелевантную информацию и включение примеров, демонстрирующих решение проблем с нерелевантным контекстом, могут помочь LLM научиться сосредотачиваться на наиболее важной информации. Хотя LLM отлично генерируют текст, похожий на человеческий, их возможности письма можно еще больше улучшить с помощью специализированных стратегий подсказок. Одним из таких методов является подсказка “Скелет мыслей” (SoT), которая направлена на снижение задержки последовательной декодировки, имитируя человеческий процесс письма. SoT-подсказка включает в себя побуждение LLM сначала сгенерировать скелет или план ответа, за которым следуют параллельные вызовы API для заполнения деталей каждого элемента плана. Этот подход не только улучшает задержку вывода, но и может улучшить качество письма, побуждая LLM планировать и структурировать свой вывод более эффективно. Другой метод подсказки, “Цепь плотности” (CoD), фокусируется на улучшении плотности информации в сгенерированных LLM резюме. Итеративно добавляя сущности в резюме, сохраняя при этом фиксированную длину, CoD-подсказка позволяет пользователям исследовать компромисс между краткостью и полнотой, в конечном итоге производя более информативные и читаемые резюме. Область инженерии подсказок развивается быстро, и исследователи постоянно исследуют новые горизонты и расширяют границы того, что возможно с LLM. Некоторые новые направления включают: По мере того, как LLM продолжают развиваться и находить применения в различных областях, инженерия подсказок будет играть решающую роль в раскрытии их полного потенциала. Используя последние методы и стратегии подсказок, исследователи и практики могут разработать более мощные, надежные и адаптированные к задаче решения ИИ, которые расширяют границы того, что возможно с обработкой естественного языка. Область инженерии подсказок для крупномасштабных языковых моделей развивается быстро, и исследователи постоянно расширяют границы того, что возможно. От улучшения возможностей рассуждения с помощью методов, таких как цепная подсказка, до интеграции LLM с внешними инструментами и программами, последние достижения в области инженерии подсказок открывают новые горизонты в области искусственного интеллекта.GPT4Tools
Gorilla и HuggingGPT
Программно-усиливаемые языковые модели (PAL) и программы мыслей (PoT)
Понимание и использование контекстных окон
Улучшение возможностей письма с помощью стратегий подсказок
Новые направления и будущие перспективы
Заключение














