提示工程(Prompt Engineering)是一门较新的学科,专注于开发和优化提示词,以帮助用户在不同的场景和研究领域中更好地应用大语言模型。用户掌握了提示工程相关的技能,能够更好地理解大语言模型的能力和局限性。
图5-1 提示工程的工作流程
大语言模型是将文本映射到文本的函数。给定一个文本输入作为提示内容,一个大语言模型预测接下来应该出现的文本。如图5-1所示为提示工程的工作流程,包括三大部分:提示内容、大语言模型和生成文本。在本书中使用的实践模型即大语言模型,即ChatGPT,提示内容以中文或英文构建不同的内容格式和主题,ChatGPT模型基于提示内容生成对应的应答文本。
针对不同的业务场景有一些通用的提示方法,以下3点原则是基于以往的使用经验总结的。
1.引导模型生成有用的输出
为了确保模型能够产生符合预期的输出,明确目标和任务是至关重要的。模型需要了解要解决的问题,并在生成输出之前对任务目标有清晰的认识。例如,如果模型需要生成一篇文章,那么在提示内容中应明确指定文章应包含的信息。在提示内容中明确说明希望的结果可以帮助模型学习并理解任务的目标,如图5-2所示。
图5-2 引导模型生成有用的输出
以下是一个基于ChatGPT的提示示例,用于进行归纳总结。在提示内容中,首先明确告知ChatGPT要进行的任务是归纳总结,并用方括号将任务说明标注出来以区别于文本数据。然后输入需要进行归纳总结的文本数据,本例中是关于“神经网络”的说明。
提示的内容如下(使用GPT-4模型)。
[将以下内容归纳总结到50个字]
现代神经网络是一种非线性统计性数据建模工具,神经网络通常是通过一个基于数学统计学类型的学习方法得以优化,所以也是数学统计学方法的一种实际应用,通过统计学的标准学习方法我们能够得到大量的可以用函数来表达的局部结构空间,另一方面在人工智能学的人工感知领域,我们通过数学统计学的应用可以来做人工感知方面的决定问题(也就是说通过统计学的方法,人工神经网络能够类似人一样具有简单的决定能力和简单的判断能力),这种方法比起正式的逻辑学推理演算更具有优势。
ChatGPT对提示内容的归纳总结如下所示。
ChatGPT的回答如下。
现代神经网络是非线性统计数据建模工具,应用数学统计学优化。在人工智能领域,利用统计学实现人工感知决策能力,优于逻辑学推理演算。
2.任务描述和常规设置
为了使模型更好地理解要完成的任务,在第1点中介绍的“引导”内容上添加更详细的文本描述,以形成更完整的提示语境上下文。如图5-3所示,在提示内容中添加了任务的描述来更清楚地说明要求。
图5-3 任务描述和常规设置
以下的提示示例针对ChatGPT的“客服应答”任务进行了安排,其中任务内容包含了详细的背景描述和要求。这样的安排可以帮助模型更好地理解任务,并提供符合背景和要求的应答。
提示的内容如下(使用GPT-4模型)。
[这是一段客户与礼貌、乐于助人的客服人员之间的对话]
客户问题:我是否可以退订购买的新款手机?
客服人员回复:您好,感谢您与我们联系,是的。
ChatGPT对提示内容的回答合理地补充了客服回应的对话内容。
ChatGPT的回答如下。
您可以退订购买的新款手机。请提供相关信息,我们会协助您办理退订手续。如有问题,请随时联系。
3.向模型展示想要的内容
向模型展示所需内容的最直观方式是提供示例,如图5-4所示,在提示内容中给出了若干所需内容的示例。
以下提示演示向ChatGPT展示了一个使用Python计算两个数相加的函数的示例,并在提示内容中添加了“C++?”的提示,以期望它生成对应的C++函数。
图5-4 向模型展示想要的内容
提示的内容如下(使用GPT-4模型)。
定义一个Python函数计算两个数相加。
ChatGPT基于提示示例回答的内容如下。
ChatGPT的回答如下。
定义一个C++函数计算两个数相加。
构建提示内容的门槛很低,但使用的效果主要依赖提问者的个人能力,以下总结了4点重要的能力。
1.专业知识存储
专业知识存储对于构建准确、详细的提示内容至关重要。它能弥补数据的不足,为模型提供更丰富的背景知识和输出选项。两者相结合可以实现互补效果,显著提升系统的语言能力。
在生成响应时,模型需要准确理解输入的上下文和意图,并将其与相关的知识相连接。专业知识存储能够提供这些背景知识,帮助模型建立上下文和内容之间的关联。
2.表述能力
对于使用者来说,良好的表达能力至关重要。清晰而详细的问题可以帮助模型更好地理解提问者的意图,并以此提供更准确和详尽的回答。如果问题表述不清楚,模型可能会误解提问者的意图,从而给出不相关或不准确的回复。
3.整体设计
构建有效的提示工程模型和内容需要从宏观的角度进行思考。单纯关注局部设计难以实现优质的交互体验。在建立提示内容时,提问的顺序和逻辑是至关重要的。高质量的提示内容应该是经过计划的、连贯的一系列提问,而非孤立的单个问题。提问者需要考虑每一轮提问之间的逻辑关联,确保对话具有清晰的主题和方向。
4.鉴别能力
在与模型交互时,使用者除了思考如何提出高质量的问题外,还需要评估和判断模型的回答。这需要具备一定的领域知识和对话理解能力,以全面评估交互效果和模型的表现。这有助于使用者进一步改进提问内容和方式,引导模型逐步提升回答的准确性、详尽性和连贯性。