通过提示管理和提示流在大规模下评估提示 机器学习博客
大规模评估提示:使用 Amazon Bedrock 的提示管理与提示流程
关键要点
在快速发展的生成式人工智能领域,通过提示工程技巧有效优化提示的必要性越来越明显,以平衡输出质量、响应时间和成本。本文介绍如何利用 Amazon Bedrock 实施自动化提示评估系统,从而提升 AI 生成内容的整体质量。
随着 生成式人工智能 的继续发展,优化提示以提高输出质量、响应时间及降低成本显得尤为重要。提示工程是指通过选择适当的单词、短语和句子等来优化输入,以有效利用基础模型FMs或大型语言模型LLMs满足多种应用需求。在理想情况下,高质量的提示能显著提高生成式 AI 模型的响应质量。
优化过程的核心是评估,其中涉及多个元素。除了对基础模型的常规评估外,提示评估作为开发高质量 AI 驱动解决方案的关键环节,常常充满挑战。许多组织在其应用程序中难以持续创建和有效评估提示,这导致了表现不一致和用户体验差,以及模型生成的非预期响应。
在本文中,我们将展示如何使用 Amazon Bedrock 实施自动化提示评估系统,从而简化提示开发流程并提高 AI 生成内容的整体质量。为此,我们将使用 Amazon Bedrock 提示管理 和 Amazon Bedrock 提示流程 系统地评估生成式 AI 应用程序中的提示。
提示评估的重要性
在解释技术实现之前,我们简要讨论一下提示评估的重要性。在构建和优化提示时,通常需要考虑关键方面:
关键要素描述质量保证评估提示有助于确保你的 AI 应用始终产生高质量、相关性强的输出。性能优化通过识别和优化有效的提示,你可以提高生成式 AI 模型的整体性能,包括降低响应延迟和提高吞吐量。成本效率更好的提示能够更高效地使用 AI 资源,从而可能降低模型推理相关的成本。用户体验优化后的提示能产生更准确、个性化和有帮助的 AI 生成内容,提升最终用户体验。针对这些方面优化提示是一个迭代过程,需要进行评估以推动对提示的调整。从某种程度上说,这意味着理解给定提示和模型结合的有效性,以达到所需的答案。
在我们的示例中,我们实施一种名为“LLM 作为评判者”的方法,即使用一个 LLM 根据预定义标准评估提示及其响应。提示的评估与其回应的性质往往是主观的,但采用 LLM 作为评判者的系统性方法允许我们用数值评分来量化这一过程。这有助于标准化和自动化组织的提示生命周期,而且也是该方法为何成为业内最常用的提示评估方式之一的原因。
让我们探讨一下如何使用 Amazon Bedrock 和 LLM 作为评判者对提示进行评估的示例解决方案。完整的代码示例可以在 amazonbedrocksamples 中找到。
前提条件
在这个示例中,你需要以下条件:
一个 AWS 账户,以及一个拥有 AWS 身份与访问管理 (IAM) 角色的用户,该角色获得了使用 Amazon Bedrock 的权限。有关指导,请参考 快速开始 Amazon Bedrock 中的说明。确保角色包含使用 Amazon Bedrock 的提示流程所需的权限,如 Amazon Bedrock 提示流程的前提条件 所述。对用于调用和评估的模型具有访问权限。具体的权限管理可以参考 管理 Amazon Bedrock 基础模型的访问权限。设置评估提示
要使用 Amazon Bedrock 提示管理创建评估提示,请按照以下步骤操作:
在 Amazon Bedrock 控制台中,在导航面板选择 提示管理,然后选择 创建提示。输入你的提示的 名称,例如 promptevaluator,并输入描述,比如 “用于评估提示响应的提示模板,使用 LLM 作为评判者。” 选择 创建。在 提示 字段中,编写你的提示评估模板。示例模板如下所示,可以根据具体评估需求进行调整。
你是一个生成 AI 模型提示及答案的评估者。请根据 标签内的输入提示、 标签内的输出答案、 标签内的提示评估标准,以及 标签内的答案评估标准进行考虑。
{{input}}
{{output}}
提示应清晰、直接且详细。 问题、任务或目标应解释清楚,并符合语法要求。 包含示例的提示效果更佳。 指定角色或设置上下文的提示效果更佳。 提供关于预期答案格式和语气的详细信息的提示效果更佳。
答案应正确、结构合理且技术上完整。 答案不可有任何幻觉或虚构内容,且不可有毒性内容。 答案需符合语法要求。 答案应与提示中的问题或指令完全一致。
对生成 AI 模型在 中提供的答案进行评分,范围为 0 至 100,依据 ;任何幻觉,即使是微小的,也应会显著影响评估分数。还需对传递给生成 AI 模型的 中的提示进行评分,范围为 0 至 100,依据 提供。仅以 JSON 格式回复,内容如下: answerscore 键的值为评估答案时所给的分数。 promptscore 键的值为评估提示时所给的分数。 justification 键,说明对答案和提示的评估理由;确保在此部分明确包含任何错误或幻觉。 input 键,内容为 标签的内容。 output 键,内容为 标签的内容。 promptrecommendations 键,包含基于评估结果提出的改进提示的建议。回复中不需包含前导语或其他文本,只需 JSON。
在 配置 下,选择用于运行评估的模型。在我们的示例中,选择了 Anthropic Claude Sonnet。选择模型时请确保平衡质量、响应时间和成本。
设定模型的 推理参数。我们建议将 温度 设置为 0,以便进行客观评估并避免幻觉。可以使用 测试变量 和 测试窗口 面板,对评估提示进行示例输入和输出的测试。
当你有了提示草稿后,还可以创建其版本。版本能够让你快速切换不同的提示配置,并为应用更新最适合的版本。若要创建版本,请选择顶部的 创建版本。下图展示了 提示构建器 页面。
设置评估流程
接下来,你需要使用 Amazon Bedrock 提示流程构建评估流程。在我们的示例中,我们使用提示节点。有关支持的节点类型的更多信息,请检查 提示流程中的节点类型 文档。要构建评估流程,请按以下步骤进行:
在 Amazon Bedrock 控制台的 提示流程 下,选择 创建提示流程。输入一个 名称,例如 promptevalflow,输入一个 描述,如“使用 LLM 作为评判者的提示流程评估提示”。选择 使用现有服务角色,从下拉菜单中选择一个角色。选择 创建。这将打开 提示流程构建器。将两个 提示 节点拖动到画布上,并按照以下参数配置这些节点:流程输入输出:名称:document,类型:字符串调用提示节点名称:Invoke节点定义选择模型:要用于评估提示的首选模型消息:{{input}}推理配置:根据你的喜好输入:名称:input,类型:字符串,表达式:data输出:名称:modelCompletion,类型:字符串评估提示节点名称:Evaluate使用你的提示管理中的提示提示:promptevaluator版本:版本 1或你选择的版本选择模型:你评估提示时的首选模型推理配置:如在你的提示中设定输入:名称:input,类型:字符串,表达式:data名称:output,类型:字符串,表达式:data输出名称:modelCompletion,类型:字符串流程输出节点名称:End输入:名称:document,类型:字符串,表达式:data拖动连接点连接节点,如下图所示。
选择 保存。
你可以使用 测试提示流程 面板测试你的提示评估流程。传入一个输入,例如“云计算是什么?用一段文字描述。”应该返回一个与以下示例类似的评估结果 JSON。在代码示例笔记本中,amazonbedrocksamples,我们也将用于调用和评估的模型信息包含在我们的结果 JSON 中。
json{ answerscore 95 promptscore 90 justification 答案清晰且技术上准确地解释了云计算的定义,涵盖了可扩展性、共享资源、按需付费模型和可访问性等关键方面。答案结构良好,符合语法要求,并与提示内容一致。未检测到任何幻觉或有毒内容。提示清晰、直接且解释了任务,但可以通过提供预期答案格式、语气或长度的更多详细信息来进一步改进。 input 云计算是什么?用一段文字描述。 output 云计算是一种交付信息技术服务的模型,其中资源通过基于 Web 的工具从互联网中获取。它是一种高度可扩展的模型,消费者可以访问共享的可配置计算资源池,如应用程序、服务器、存储和服务,管理工作量最小,通常与服务提供者的交互也很少。云计算服务通常以按需付费的方式提供,用户可以从任何有互联网连接的地方访问。近年来,由于其灵活性、成本效益和快速创新的能力,云计算变得越来越受欢迎。 promptrecommendations 为了改进提示,考虑添加期待的答案长度例如,大约 100150 字的一段文字,所需的语气例如,以专业和信息性的语气, 以及应涵盖的特定方面例如,包括云计算服务提供商的示例。 modelInvoke amazontitantextpremierv10 modelEval anthropicclaude3sonnet20240229v10}
如示例所示,我们要求基础模型对提示和模型生成的答案分别进行打分,并要求给予评分的理由和改进提示的建议。这些信息对提示工程师非常有价值,因为这些反馈有助于引导优化实验,并在提示生命周期中做出更明智的决策。
在大规模上实施提示评估
到目前为止,我们探讨了如何评估单个提示。通常,中型到大型组织会处理数十、数百甚至数千种提示变体应用于多个应用,这为大规模自动化提供了良好的机会。为此,你可以在存储在文件中的完整提示数据集上运行流程,如示例笔记本中所示。
此外,你还可以依靠 Amazon Bedrock 提示流程中的其他节点类型来读取和存储 Amazon S3 文件,并实现基于迭代器和收集器的流程。以下图展示这一类型的流程。一旦你建立了一种基于文件的机制来在大规模数据集上运行提示评估流程,你还可以通过将其连接到你首选的持续集成和持续开发CI/CD工具来自动化整个过程。此部分细节超出了本文的范围。
最佳实践和建议
基于我们的评估过程,以下是一些提示优化的最佳实践:
迭代改进 利用评估反馈持续优化提示。提示优化归根结底是一个迭代过程。上下文为王 确保你的提示为 AI 模型提供充足的上下文,以生成准确的响应。根据提示要回答任务或问题的复杂性,可能需要使用不同的提示工程技术。你可以查看 提示工程指南 以及模型提供者所提供的其他资源。具体性重要 你的提示和评估标准尽量具体,这有助于引导模型产生期望输出。测试边界案例 用各种输入评估你的提示以验证其鲁棒性。你可能还需要对同一提示进行多次评估,以比较和测试输出的一致性,这在某些用例中可能非常重要。结论与下一步
通过结合使用 LLM 作为评判者的方法,以及 Amazon Bedrock 提示管理和提示流程,你可以实施一种系统的提示评估与优化方法。这不仅提高了 AI 生成内容的质量和一致性,还简化了开发流程,有潜在降低成本并改善用户体验的可能性。
我们鼓励你进一步探索这些功能,并将评估流程调整到你的具体用例中。当你不断优化提示时,你将能够充分发挥生成式 AI 在应用中的潜力。要开始,请查看本文中使用的完整代码样例。我们期待看到你如何利用这些工具来增强你的 AI 驱动解决方案!
有关 Amazon Bedrock 及其功能的更多信息,请访问 Amazon Bedrock 文档。
关于作者
蓝鲸加速器官方网站Antonio Rodriguez 是亚马逊网络服务AWS的高级生成 AI 专家解决方案架构师。他帮助各类公司解决挑战,拥抱创新,并通过 Amazon Bedrock 创建新的商业机会。除了工作,他还喜欢与家人共度时光和与朋友一起运动。
加载评论
让我们架构吧!流数据处理系统的设计 架构博客
设计流数据处理系统作者:Luca Mezzalira Federica Ciuffo Vittorio Denti 和 Zamira Jaupaj日期:2023年10月26日发布于:Amazon Ma...