记者的提示技巧和最佳实践

in STEEM CN/中文3 months ago

原文:https://generative-ai-newsroom.com/prompting-techniques-and-best-practices-for-journalists-6fa806cde8ec

美联社最近的一项调查显示,人们对将生成式人工智能用于与内容制作相关的任务,如信息收集、数据分析、多媒体内容制作(例如,生成图像)、文本摘要、翻译和转录,兴趣浓厚。显然,大型语言模型(LLM)有可能颠覆记者为新闻媒体创作内容的方式,但为了捕捉到它们的价值,记者需要有效的方法来调整这些模型,以适应各种新闻用例。一种方法是针对新闻任务训练模型,尽管正如我们中的一位最近论证的那样,这可能会很昂贵。另一种更容易上手的方法(尽管也可能需要大量的技能和时间投入)是提示工程

在本文中,我们将描述一些最佳实践,说明如何使用不同的提示技术来控制大型语言模型,以便在新闻任务中获得所需的输出。我们将首先提供一些关于提示工程的背景信息,然后详细阐述几种不同的提示技术,并提供新闻制作中的示例。最后,我们将提出一些关于提示验证和输出质量评估的想法。

什么是提示工程?

提示工程是用户与大型语言模型之间新兴的一种通信技术,用于精心设计问题和指令,以从大型语言模型中 eliciting 出所需的响应。虽然提示工程表面上看起来很简单,但它需要不同提示技术的领域专业知识才能充分发挥大型语言模型的优势。例如,本指南列出了 17 种不同的提示方法,其中一些方法的结构化程度较高,并且涉及的内容较多。此外,不同的模型可能需要不同的提示格式或技术才能获得最佳性能。

有效提示的特点

为了从大型语言模型中获得更好的结果,所有提示都应该以完整的句子表达,并使用特定的语言清楚地传达模型在完成任务时需要遵循(有时需要遵循)的指令集。此外,指示模型在得出结论之前先制定自己的步骤或解决方案证明可以增强模型生成更好输出的能力,尤其是对于需要推理的分析任务。好的提示的另一个关键特征是针对特定任务限定提示的范围。提示一个非常宽泛和开放的任务(例如“制作一个在线新闻网站”)不如将该总体目标分解成子任务并分别处理它们有效。为了最大限度地减少模型偏离其给定指令的可能性,OpenAI 的提示指南建议将复杂的任务分解成子任务,每个子任务都有自己的提示。

一般来说,好的提示的结构包括提示文本上下文(参见 Joe Amditis 的《初学者提示手册》的第 3 节)但是,根据任务的不同,这种结构可以扩展为包含约束条件(例如,指定生成文本的长度)、工具,如访问外部服务或数据源(例如,雅虎财经 API),或其他指令(例如,指定语气或写作风格)。例如,对于需要事实信息的任務,最好在提示的上下文中包含可靠的参考文本,以便为输出提供依据。

在负责任的提示方面,需要注意的是,如果要与第三方人工智能平台(例如 OpenAI 或 Anthropic)共享提示上下文,则需要注意不要在提示上下文中包含机密信息或个人身份信息 (PII)。为了解决 PII 问题,可以使用通用的匿名信息替换特定信息(例如,在提示中将“Walter Smith”替换为“”),然后在收到服务的响应后,可以根据需要将原始名称替换回来。另一种方法是使用本地托管的模型,这样就不会与外部方共享提示上下文。

某些模型还支持使用系统提示,这可以为系统的响应方式(在语气、风格方面)或保持基于上下文中包含的材料奠定总体基调。例如,你可以在系统提示中加入“你的回答总是基于提供给你的特定文档”,以鼓励模型只对你在提示中作为上下文提供的文档中的信息进行操作。然而,与非系统提示一样,重要的是要记住,模型可能并不总是严格按照指令行事,因此仍然需要检查输出。

接下来,我们将讨论如何将这些特征应用于不同的提示技术。

主要提示技术概述

零样本提示

零样本提示是一种指示模型完成任务的技术,无需为其提供任务或其输出的示例或演示(即零样本提示中的“零”指的是提供的示例为零)。这种提示技术可用于需要构思(例如,头脑风暴访谈问题,如图 1 所示)、内容生成(例如,标题草稿)和翻译的任务。但是,这种技术需要对基本提示进行多次迭代,以包含达到预期输出所需的详细信息。这可能是由于大型语言模型的统计特性,使得在完成任务时很难一致地预测模型的确切响应和格式。

对于需要事实性答案的用例(例如最新新闻摘要),零样本提示的局限性在于,在没有其他上下文的情况下,它仅依赖于模型的训练数据来提供其响应。因此,每当使用包含最少指令的零样本提示时,记者都需要特别注意模型生成的输出,因为它可能只反映模型训练数据中的知识,而这些知识可能已经过时。确保模型生成的文本与手头的任务相关的一种方法是在提示中包含相关的上下文,例如在要求模型根据文章的开头段落生成引人入胜的标题时,应包含该段落。在某些情况下,像 GPT-4o 这样的最先进的模型也可以使用零样本提示,然后通过浏览互联网来访问最新的资源以提供上下文(图 2A 和 2B)。

图 1. 在这个例子中,我们要求模型为我们提供一个问题,用于采访《芝加哥论坛报》的主编 (EIC)。我们提供了有关采访内容的详细信息,但没有提供有关问题格式的任何详细信息。这使得模型可以决定如何构建问题。

图 2A。GPT4-o 输出示例,演示了模型行为如何与用户请求不完全一致。这在模型试图报告芝加哥的“文化活动”而不是“最新新闻”时表现得很明显。

图 2B。GPT-4o 在编写包含“提供来源链接”请求的有效提示时的输出示例。与图 2A 相比,此提示生成的文本产生了更多信息,其中包括来自三个本地来源的事件和本地新闻的混合。

少量样本提示

对于需要更多细节、结构和格式化响应的用例,少量样本提示提供了一种替代零样本提示的方法。少量样本提示建立在零样本提示的基础上,通过在提示上下文中包含任务示例或输出格式(如图 3 所示)。这使得模型能够识别它应该在生成的文本中反映的所需模式和行为。例如,记者可以通过向大型语言模型提供一些正面和负面评论的示例以及它们对应的标签,来使用少量样本提示对用户对新闻文章的评论进行分类。这可以使记者能够以一种可访问的方式了解受众对新闻文章的反应。类似地,少量样本提示对于信息提取(例如,提取命名实体,如人物或地点)或分类(例如,根据模式标记内容)用例也很有用。有效的少量样本提示的主要挑战是开发示例,向模型演示如何完成任务,以便它能够理想地概括这些示例。

图 3. 一个说明少量样本提示的示例,在提示上下文中包含四个示例,以及它们如何帮助告知模型我们希望如何对正面和负面评论进行分类。如图所示,模型准确地对提供给它的三条评论进行了分类。

思维链提示 (CoT)

思维链提示技术使模型能够通过中间步骤“推理”复杂的任务。然而,它并不是我们迄今为止描述的其他提示技术的互斥技术。在其最基本的形式中,你可以将“让我们一步一步地思考”附加到任何提示中,包括零样本和少量样本提示。之所以有效,是因为在处理任务之前,模型会输出上下文,这可以进一步帮助确定输出的基础。这种提示技术已被证明对分析任务很有用,例如回答文本中的定量问题。它还可以与少量样本提示相结合,以在需要推理才能响应的更复杂任务上获得更好的结果。

如图 4A 和 4B 所示,与仅对同一任务使用零样本提示相比,指示模型使用零样本提示和 CoT 相结合的一步一步思考会产生更精确的答案,其中包括有关模型推理步骤的详细信息。中间输出还有一个额外的好处,那就是让人们可以了解模型是如何得出最终输出的。然而,需要记住的一件事是,尤其是在使用 API 提示第三方模型时,由于 CoT 提示会产生更多(中间)输出标记,因此成本可能会更高。

图 4A。使用零样本提示为文章生成标题的示例,该标题使用 人工智能权利法案 的开头段落。

图 4B。使用 CoT 生成有关人工智能权利法案的文章标题的示例。与 4A 相比,模型输出了基于法案摘录生成标题的一系列步骤。此外,该标题似乎比 4A 中显示的标题更具体,因为它包含拜登政府作为一个命名实体,并且将偏见描述为该权利法案旨在克服的一个特定维度。

有效控制提示质量

有效控制提示质量有两种基本方法:(1) 提前验证提示以确定其稳健性,以及 (2) 根据各种质量标准评估特定任务用例所需的输出。

提示验证

虽然编写提示可能是开始利用大型语言模型能力的最简单方法,但可能需要大量的迭代和时间来改进提示,使其能够产生高质量的输出,你可能愿意将其纳入到更大的工作流程中。从这个意义上说,考虑开发提示的验证过程可能会有所帮助:你如何知道它是否是一个有效的提示?

我们建议采用一种方法,该方法需要你为要针对的每个任务整理两个数据集:一个数据集用于评估提示在开发过程中的性能——开发集——另一个独立的数据集——测试集——仅在你尽可能地优化了开发集上的提示后,才使用该数据集评估提示。理想情况下,这两个数据集都是随机样本,因此在任何一个数据集中都没有潜在的选择偏差。拥有两个数据集的好处是,可以帮助你了解针对开发集开发和改进的提示是否也能泛化到测试集,并在测试集中仍然有效。你的开发集和测试集越大、越多样化,你就越能确信你的提示在各种情况下都能很好地工作。但是请注意,每次你更换模型或提供商更新其模型时,都需要重新运行此验证!

作为提示验证过程的一部分,还需要考虑大型语言模型在生成与每次提示迭代相对应的文本时的统计差异。虽然本博文中包含的示例是使用 ChatGPT 用户界面生成的,但我们建议在开发和验证提示时使用 OpenAI 的 Playground,因为它允许用户控制对这种验证有用的几个参数。

可能最重要的参数是温度,它控制生成文本中的随机性和确定性程度大型语言模型通过一次生成一个标记来工作,更高的温度使模型有更大的余地从更多的下一个标记中进行选择。对于 OpenAI 的模型,此值的默认值为 1,范围为 0 到 2。对于应该严格基于作为提示一部分提供的上下文的任務(例如,确保生成的摘要不偏离底层文档),你应该将温度设置得更接近于零。或者,在可能需要更“有创意”或“更详细”的文本的用例中,例如头脑风暴或标题构思,将温度值设置得更接近 2 应该会导致同一提示生成更多样化的文本。当然,温度越高,输出的差异就越大,因此你需要运行更多次试验来评估有效性。

提示验证是提示工程中被低估的复杂性之一,在将精心设计的提示大规模用于特定任务之前,必须考虑到这一点。与此同时,一旦以系统的方式进行了验证,你就可以更有信心地在组织内共享提示,从而减少新闻编辑室中的每个人都提出自己的版本而造成的重复工作。此外,通过建立基准开发和测试数据集来记录提示的开发过程,将有助于在各种任务和新闻编辑室中实现更透明、可重复和可扩展的提示工程和验证实践。

评估人工智能生成内容的质量

到目前为止,许多使用大型语言模型的人都知道,它们容易产生幻觉——由于生成输出的方式具有统计性,因此可能会编造不符合现实的信息。如果在新闻工作中不考虑到这一点,可能会对新闻的完整性和可信度产生影响。

虽然评估标准可能会根据大型语言模型的使用任务而有所不同,但我们建议记者至少要考虑与信息准确性偏差相关的维度,包括政治偏差和代表性偏差(群体代表过多或不足)。在评估过程中,还可以考虑与生成文本的语言相关的其他定性维度,例如连贯性(生成的文本中是否有任何不完整或不清楚的句子?)、粒度(生成的文本的语言有多详细?)和相关性(生成的文本与提示中描述的请求的相关性如何?)。当然,这些只是你可以评估的众多标准中的一部分,我们鼓励新闻行业制定更多特定于任务的标准,以评估大型语言模型输出的成功。一种可能的前进方向是,记者与技术专家或社会科学家合作,建立针对各种新闻相关任务的稳健和可信的评估指标和标准。

但是,即使我们建议将此类评估作为提示倾向于总体上产生更高质量输出的指标,但从负责任的使用角度来看,在许多用例中保持人工参与循环仍然是谨慎的做法。当模型的输出可能直接呈现给受众时,这一点对于准确性等维度尤为重要。

Sort:  

Upvoted! Thank you for supporting witness @jswit.

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.028
BTC 59880.83
ETH 2301.55
USDT 1.00
SBD 2.50