探索Prompt工程:引导大型语言模型的行为


在当今人工智能领域,大型语言模型(LLM)的发展已经成为引领技术潮流的关键因素之一。在这篇博文中,我们将深入探讨Prompt工程,也被称为上下文引导。Prompt工程旨在引导LLM的行为,从而实现期望的输出结果,而无需更新模型权重。这是一个实证科学,不同的Prompt工程方法对模型的影响可能会有很大差异,因此需要进行大量的实验和试错。

基础Prompt工程

在我们深入研究Prompt工程之前,让我们先来了解一些基础知识。Zero-shot和Few-shot学习是两种最基本的提示模型的方法,它们由许多LLM论文开创,并常用于评估LLM的性能。

Zero-shot

Zero-shot学习是将任务文本直接输入模型,并要求输出结果。例如,我们可以输入文本“我打赌视频游戏比电影更有趣。”并询问情感极性,从而进行Zero-shot学习。

Few-shot

Few-shot学习则会呈现一组高质量的示例,每个示例都包含输入和期望的输出。在模型首次接触到良好的示例后,它可以更好地理解人类意图和所需答案的标准。因此,Few-shot学习往往会带来比Zero-shot更好的性能。然而,这样做的代价是更多的标记消耗,并且在输入和输出文本较长时可能会触及上下文长度限制。

示例选择的技巧

很多研究都在探讨如何构建上下文示例以最大化性能,并观察到提示格式、训练示例以及示例顺序的选择可能会导致截然不同的性能,从随机猜测到接近最先进的水平。

自一致抽样

自一致抽样是指使用温度大于0的抽样多个输出,然后从这些候选者中选择最佳结果。选择最佳候选者的标准可能因任务而异。一般来说,选择多数票是一个通用的解决方案。

连续思维(CoT)提示

连续思维提示是指逐步生成一系列简短的句子,描述推理逻辑的步骤,最终得出最终答案。CoT的好处在于对于复杂的推理任务,特别是使用参数超过50亿的大型模型时,效果更加显著。而对于简单的任务,CoT的好处略有。

CoT提示的两种主要类型:

  • Few-shot CoT:用少量示例提示模型,每个示例都包含手动编写(或模型生成的)高质量推理链。
  • Zero-shot CoT:使用自然语言陈述,如“让我们一步一步思考”,显式鼓励模型首先生成推理链,然后提示因此,答案是。

自动提示设计

提示是一系列前缀标记,它增加了在给定输入情况下获得期望输出的概率。因此,我们可以将它们视为可训练的参数,并直接在嵌入空间上进行优化。例如,AutoPrompt、Prefix-Tuning、P-tuning和Prompt-Tuning等方法,逐渐简化了设置过程。

增强型语言模型

一项对增强型语言模型的调查提到了多种类型的语言模型,这些模型具有推理能力和使用外部工具的能力。该调查提供了很好的覆盖。

检索

经常我们需要完成在模型预训练时间截止后或内部/私有知识库之外的最新知识的任务。在这种情况下,如果我们不在提示中提供上下文,模型将无法了解情境。许多开放领域问题回答的方法依赖于首先对知识库进行检索,然后将检索到的内容作为提示的一部分。这一过程的准确性取决于检索和生成步骤的质量。

编程语言

PAL(Program-aided language models)和PoT(Program of Thoughts prompting)要求LLM生成编程语言语句来解决自然语言推理问题,因此将复杂计算和推理步骤分离。它依赖于具有足够良好编码能力的LLM。

外部API

TALM(Tool Augmented Language Models)是一种使用文本到文本API调用的增强语言模型。LM被引导生成|工具调用和工具输入文本,条件是任务输入文本构建API调用请求。最终输出是在|输出标记之后生成的。

有用资源

本文提供了OpenAI Cookbook、LangChain和Prompt Engineering Guide等资源,它们都是使用LLM的优秀范例。

通过这篇博文,我们深入了解了Prompt工程和相关的方法,以及它们在引导大型语言模型方面的作用。这些方法不仅是技术上的创新,也是对人工智能应用领域的重要贡献。希望这篇文章对您有所帮助!🚀📚


发表评论