Инженерия промптов для инженера промптов
Prompt Engineering a Prompt Engineer
November 9, 2023
Авторы: Qinyuan Ye, Maxamed Axmed, Reid Pryzant, Fereshte Khani
cs.AI
Аннотация
Инженерия промптов является сложной, но крайне важной задачей для оптимизации производительности больших языковых моделей (LLM). Она требует сложного анализа для выявления ошибок модели, формулирования гипотез о том, что отсутствует или вводит в заблуждение в текущем промпте, и четкого описания задачи. Хотя последние исследования показывают, что LLM могут быть мета-промптированы для автоматической инженерии промптов, их потенциал может быть не полностью раскрыт из-за недостаточного руководства, необходимого для активации сложных аналитических способностей в мета-промпте. В данной работе мы исследуем проблему "инженерии промптов для инженера промптов" — создание мета-промпта, который более эффективно направляет LLM на выполнение автоматической инженерии промптов. Мы вводим и анализируем ключевые компоненты, такие как шаблон пошагового рассуждения и спецификация контекста, которые способствуют улучшению производительности. Кроме того, вдохновленные распространенными концепциями оптимизации, такими как размер пакета, размер шага и импульс, мы добавляем их вербализованные аналоги в мета-промпт и изучаем их влияние. Наш итоговый метод, названный PE2, находит промпт, который превосходит подход "давайте думать шаг за шагом" на 6,3% на наборе данных MultiArith и на 3,1% на наборе данных GSM8K. Чтобы продемонстрировать его универсальность, мы применяем PE2 к бенчмарку Instruction Induction, набору контрфактуальных задач и длинному промпту из реальной промышленной практики. В этих условиях PE2 демонстрирует высокую производительность и превосходит предыдущие базовые методы автоматической инженерии промптов. Кроме того, мы показываем, что PE2 вносит осмысленные и целенаправленные изменения в промпты, исправляет ошибочные или неполные промпты и демонстрирует нетривиальные способности к контрфактуальному рассуждению.
English
Prompt engineering is a challenging yet crucial task for optimizing the
performance of large language models (LLMs). It requires complex reasoning to
examine the model's errors, hypothesize what is missing or misleading in the
current prompt, and communicate the task with clarity. While recent works
indicate that LLMs can be meta-prompted to perform automatic prompt
engineering, their potentials may not be fully untapped due to the lack of
sufficient guidance to elicit complex reasoning capabilities in LLMs in the
meta-prompt. In this work, we investigate the problem of "prompt engineering a
prompt engineer" -- constructing a meta-prompt that more effectively guides
LLMs to perform automatic prompt engineering. We introduce and analyze key
components, such as a step-by-step reasoning template and context
specification, which lead to improved performance. In addition, inspired by
common optimization concepts such as batch size, step size and momentum, we
introduce their verbalized counterparts to the meta-prompt and investigate
their effects. Our final method, named PE2, finds a prompt that outperforms
"let's think step by step" by 6.3% on the MultiArith dataset and 3.1% on the
GSM8K dataset. To demonstrate its versatility, we apply PE2 to the Instruction
Induction benchmark, a suite of counterfactual tasks, and a lengthy, real-world
industrial prompt. In these settings, PE2 achieves strong performance and
outperforms prior automatic prompt engineering baselines. Further, we show that
PE2 makes meaningful and targeted prompt edits, amends erroneous or incomplete
prompts, and presents non-trivial counterfactual reasoning abilities.