第2章 提示词基础
2.1 提示词基础概念
2.1.1 提示词和提示工程
Prompt是大语言模型领域的关键术语,一般译为“提示词”。AI领域中的大语言模型,如OpenAI的GPT系列,取得了显著的突破,并在自然语言处理任务中展现强大的能力。为了与这些模型进行有效互动,人们需要使用提示词,可以将它理解为触发词、引导词或问题,用于引导大语言模型生成有关特定主题或内容的回应。提示词实际上是人类与 AI 模型互动的入口,通过它,可以引导诸如ChatGPT这类大语言模型输出语料文本。
大语言模型基于深度学习技术,经过大量训练,能够理解和生成人类语言。在训练过程中,AI模型通过学习海量文本数据,逐渐掌握词汇、语法、语义等知识,并运用这些知识在特定场景下生成相关的回应。在这个过程中,提示词发挥着至关重要的作用。当向 AI 模型提供一个提示词,例如“今天的天气如何?”或“简述量子物理的基本原理”,AI模型会根据所学知识和经验,理解问题并生成符合语境的恰当回答。因此,在与 AI 大语言模型进行交互时,选择或设计合适的提示词至关重要,它对回答质量具有重要影响。
提示工程技术(Prompt Engineering Technology,PET)又称上下文提示技术(In-Context Prompting Technology),是一门实证科学,专注于开发和优化提示词,以帮助用户将大语言模型应用于各种场景和研究领域。掌握提示工程相关技能,将有助于用户更好地了解大语言模型的能力和局限性。研究人员可以利用提示工程来提升大语言模型处理复杂任务场景的能力,如问答和算术推理等。人们可以通过提示工程设计和研发强大的技术,实现与大语言模型或其他生态工具的高效对接。
在提示工程中时,研究人员需要关注如何有效地与大语言模型进行交流并引导其产生有用的输出,这往往需要通过不断实验和调整找到最佳的方法。值得注意的是,尽管某些技巧可能看似简单,但它们在实践中可能具有很高的实用价值。
为了推动提示工程领域的发展,建立一种标准化的基准测试环境是至关重要的,这将有助于研究人员更容易地评估和比较不同方法的效果,从而为整个社区创造更多价值。同时,鼓励研究人员采用迭代提示词和外部工具等先进技术,也将有助于提高模型的可操控性和实用性。
总之,提示词和提示工程在与 AI 大语言模型互动中发挥着核心作用。通过掌握提示工程的技巧和应用启发式方法,可以更好地利用 AI 大语言模型的能力,更高质量地完成自然语言处理任务。在未来研究中,如何设计更优秀的提示词以提高AI模型的理解和生成能力将成为重要课题,并能够进一步推动大语言模型在各个领域的应用。
2.1.2 提示词范式思想
ChatGPT 目前非常时髦,然而不少人却并不了解ChatGPT的前辈——提示词范式。提示词思想是大语言模型实现真正大一统的关键一步。提示词刚刚出现的时候,还不叫提示词。最初,它是研究人员为了下游任务而设计出来的一种输入形式或模板,能够帮助预训练语言模型“回忆”起自己在预训练时“学习”到的东西,因此后来被慢慢地叫作提示词了。现在,百度百科出现了一个新词条(更新时间为2023年4月14日),一个社会新职业出现了,这就是“提示词工程师”。程序员、研究员、产品经理等涉及重复性工作的脑力劳动者可能都将被 AI 取代,而这些职业可能都会演变成提示词工程师。
要想在未来做好提示词相关的开发,就需要深入理解提示词思想。提示词范式指的是“预训练-提示”这一自然语言处理最新的范式,也属于参数高效(Parameter Efficient)学习方法的一种。在之前的范式下产生的模型从本质上决定了无法在任务级别拥有泛化能力,而提示词在任务级别具有泛化能力,对之前的自然语言处理范式形成了降维打击。提示词范式被认为是通往真正大一统语言模型的关键一步,在这个框架下,任务描述作为输入的一部分被直接输入预训练模型,从而降低了对特定任务数据的需求。
在介绍提示词范式前,先简单了解一下“预训练-微调”范式。“预训练-微调”(Pre-training and Fine-tuning)是自然语言处理领域的一种常见范式,主要包含两个阶段。
预训练:在这个阶段,大语言模型(如BERT、GPT等)使用大量非特定任务场景的文本数据进行训练。模型通过学习这些数据,逐渐掌握词汇、语法、语义等方面的知识。预训练模型充分利用了海量数据,从而为下一阶段的微调奠定了基础。
微调:在预训练模型的基础上,针对特定任务,如文本分类、情感分析等,使用有标签的任务数据对模型进行微调。这一过程会对模型参数进行精细调整,以适应特定任务的需求。经过微调的模型在特定任务上通常有更好的性能。采用“预训练-微调”范式,通过结合大量非特定任务场景的知识和特定任务的信息,模型能够更好地解决具体的自然语言处理任务。
随着预训练语言模型体量的不断增大,对其进行微调的硬件要求、数据需求以及实际成本也在不断提高。除此之外,丰富多样的下游任务也使得对于预训练和微调阶段的设计变得烦琐复杂,因此研究人员希望探索更小巧轻量与普适高效的方法,提示工程就是在这个方向上的尝试。提示词方法可以分为手工提示词(如Prefix Prompt和Cloze Prompt)和参数化提示词(如离散提示词和连续提示词)。手工提示词主要依靠自然语言来描述任务,而参数化提示词则通过自动选择和优化特定任务的提示词来实现。这些方法使大语言模型能够在任务级别上具有泛化能力,具有强大的少样本或零样本学习能力。“预训练-提示”范式能够在可训练参数减少至千分之一的情况下,达到与“预训练-微调”范式相当的效果。此外,随着模型规模的增加,提示词的效果越来越好。
提示词工程技术的成功应用,如ChatGPT,证明了它在实现复合任务中的潜力。这种方法使得基于GPT-3.5的ChatGPT取得了惊人的效果,也意味着传统针对子任务的独立研究将逐渐淡出历史舞台,为新时代的自然语言处理技术铺平道路。
笔者认为,提示词范式为处理复杂自然语言处理任务提供了一种全新的解决方案,它突破了以往任务定义的限制,有望带来更多创新应用,例如知识问答、对话系统等。然而,提示范式仍面临一些挑战,例如,如何在实际应用中确保模型的安全性和可解释性。在未来的研究中,这些问题将成为自然语言处理领域关注的焦点,进一步推动大语言模型在各个领域的应用。