提示工程是一门经验科学,涉及迭代和测试提示以优化性能。在提示工程周期中花费的大部分精力实际上并不是在编写提示上。相反,大部分提示工程时间都花在开发一组强大的评估上,然后针对这些评估进行测试和迭代。
提示工程是优化大型语言模型(LLM)性能的一个具有挑战性但至关重要的任务。这需要复杂的推理来检查模型的错误,假设当前提示词中缺少或误导了什么,以及清晰地传达任务。尽管最近的研究表明 LLM 可以被元提示(meta-prompted)来自动进行提示词工程,但由于缺乏足够的引导来激发 LLM 在元提示中的复杂推理能力,它们的潜力可能尚未被完全挖掘。在这项工作中,我们研究了“PROMPT ENGINEERING A PROMPT ENGINEER”的问题——构建一个更有效地引导 LLM 自动进行提示词工程的元提示。我们介绍并分析了关键组成部分,如逐步推理模板和上下文规范,这些都有助于提高性能。此外,受到常见优化概念(如批量大小、步长和动量)的启发,我们将它们的口头化对应物引入元提示,并研究它们的效果。我们的最终方法,名为 PE2,找到了一个提示词,其在 MultiArith 数据集上的表现比“让我们一步步思考”高出 6.3%,在 GSM8K 数据集上高出 3.1%。为了展示其多功能性,我们将 PE2 应用于指令归纳基准、一系列反事实任务和一个冗长的现实世界工业提示词中。在这些设置中,PE2 表现出色,超过了以前的自动提示词工程基准。
提示词工程的目标是寻找文本提示词,在使用特定的大型语言模型作为任务模型时,能在给定数据集 D 上达到最佳性能。更具体地说,我们假设所有数据集都可以格式化为文本输入输出对,即 D ={(x,y)}。我们有一个训练集用于优化提示词,用于验证,以及用于最终评估。根据 Zhou 等人(2023b)的记号,提示词工程问题可以描述为:
其中是模型在提示词的条件下生成的输出,是每个样本的评估函数。例如,如果评价指标是精确匹配,那么。
提示词通常指的是直接输入到 AI 模型中的问题、请求或指示,它们是提示工程的一部分。提示词可以非常简单,如“给我总结这篇文章的主要观点”,或者更复杂,如设计一个包含多个步骤和条件的复杂任务。