公司动态

在 Amazon Bedrock 上实现高级提示工程 机器学习博客

高级提示工程与亚马逊 Bedrock 的实现

关键要点

在这篇文章中,我们将深入探讨如何通过高效的提示工程优化用户体验,特别关注于亚马逊 Bedrock 所提供的模型。我们将介绍高级提示技术及其最佳实践,理解如何有效构建提示以期得出高质量和相关的响应。具体包括使用 COSTAR 框架、连锁思维提示及树状思维提示 (ToT)。此外,我们还将讨论使用提示链和提示目录等工具以提高工作效率,并分析如何防止提示滥用和加强安全性。

尽管生成型人工智能AI能够模仿人类行为,但它通常需要详细的指令才能生成高质量和相关的内容。提示工程是构建这些输入称为提示的过程,这些输入引导基础模型FMs和大型语言模型LLMs生成所需的输出。提示模板也可以用作构建提示的结构。通过仔细制定这些提示和模板,开发者可以利用FMs的强大功能,促进自然和上下文相关的交流,从而提升整体用户体验。提示工程的过程也是创造力与深入理解模型性能和局限性之间的微妙平衡。制作出能引导这些FMs产生清晰且期望响应的提示,既是一门艺术,也是一门科学。

鲸鱼加速器 安卓蓝鲸

本文提供了有价值的见解和实用示例,以帮助平衡和优化提示工程工作流程。我们特别关注于为亚马逊 Bedrock 提供的模型实施先进的提示技术和最佳实践。亚马逊 Bedrock 是一项完全托管的服务,通过单一API 提供来自 Anthropic、Cohere、Meta、Mistral AI、Stability AI 和亚马逊等领先 AI 公司的高性能 FMs。借助这些提示技术,开发者和研究人员能够充分利用亚马逊 Bedrock 的所有能力,实现清晰、简练的沟通,同时降低潜在风险或不愉快的输出。

高级提示工程概述

提示工程是一种有效利用FMs强大功能的方式。您可以在FMs的上下文窗口中传递指令,允许将特定上下文传递到提示中。通过一系列的问题、陈述或详细指令与FM交互,您可以根据您想要实现的输出的特定上下文来调整FM输出的行为。

通过构建设计良好的提示,您还可以增强模型的安全性,确保其生成与您的目标和道德标准相符合的输出。此外,提示工程允许您利用领域特定知识和外部工具增强模型的能力,而无需进行细致的调整或重新训练模型参数。无论是寻求提升客户参与度、简化内容生成,还是开发创新的 AI 驱动解决方案,充分利用提示工程的能力都可以为生成型 AI 应用带来竞争优势。

有关提示工程基础知识的详细信息,请参见 什么是提示工程?

COSTAR 提示框架

COSTAR 是一种结构化方法论,引导您制定有效的提示。通过逐步的方法,您可以设计出符合从 FM 中生成所需类型响应的提示。COSTAR 的优雅之处在于其灵活性无论您采用何种具体技术或方法,它都为提示工程提供了坚实的基础。无论您是使用少量实例学习 (fewshot learning)、连锁思维提示CoT还是其他方法在后文中会详细介绍,COSTAR 框架为您提供了一种系统的方法来制定提示,从而释放FMs的全部潜力。

COSTAR 代表以下内容:

关键要素描述上下文提供背景信息,帮助FM理解特定场景并提供相关响应目标清晰定义任务,使FM专注于实现该特定目标风格指定期望的写作风格,例如模拟某个著名人物或专业专家,以引导FM使其响应与您的需求保持一致语气设置语气确保响应与所需情感相符合,无论是正式、幽默还是同情受众确定目标受众,使FM的响应针对特定群体如专家或初学者进行调整响应提供响应格式,例如列表或 JSON,以确保FM输出符合后续任务所需的结构

通过将提示创建过程分解为不同阶段,COSTAR 使您能够系统地优化和细化您的提示,确保每个方面都经过仔细考虑并与您的具体目标对齐。这种严谨和深思熟虑的程度最终转化为来自FM 的更准确、更连贯和更有价值的输出。

连锁思维提示

连锁思维 (CoT) 提示是一种通过将复杂问题或任务分解为更小、更易于管理的步骤来提高FM推理能力的方法。它模仿人类的推理和解决问题方式,通过系统地分解决策过程来获得答案。使用传统提示,语言模型试图直接基于提示提供最终答案。然而,在许多情况下,这种方法可能导致次优或不正确的响应,尤其是对于需要多步骤推理或逻辑推导的任务。

CoT 提示通过引导语言模型明确列出其逐步思考过程称为推理链,在到达最终答案之前,解决了这个问题。这种方法使得模型的推理过程更加透明和可解释。研究表明,这种技术在需要多步骤推理、逻辑推导或复杂问题解决的任务上显著提高了性能。总体而言,CoT 提示是一种强大的技术,能够在复杂推理任务中利用FMs的优势,同时减轻其弱点,最终产生更可靠和合理的输出。

让我们来看看一些CoT提示的例子及其不同变体。

零样本 CoT 提示

第一个示例是零样本 CoT 提示。零样本提示是一种在初步提示中不包含所期望输出示例的技术。

以下示例使用Anthropic 的 Claude 在亚马逊 Bedrock 中。XML 标签用于提供更进一步的上下文。虽然 Anthropic Claude 可以以各种格式理解提示,但其训练中使用了XML标签。在这种情况下,如果使用这种标记结构为提示添加进一步说明,通常能获得更好的质量和延迟结果。有关如何提供附加上下文或指令的更多信息,请参阅您正在使用的FM的相关文档。

您可以使用亚马逊 Bedrock 发送Anthropic Claude 文本补全 API或Anthropic Claude 消息 API推理请求,如以下示例所示。查看Anthropic Claude 模型的完整文档。

我们输入以下提示:

上下文 Amazoncom 关键事实 Amazoncom 是在1994年由杰夫贝索斯创建的。 Amazoncom 最初作为一个电子商务平台,但现已多元化进入其他多种商业领域。 Amazoncom 在全球运营众多配送中心和仓库。 指令 按照思考步骤为 Amazoncom 提供基于上下文所分享信息的总结。 在 ltthinkinggt 标签中包含您的思考,并将实际总结作为答案。

我们得到了如下回应:

好吧,我已获得关于 Amazoncom 的一些关键事实。以下是我将采取的步骤以提供摘要:

重述提供的关键事实: Amazoncom 是在1994年由杰夫贝索斯创建的。 Amazoncom 最初作为一个电子商务平台,但现已多元化进入其他多种商业领域。 Amazoncom 在全球运营众多配送中心和仓库。包括其他分析中的事实: 除了其核心的电子商务业务外,Amazoncom 还进入了云计算亚马逊网络服务、医疗保健Amazon Care和卫星互联网Project Kuiper等多个行业。 Amazon Prime,是公司的订阅服务,为会员提供免费两天发货和访问Prime视频以观看电影和电视剧。总结这些发现成一个摘要段落,突出亚马逊的整体业务。答案 1994年由杰夫贝索斯创建的 Amazoncom 从一个在线书店成长为全球电子商务巨头。其电商平台提供数百万种产品,并得到配合众多配送中心的物流网络支持。亚马逊已扩展至 cloud computing,开创了这一概念,并通过Prime Video等数字流媒体行业,以及在医疗保健和卫星互联网方面取得进展。其 Prime 订阅服务提供免费送货、流媒体访问和其他福利。这些服务推动了公司在电子商务和技术领域的持续优势。

如示例所示,FM使用 标签提供了推理过程以生成最终答案。这一附加上下文使我们能够通过调整提示说明进行进一步实验。

少样本 CoT 提示

少样本提示 是一种在初步提示中包含期望输出示例的技术。以下示例包含一个简单的 CoT 示例响应,以帮助模型回答后续问题。少样本提示示例可以在提示目录或模板中定义,这在后面将会讨论。

以下是我们的标准少样本提示而不是 CoT 提示:

问题 珍妮有3只狗和2只猫。她去犬舍又买了一只狗。她现在有多少只狗和猫?

答案 答案是4只狗和2只猫。

问题 罗伯有6条金鱼和2条彩虹鱼。他去水族馆捐赠了2条金鱼和1条彩虹鱼。罗伯还剩多少条鱼?

我们得到了如下回应:

答案 罗伯还有5条鱼。

尽管这个回答是正确的,但我们可能想知道剩下的金鱼和彩虹鱼的数量。因此,我们需要更具体地定义输出的结构。我们可以通过添加我们想要FM镜像的思维过程的引导。

以下是我们的 CoT 提示少样本:

问题 珍妮有3只狗和2只猫。她去犬舍又买了一只狗。她现在有多少只狗和猫?

答案 珍妮起初有3只狗和2只猫。她又买了一只狗,所以3 1 = 4 只狗。珍妮现在有4只狗和2只猫。

问题 罗伯有6条金鱼和2条彩虹鱼。他去水族馆捐赠了2条金鱼和1条彩虹鱼。罗伯还剩多少条鱼?

我们得到了以下正确的回应:

答案 罗伯起初有6条金鱼和2条彩虹鱼。他捐献了2条金鱼和1条彩虹鱼,所以6 2 = 4 条金鱼,2 1 = 1 条彩虹鱼。罗伯现在有4条金鱼和1条彩虹鱼。

自一致性提示

为了进一步提高您的 CoT 提示能力,您可以生成多个响应并选择最常见的输出。这被称为 自一致性提示。自一致性提示需要通过少样本 CoT 采样多条不同的推理路径。然后使用这些生成的结果来选择最一致的答案。与标准 CoT 相比,自一致性与 CoT 一起使用被证明能提供更好的效果,因为从多个响应中选择通常会导致更一致的解决方案。

如果响应不确定或结果相互矛盾,可以由人或者一个更高层次的FM见本文后文的提示链部分来审查每个结果并选择最合逻辑的选择。

有关自一致性提示与亚马逊 Bedrock 的详细信息,请参阅通过自一致性提示增强亚马逊 Bedrock 上生成语言模型的性能。

树状思维提示

树状思维ToT提示是一种通过将更大的问题陈述分解为树状格式每个问题被划分为较小的子问题来提高FM推理能力的技术。您可以将其视为一种树状结构:树的主干表示主要主题开始,然后分支成更小的枝干更小的问题或主题。

这种方法允许FMs自我评估。该模型被提示逐一推理每个子主题,并组合解决方案以得出最终答案。ToT 输出与遍历算法例如广度优先搜索BFS和深度优先搜索DFS结合,使您能够在树的每个主题中前后遍历。根据树状思维:用大型语言模型进行深思熟虑的问题解决,ToT 的表现显著优于其他提示方法。

使用 ToT 的一种方法是要求 LLM 评估树中每个思维是否逻辑合理、可能或不可能。如果您正在解决一个复杂问题,也可以应用 ToT 提示。例如,如果您问 FM,“气候变化的影响是什么?”您可以使用ToT来帮助将该主题分解为诸如“列出环境影响”和“列出社会影响”的子主题。

以下示例使用 ToT 提示技术,让 Claude 3 Sonnet 解决球的隐藏位置。FM 可以对ToT 输出子问题15进行处理并制定出最终回答。

我们使用以下提示:

您能否通过使用树状思维技术来解决这个问题?

上下文 鲍勃在客厅。 他走到厨房,带着一个杯子。 他把球放在杯子里,将杯子带到卧室。 他把杯子倒过来,然后走到花园。 他把杯子放在花园里,然后走向车库。问题 球在哪里?

在 Amazon Bedrock 上实现高级提示工程 机器学习博客

我们获取了以下响应:

要使用树状思维技术解决这个问题,先将其分解为较小的子问题:

问题 球在哪里?1 鲍勃最初将球放在哪里? a 鲍勃把球放在厨房的杯子里。2 鲍勃从杯子里拿出球了吗? a 没有,上下文中没有提到鲍勃从杯子里拿出球。3 鲍勃把杯子带到了哪里? a 鲍勃把杯子带到了卧室。 b 鲍勃在卧室把杯子倒过来。 i 如果球仍在杯子里,当它被倒过来时会掉出来。 ii 因此,球最有可能在卧室里。 c 随后,鲍勃把杯子带到花园并把它放下。 i 由于球在卧室的杯子里掉出来,所以它不会在花园的杯子里。4 鲍勃在卧室把杯子倒过来后是否拿起了球? a 没有,上下文中没有提到鲍勃拿起球。5 因此,根据提供的信息,球最有可能的地点是在卧室。

答案 通过逐步分解问题并推理每个子问题,我们可以得出结论,球最有可能在卧室,因为鲍勃在那儿把杯子倒过来,球会在那时掉出杯子。

使用 ToT 提示技术,FM已将“球在哪里?”的问题分解成一组更易回答的子问题。与零样本直接提问如“球在哪?”相比,这种提示方法通常会产生更合逻辑的结果。

CoT 和 ToT 的区别

下面的表格总结了 CoT 和 ToT 提示的关键区别。

CoTToT结构CoT 提示遵循线性推理步骤链。深度CoT 可以使用自一致性方法以增加理解。复杂度CoT 是一种更简单的方法,所需的努力少于 ToT。可视化CoT 理解简单,因为它遵循线性轨迹。如果使用自一致性,可能需要多次运行。