哦哦,现在人工智能在提示工程方面比你更优秀

人工智能比你在提示工程方面更优秀

你刚刚找到了你的下一个职业发展方向:成为一名提示工程师,掌握最佳输入短语的艺术,例如OpenAI的ChatGPT这样的生成式人工智能程序。

但不要太快:提示的艺术可能会被大型语言模型通过自动化接管。

同时:你需要了解的7个高级ChatGPT提示编写技巧

在谷歌DeepMind团队上周发布的一篇论文中,研究人员Chengrun Yang和其团队创建了一个名为OPRO的程序,它让大型语言模型尝试不同的提示,直到找到最接近解决任务的提示。这是一种通过打字自动化试错的方式。

这篇名为“Large Language Models as Optimizers”的研究论文已经在arXiv预印服务器上发布,详细介绍了如何通过语言模型来“优化”任何事物,也就是使程序产生更好的答案,并接近某种理想状态。

杨成润和其团队决定,不是显式地编程理想状态,而是使用大型语言模型以自然语言陈述理想状态。这使得AI程序能够适应不断变化的优化请求和不同任务。

同时:扩展ChatGPT:AI聊天机器人插件真的能改变游戏规则吗?

正如杨和合著者所写,大型语言模型的语言处理灵活性“为优化提供了一种新的可能性:我们不是正式定义优化问题并从编程求解器导出更新步骤,而是用自然语言描述优化问题,然后指示LLM根据问题描述和以前找到的解决方案迭代生成新的解决方案。”

OPRO程序的核心是一种名为“Meta-Prompt”的算法。Meta-Prompt回顾以前的提示,衡量这些提示在解决给定问题时的表现。然后它生成多个可以尝试的提示,以找到最佳的。

DeepMind的Meta-Prompt结构

实际上,Meta-Prompt就像一个人坐在键盘前,根据他们之前见过的有效和无效的内容,大量输入新的可能性。Meta-Prompt可以连接到任何大型语言模型以产生实际的提示和答案。作者测试了许多不同的大型语言模型,包括GPT-3和GPT-4,以及谷歌自己的PaLM 2语言模型。

作者首先在简单的问题上测试了OPRO。其中一个是线性回归,程序被提示“最小化一个函数”,也就是找到一对数字,这些数字与过去的例子相似,但作为结果产生更小的数值。

同时:如何通过Microsoft AI和Project Gutenberg访问数千本免费有声读物

关键在于,语言模型能够通过提示找到数学问题的解决方案,而不需要针对该问题单独构建的程序,即所谓的“求解器”。正如作者所写的那样,“LLM仅基于元提示中提供的过去优化轨迹,就能正确捕捉小规模问题上的优化方向。”

事实证明,为大型语言模型编写良好的提示本身可以被视为一项需要优化的任务。

研究人员已经知道这一点有一段时间了。微软的科学家们今年早些时候提出了他们所称的“自动提示优化”。该方法自动编辑提示的写作以改进它。杨和团队走得更远。Meta-Prompt不仅仅是编辑先前的提示以使其更好,它生成全新的提示。

正如他们所说,“我们工作中的每一步优化都会生成新的提示,目标是根据先前生成的提示轨迹来增加测试准确性,而不是根据自然语言反馈编辑一个输入提示或要求新的提示遵循相同的语义含义。”

同时:最佳的AI图像生成器:DALL-E 2和替代品

在解决了之前的问题后,杨和团队开始测试Meta-Prompt在优化提示方面的效果。

他们在一些基准评估中测试了Meta-Prompt,这些评估表明正确的提示可以提高性能。

其中一个是OpenAI在2021年推出的“GSM8K”,一个系列的小学数学问题,例如:“贝丝一周烤了4批(2打)饼干。如果这些饼干平均分给16个人,每个人吃多少饼干?”

第二个测试是BIG-bench的衍生版本,这是去年由Google和数十个合作组织推出的推理测试。谷歌作者的新版本名为BIG-bench Hard,今年引入的版本专注于以往大型语言模型未能达到人类水平准确性的推理问题。

谷歌的作者在原始论文中写道,BIG-bench问题是“多样化的”,“涵盖了语言学、儿童发展、数学、常识推理、生物学、物理学、社会偏见、软件开发以及其他领域的问题。”

同时:ChatGPT是如何工作的?

作者将他们自动生成的这两个任务的提示与“手工制作”的提示进行了比较,正如东京大学和Google研究团队在2022年的作品中所展示的。

众所周知,东京大学的小岛和团队发现,只需在提示的开头添加短语“让我们一步一步地思考”,然后再提供一个示例答案,就能够改善大型语言模型在GSM8K和BIG-bench等任务上的能力。他们发现,这个短语足以引导语言模型进行“思路链”的步骤。

通过Meta-Prompt,杨和团队发现他们可以自动生成类似于“让我们一步一步地思考”的短语,但更好,或者用他们的话说,更优化。

“元提示”示例,用于提示语言模型生成更优化的提示。橙色文本是元提示,即告诉语言模型如何构建提示的指令。蓝色文本是一些示例。紫色文本描述了优化任务和输出格式。

有时,自动生成的提示会变得非常复杂。例如,在名为“temporal_sequence”的BIG-bench推理任务中,语言模型会获得一些情境的信息,然后被问及某个事件发生的时间,例如:

今天,理查德去了游泳池。他可能在什么时间之间去过?

我们知道:理查德在早上7点醒来。从早上7点到8点,萨曼莎看到理查德在花园里散步。从早上8点到9点,马克看到理查德在健身房锻炼。从早上9点到10点,大卫看到理查德在学校上课。从早上10点到下午4点,安德鲁看到理查德在火车站等候。游泳池在下午5点后关闭。理查德可能在什么时间之间去了游泳池?

杨和团队发现,Meta-Prompt在编写非常复杂的提示时表现更好,例如:

“要确定一个人去了一个地方的可能时间段,首先找出这个人没有做其他事情且地方开放的所有时间段。然后排除这个人在其他时间段做了什么事情的时间段。剩下的时间段就是这个人可能去这个地方的时间。”

总体而言,他们发现,“我们优化的提示在GSM8K和Big-Bench Hard上的表现远远超过人工设计的提示,有时超过50%。”

然而,仍需要进一步优化优化提示的算法。

同时:6个超级加速您工作和日常生活的AI工具

特别是,OPRO的Meta-Prompt无法从负面示例中进行推断。“我们尝试在元提示中包含错误案例,而不是在每个优化步骤中随机从训练集中抽样,”他们观察到,“但结果相似,表明仅有错误案例对优化器LLM来说并不足够具有信息性,无法掌握错误预测的原因。”

也许,那么,您的下一个编程工作是找出如何最好地提示Meta-Prompt以创建更好的提示。