2024年1月17日Arxiv热门NLP大模型论文:PRewrite: Prompt Rewriting with Reinforcement Learning

Google革新AI写作,推出PRewrite工具:用强化学习自动优化提示,效率和性能双提升!

引言:自动化提示工程的必要性与挑战

在当今的人工智能领域,大型语言模型(LLM)的应用日益广泛,它们在各种下游任务中展现出了令人印象深刻的性能。然而,要想充分发挥LLM的潜力,就需要精心设计的提示(prompt),这一过程被称为提示工程。传统上,提示工程通常是手动进行的,采用试错的方式,这不仅耗时耗力,而且生成的提示往往是次优的。即使是看似表现良好的提示,也总会有一个悬而未决的问题:是否可以通过进一步的修改使提示更加完善?

为了解决这些问题,本文探讨了提示工程自动化的可能性。我们考虑了一个特定的使用场景,即开发者或用户已经起草了初步的提示,但缺乏时间或专业知识来优化它们。我们提出了PRewrite,一个自动化工具,用于重写这些草稿并生成高效的新提示。PRewrite基于强化学习(RL)框架,允许端到端优化,我们的设计使RL搜索能够在大型动作空间中进行。该自动化工具利用手工制作的提示作为起点,使重写过程更加有指导性和高效。生成的提示具有可读性,并且自解释性强,不像以往工作中的一些提示那样晦涩难懂。我们在多个数据集上进行了广泛的实验,发现使用这种新方法生成的提示不仅优于专业制作的提示,而且也优于其他先前提出的方法。

自动化提示工程之所以重要,原因有二:(a)LLM应用的快速和广泛采用,以及(b)LLM本身在不断进化,因此我们需要有效的方法来更新提示以适应新模型。指令调整型模型更擅长理解提示,而非指令调整型模型在遵循指令方面并不总是表现良好,它们相应的提示需要更加小心地制定。

尽管先前的工作已经探索了自动化提示工程,并展示了一些有希望的结果,但它们尚未在实践中得到广泛采用。此外,许多先前的工作使用的是像BERT和RoBERTa这样的小型模型作为提示重写器/生成器模型,并不清楚这些方法是否可以推广到更强大、更大型的模型。

在本文中,我们提出了PRewrite,一个自动化的提示重写器,通过使用强化学习框架进行重写,以改进手工制作的初始提示,同时解决了先前工作的缺点。我们提出了端到端优化的方法,生成的提示具有可读性,便于调试LLM在不同提示下的行为。

声明:本期论文解读非人类撰写,全文由赛博马良「AI论文解读达人」智能体自主完成,经人工审核后发布。
智能体传送门:赛博马良-AI论文解读达人

论文标题、机构、论文链接

  • 论文标题:PRewrite: Prompt Rewriting with Reinforcement Learning
  • 机构:Google Research 和 University of Michigan
  • 论文链接:https://arxiv.org/pdf/2401.08189.pdf

在这篇论文中,我们介绍了PRewrite,这是一个自动化的提示重写工具,旨在通过强化学习改进初始手工制作的提示。我们的方法解决了先前方法的缺陷,包括使用更大、更强大的模型进行重写任务,端到端训练提示重写器,并生成可读性强的提示,展示了改进的效果。

未来,我们计划在更多样化的数据集上测试我们的方法,并使用比PaLM 2-S更大的模型。我们还希望研究不同的元提示和初始提示对任务性能的影响。

PRewrite工具介绍:自动化重写提示的新工具

在大型语言模型(LLM)应用的开发中,提示工程(prompt engineering)是至关重要的一环。然而,这个过程通常是手动进行的,采用“试错”的方式,这不仅耗时而且效率低下,生成的提示往往也是次优的。即使是看似表现良好的提示,人们仍然会怀疑是否可以通过进一步修改来改善它们。

为了解决这些问题,本文研究了提示工程自动化的可能性。我们考虑了一个特定的使用场景,即开发者/用户已经草拟了初始提示,但缺乏优化它们的时间/专业知识。我们提出了PRewrite,这是一个自动化工具,用于重写这些草稿并生成高效的新提示。PRewrite基于强化学习(RL)框架,允许端到端优化,并且我们的设计允许RL搜索在一个大的动作空间中进行。自动化工具利用手工制作的提示作为起点,使重写过程更加有指导性和高效。生成的提示是人类可读的,并且是自解释的,与以往工作中的一些提示不同。我们在多个不同的数据集上进行了广泛的实验,发现使用这种新方法生成的提示不仅优于专业制作的提示,而且还优于其他先前提出的方法生成的提示。

随着LLM的广泛普及,为LLM设计正确的提示变得至关重要,以实现各种下游任务的理想结果。有了正确的提示,LLM在零样本或少样本设置中可以在各种下游任务上表现出令人印象深刻的性能。然而,编写良好的提示是耗时的,并且需要一定量的LLM工作经验,以理解它们的性能和推理能力。它也可能是无效的,因为通过API调用LLM的最终用户甚至工程师可能会在通过手工制作的提示使LLM表现出预期行为方面遇到困难。此外,它们可能是次优的,因为手工提示可能没有针对手头的任务进行优化。

为了解决上述限制,我们提出自动化提示工程的过程。这对于与LLM一起构建应用程序的最终用户和工程师都是有帮助的。提示重写/改写可以是隐式的,也可以是向用户明示的提示建议。

自动化提示工程之所以重要,有几个原因:(a)LLM应用的广泛和快速采用,以及(b)LLM本身正在发展,因此,我们需要有效的方法来更新提示以适应新模型。指令调整模型更擅长理解提示,并且不需要大量调整就可以从模型中获得期望的行为。然而,非指令## PRewrite工具介绍:自动化重写提示的新工具

在开发基于大型语言模型(LLM)的应用程序时,提示工程(prompt engineering)至关重要。然而,这个过程通常是手动进行的,采取“试错”的方式,既耗时又低效,而且生成的提示往往是次优的。即使是看似效果不错的提示,也总会有一个问题悬而未决:通过进一步修改,提示是否可以做得更好?

为了解决这些问题,本文研究了提示工程自动化。我们考虑了一个特定的用例场景,即开发者/用户已经起草了初始提示,但缺乏优化它们的时间/专业知识。我们提出了PRewrite,这是一个自动化工具,用于重写这些草稿并生成高效的新提示。PRewrite基于强化学习(RL)框架,允许端到端优化,我们的设计允许RL搜索在一个大的动作空间中进行。自动化工具利用手工制作的提示作为起点,使重写过程更加有指导性和高效。生成的提示是人类可读的,并且自解释的,不像以前工作中的一些提示那样。

我们在多个数据集上进行了广泛的实验,发现使用这种新方法生成的提示不仅优于专业制作的提示,而且也优于其他先前提出的方法生成的提示。

方法概述:使用强化学习框架进行端到端优化

1. 强化学习的策略与奖励机制

我们将任务形式化为强化学习问题,并描述了RL设置的一些重要组成部分。策略函数是一个概率分布,给定状态下对动作的分布。这里,动作空间可以被视为提示重写模型词汇表中所有令牌的集合,这些令牌可以用来通过添加/删除/修改来编辑/重写提示。

奖励用于告知重写提示在手头任务上的有效性,我们将生成的输出与真实输出进行比较。我们探索了几种不同任务的奖励函数,包括长度差异:对生成输出和真实输出进行标记后的长度差异。

2. 提示重写模型与任务模型的交互

我们提出了一个端到端优化的方法,用于使用强化学习框架重写提示。重写的提示由我们的模型生成,是人类可读的,这使得调试LLM在不同提示下的行为变得容易。

在我们的PRewrite设置中,我们有一个“提示重写模型”和一个被冻结的“任务模型”。重写模型用于重写手工制作的初始提示。重写的提示用于任务LLM以生成输出。重写模型使用计算在生成输出与真实输出之间的奖励进行微调,直至收敛。在这项工作中,我们专注于与输入无关的提示重写,即提示与输入无关。

实验设计:数据集选择与实验设置

1. 数据集选择

在本研究中,我们选择了三个不同的数据集来评估我们提出的PRewrite方法:Natural Questions (NQ)、SST-2和AG’s News。这些数据集被广泛用于评估语言模型在各种下游任务中的性能,因此为我们提供了一个坚实的基础来展示PRewrite的有效性。

  • Natural Questions (NQ) 数据集包含了真实世界的问题和答案,适用于评估问答任务的性能。
  • SST-2 数据集是情感分析任务的标准数据集,它包含电影评论的正面或负面情感标签。
  • AG’s News 数据集则用于文本分类任务,其中包含新闻文章和对应的类别标签。

2. 实验设置

我们的实验使用了PaLM 2-S模型作为“Prompt Rewriter Model”和任务LLM。在实验中,任务LLM的参数是固定的,而Prompt Rewriter Model则在开发集上训练直至性能收敛。

为了优化提示重写过程,我们采用了Proximal Policy Optimization (PPO) 算法作为我们的强化学习算法。此外,为了防止重写模型输出无意义的文本,我们在训练过程中加入了策略模型和LLM初始状态之间的KL散度作为正则化参数。

实验结果:PRewrite与其他方法的对比

1. PRewrite性能对比

在我们的实验中,我们将PRewrite与几种基线方法进行了比较,包括使用原始提示的PaLM 2-S模型、AutoPrompt、RLPrompt和TEMPERA(无测试时编辑TTE)。结果显示,PRewrite在Natural Questions和AG’s News数据集上表现优于使用原始提示的模型。然而,在SST-2数据集上,PRewrite重写的提示相较于原始提示的准确率略有下降,这可能是因为SST-2任务的简单性,对于原始提示已经有足够好的性能,因此改进的空间有限。

与之前提出的方法相比,PRewrite在SST-2和AG’s News数据集上的性能显著优于AutoPrompt、RLPrompt和TEMPERA。这些结果在表3中详细报告,并且在统计学上具有显著性。

2. 不同奖励函数的消融研究

为了训练重写模型,选择合适的奖励函数至关重要。我们在表6中分析了不同奖励函数对不同评估数据集训练PRewrite的结果。例如,“Perplexity + F1”奖励对所有数据集都是相当稳健的,而单独使用“Perplexity”奖励在NQ和AG’s News数据集上的性能较差。

3. 重写案例研究

我们在表4和表5中展示了使用不同奖励函数的初始提示和重写提示的一些有趣案例研究。这些案例展示了奖励函数变化时,重写提示可能会发生显著变化。例如,对于“Natural Questions (NQ)”数据集,当使用EM奖励时,可以看到重写提示的有趣例子。

通过这些实验结果,我们证明了PRewrite在自动提示重写方面的有效性,并且与以往的方法相比,我们的方法在生成人类可读且自解释的提示方面具有明显的优势。

不同奖励函数的影响:奖励函数对提示重写的效果分析

在自动化提示重写的领域,奖励函数扮演着至关重要的角色。它们为重写模型提供了反馈,指导模型生成更有效的提示。在我们的研究中,我们探索了不同奖励函数对提示重写效果的影响。

1. 奖励函数的种类与作用

我们考虑了多种奖励函数,包括长度差异、准确率、F1分数和困惑度等。每种奖励函数都有其特定的目标和优化方向。例如,长度差异奖励关注于生成输出与真实输出之间的长度差异,而准确率奖励则直接关注于任务的正确性。

2. 奖励函数的选择对重写效果的影响

在实验中,我们发现不同的奖励函数对模型的重写效果有显著影响。例如,“Perplexity + F1”奖励被证明是一个相对稳健的奖励,适用于多个数据集。然而,仅使用“Perplexity”奖励在某些数据集上的表现并不理想,这表明选择合适的奖励函数对于优化模型性能至关重要。

重写案例研究:基于不同奖励的提示重写实例

在我们的研究中,我们通过多个案例研究展示了基于不同奖励函数的提示重写实例,以及这些重写提示在不同任务上的表现。

1. “Natural Questions”数据集的重写案例

在“Natural Questions”数据集上,我们观察到基于不同奖励函数的提示重写结果差异显著。例如,当使用EM(精确匹配)奖励时,重写的提示更加注重精确性和简洁性。这些重写的提示在任务上的表现也有所提升,显示出奖励函数对于生成更有效提示的重要性。

2. “AG’s News”数据集的重写案例

对于“AG’s News”数据集,我们也发现奖励函数的不同选择导致了重写提示的显著变化。在这些案例中,我们注意到重写的提示不仅在结构上有所改进,而且在内容上更加符合任务的要求,如更加明确和具体的分类指示。

通过这些案例研究,我们可以看到不同奖励函数对提示重写的直接影响,以及这些重写提示如何帮助提高了任务的准确率。这些案例也展示了我们的PRewrite模型在生成人类可读且有效的提示方面的能力。

讨论与未来工作:PRewrite的局限性与发展方向

1. 局限性

尽管PRewrite在自动化提示工程中取得了显著的进步,但它并非没有局限性。首先,PRewrite目前主要关注于输入独立的提示重写,即提示模板不随输入变化。这种方法虽然可以离线执行重写操作,从而在线上快速构建新提示,但它可能无法充分利用特定输入的上下文信息,这在某些任务中可能是提高性能的关键。

其次,PRewrite的实验是在特定的数据集上进行的,例如Natural Questions、SST-2和AG’s News。这些数据集虽然多样,但并不能涵盖所有可能的应用场景。因此,PRewrite的泛化能力和在其他更多样化数据集上的表现仍然是一个未知数。

再者,PRewrite使用的是PaLM 2-S模型作为提示重写模型和任务模型,尽管这是一个强大的模型,但它可能不是最大或最先进的模型。随着语言模型技术的不断进步,更大、更复杂的模型可能会出现,这些模型可能会提供更好的性能,但同时也可能需要新的优化策略。

2. 发展方向

未来的工作可以在多个方向上进行。首先,可以考虑将PRewrite应用于更多样化和更具挑战性的数据集,以测试其泛化能力和适应性。此外,随着更大型的语言模型的出现,测试PRewrite在这些模型上的效果也是必要的。

其次,可以探索不同的元提示和初始提示对任务性能的影响。不同的提示可能会对模型的性能产生显著的影响,因此理解这些因素如何影响PRewrite的优化过程是重要的。

最后,可以考虑将PRewrite扩展到输入依赖的提示重写,即考虑输入的上下文信息来生成更加个性化和精确的提示。这可能需要开发新的算法和技术,以便在不牺牲效率的情况下,充分利用输入信息。

总结:自动化提示工程的进步与PRewrite的贡献

自动化提示工程是提高大型语言模型(LLM)应用性能的关键。传统的手动提示工程耗时且效率不高,而且生成的提示往往是次优的。PRewrite的出现,提供了一个基于强化学习框架的自动化提示重写工具,它不仅优化了初始手工制作的提示,而且生成的提示在人类可读性和自解释性方面都有所改进。

PRewrite的实验结果表明,它生成的提示在多个数据集上的性能超过了专业制作的提示和其他自动化提示工程方法。这一成就标志着自动化提示工程领域的一个重要进步,它不仅提高了任务性能,还简化了调试LLM在不同提示下的行为的过程。

PRewrite的提出,不仅解决了以往工作的一些缺陷,如使用更大更强大的模型进行重写任务,端到端的训练提示重写器,还生产了人类可读的提示,这在实际应用中具有重要意义。随着LLM的快速发展和广泛应用,PRewrite及其未来的改进和发展,将继续在自动化提示工程领域发挥重要作用。

声明:本期论文解读非人类撰写,全文由赛博马良「AI论文解读达人」智能体自主完成,经人工审核后发布。
智能体传送门:赛博马良-AI论文解读达人

你可能感兴趣的:(人工智能,深度学习,机器学习)