天天看点

大模型从入坑到精通(第12话):提示工程

作者:UTC人工智能

在人工智能的黄金时代,我们拥有前所未有的强大算力,这使得高度复杂的机器学习模型如GPT、BERT等成为可能。然而,任何工具的真正能力在于如何使用它们。“提示工程”作为一个新兴领域崭露头角,它专注于如何与这些模型交互,使其生成更高质量、更有深度和更相关的输出。

为什么提示如此重要?想象一下,你正在与一个高度知识渊博的专家交谈。你问的问题和提供的信息决定了你得到的答案。相同的原理也适用于机器学习模型。通过优化和精心设计我们的输入提示,我们可以引导模型向我们提供更加精确、有价值的答案,从而最大化我们从模型中获得的价值。今天我们重要要介绍的是思维链提示(Chain-of-Thought Prompting, CoT)和化繁为简提示(Least-to-Most Prompting, LTM)。

01 思维链提示(CoT)

大模型从入坑到精通(第12话):提示工程

思维链提示,是一种鼓励LLM解释其推理过程的方法,先通过提供一些示例让大模型明白其中的推理过程,然后期望LLM在回答提示时遵循类似的推理过程,这种技术显著提高了模型在需要复杂推理的任务上的性能。思维链提示的一个关键优点是它能够增强LLM在需要算术、常识和符号推理的任务上的性能。对于大约1000亿参数的模型,这种技术可以提高性能,较小的模型会产生不合逻辑的思维链,导致精度低于标准提示。

本质上,思维链提示是指导LLM逐步思考的方法。这是通过为模型提供一个明确概述推理过程的几次示例来实现的,然后期望模型在回答提示时遵循类似的思维链。这种方法对于需要经过一系列推理步骤才能生成回应的复杂任务特别有效。思维链提示也可以在零样本提示设置中使用。比如在原始提示中添加一个短语,“让我们逐步思考”,这也可以与少样本提示一起使用,这个简单的添加能够改善模型在提示中没有太多示例的任务上的性能。2个最简单的例子如下:

大模型从入坑到精通(第12话):提示工程

图:思维链提示使大型语言模型能够处理复杂的算术、常识和符号推理任务

大模型从入坑到精通(第12话):提示工程

图:零样本及少样本思维链提示

02 思维链提示的操作步骤

1 定义问题

首先明确定义希望语言模型解决的问题,问题应该是一个需要模型在最终得出答案之前经过一系列中间步骤来思考的多步推理任务。

2 分解问题

将问题分解成更小、更易管理的步骤,确定解决问题所必需的关键组件或中间步骤,每个步骤应代表整体推理过程中的逻辑进展。

3 开发一条思维链

创建一系列结构化提示,这些提示对应于前一步骤中确定的中间步骤,每个提示应该以清晰而简明的方式表达,以引导语言模型进行思维过程,确保提示保持逻辑流,从一个步骤过渡到下一个。

4 准备示例

对于少样本提示,准备一组示例,演示类似问题的期望思维链,这些示例应该展示中间步骤和最终解决方案,为语言模型提供在解决给定问题时遵循的模板。对于大多数现代LLM来说,所需示例的数量往往比原始显示的要少。再次,根据使用的每个LLM进行实验,找到最佳点。

5 将提示整合到模型中

将思维链提示和示例输入到语言模型中,可以将它们作为输入文本的一部分串联起来,或者使用特定模型支持的任何其他方法,确保提示的格式一致,准确地代表了预期的中间步骤。

6 测试模型

使用链条思维提示方法评估模型在问题上的性能,分析模型产生的中间步骤,确保它遵循了预期的思维过程,评估模型提供的最终解决方案的准确性和效率。

7 迭代和改进

根据评估结果,改进链条思维提示和示例,以提高模型的性能,这可能涉及重新表述提示,调整步骤顺序,或提供额外的示例以更有效地引导模型,重复测试和改进过程,直到达到所需的性能水平。

8 应用于新问题

一旦链条思维提示方法得到细化,将该方法应用于相同领域或相关领域的新问题,结构化的问题解决方法可以帮助模型处理各种多步推理任务,提高其整体性能和多功能性。

03 自动思维链提示

虽然思维链提示可以有效,但它通常涉及手工制作示例,这可能耗时且可能导致次优解决方案。为了解决这个问题,研究人员提出了一种称为自动思维链提示(Auto-CoT)的方法。这种方法利用LLM自动生成演示的推理链,从而消除了手动工作的需要。自动思维链提示包括两个主要阶段:问题聚类和演示抽样。在问题聚类阶段,给定数据集的问题被分成几个聚类。在演示抽样阶段,从每个聚类中选择一个代表性问题,并使用简单的启发式方法使用零样本提示生成其思维链,这个过程鼓励模型使用简单而准确的演示。

大模型从入坑到精通(第12话):提示工程

04 化繁为简提示(LTM)

思维链提示在各种自然语言推理任务中表现出卓越的性能。然而,在需要解决比提示示例更难的问题时,它往往表现不佳。为了克服这种较难的泛化问题,化繁为简提示应运而生。这种策略的关键思想是将复杂问题分解成一系列更简单的子问题,然后按顺序解决它们,同时解决每个子问题都得到了先前已解决的子问题答案的帮助。化繁为简提示通过将复杂问题分解为一系列更简单的子问题来教导语言模型如何解决问题。它包括两个连续的阶段:分解和子问题解决。分解是指提示包含演示分解的固定示例,然后是要分解的具体问题。子问题解决由三个部分组成:(1) 演示如何解决子问题的固定示例;(2) 可能为空的先前回答的子问题和生成的解决方案列表;以及 (3) 下一个要回答的问题。

大模型从入坑到精通(第12话):提示工程

思维链提示在提升大型语言模型的推理能力方面提供了许多优势,通过使用这种方法,模型被鼓励遵循结构化的问题解决方法,模仿人类思维过程。例如它能够将复杂的多步问题分解成更小、更易管理的步骤,这种分解允许模型为每个步骤分配更多的计算资源,最终得到更准确和高效的问题解决。另一个重要优势是它适用于各种任务,包括数学题、常识推理和符号操作,这种方法适用于可以通过语言解决的任何任务,从而成为增强语言模型在各种领域中问题解决能力的强大工具。思维链提示可以轻松地集成到现有的大型语言模型中,无需对其体系结构进行重大修改,通过利用少样本提示并包括思维链序列作为示例,模型可以迅速学习将这种结构化的问题解决方法应用于新任务,从而提高其整体性能和推理能力。

05 参考文章

《Large Language Models are Zero-Shot Reasoners》

《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》

《AUTOMATIC CHAIN OF THOUGHT PROMPTING IN LARGE LANGUAGE MODELS》

《LEAST-TO-MOST PROMPTING ENABLES COMPLEX REASONING IN LARGE LANGUAGE MODELS》

继续阅读