随着企业越来越拥抱生成式人工智能,他们在管理相关成本方面面临挑战。随着跨项目和多个业务线对生成式人工智能应用程序的需求激增,准确分配和跟踪支出变得更加复杂。组织需要根据业务影响和重要性优先考虑其生成式人工智能支出,同时保持跨客户和用户群体的成本透明度。这种可见性对于为生成式人工智能产品设置准确的定价、实施退款以及建立基于使用情况的计费模型至关重要。
如果没有可扩展的成本控制方法,组织就会面临预算外使用和成本超支的风险。手动支出监控和定期使用限制调整效率低下,并且容易出现人为错误,从而导致潜在的超支。虽然多种 Amazon Bedrock 资源支持标记– 包括预置模型、自定义模型、代理和代理别名、模型评估、提示、提示流、知识库、批量推理作业、自定义模型作业和模型复制作业 – 以前没有按需标记的功能基础模型。这种限制增加了生成式人工智能计划的成本管理的复杂性。
为了应对这些挑战,亚马逊基岩已经推出了组织可以使用的功能标签按需模型并监控相关成本。组织现在可以使用以下标签标记所有 Amazon Bedrock 模型AWS 成本分配标签,使使用与特定的组织分类法(例如成本中心、业务单位和应用程序)保持一致。为了明智地管理他们的生成人工智能支出,组织可以使用诸如AWS 预算设置基于标签的预算和警报来监控使用情况,并接收异常或预定义阈值的警报。这种可扩展的编程方法消除了低效的手动流程,降低了超额支出的风险,并确保关键应用程序获得优先级。增强对人工智能相关费用的可见性和控制,使组织能够最大限度地利用其生成式人工智能投资并促进创新。
推出 Amazon Bedrock 应用程序推理配置文件
亚马逊基岩最近推出跨区域推理,实现跨 AWS 区域自动路由推理请求。该功能使用系统定义的推理概况(由 Amazon Bedrock 预定义),它配置来自不同区域的不同模型 Amazon 资源名称 (ARN),并将它们统一到单个模型标识符(模型 ID 和 ARN)下。虽然这增强了模型使用的灵活性,但它不支持附加自定义标签来跟踪、管理和控制跨工作负载和租户的成本。
为了弥补这一差距,Amazon Bedrock 现在推出了应用程序推理配置文件是一项新功能,允许组织应用自定义成本分配标签来跟踪、管理和控制其 Amazon Bedrock 按需模型成本和使用情况。此功能使组织能够为 Bedrock 基础模型创建自定义推理配置文件,添加特定于租户的元数据,从而简化各种 AI 应用程序的资源分配和成本监控。
创建应用程序推理配置文件
应用程序推理配置文件允许用户为推理请求和资源管理定义自定义设置。这些配置文件可以通过两种方式创建:
- 单一模型 ARN 配置:使用单个按需基础模型 ARN 直接创建应用程序推理配置文件,从而允许使用所选模型进行快速设置。
- 从系统定义的推理配置文件复制:复制现有的系统定义的推理模板来创建应用推理模板,该推理模板将继承跨区域推理能力等配置,以增强可扩展性和弹性。
应用程序推理配置文件 ARN 具有以下格式,其中推理配置文件 ID 组件是 Amazon Bedrock 在创建配置文件时生成的唯一 12 位字母数字字符串。
arn:aws:基岩:<区域>:<帐户ID>:应用程序推理配置文件/<推理配置文件 ID>
系统定义与应用程序推理配置文件的比较
系统定义的推理配置文件和应用程序推理配置文件之间的主要区别在于它们类型
ARN 命名空间内的属性和资源规范:
- 系统定义的推理配置文件:它们的类型属性为
系统定义
并利用推理概要
资源类型。它们旨在支持跨区域和多模型功能,但由 AWS 集中管理。{���"inferenceProfileArn": "arn:aws:bedrock:us-east-1:<帐户ID>:inference-profile/us-1.anthropic.claude-3-sonnet-20240229-v1:0","inferenceProfileId": "us-1.anthropic.claude-3-sonnet-20240229-v1:0","inferenceProfileName": "US-1 Anthropic Claude 3 Sonnet",“状态”:“活动”,“类型”:“SYSTEM_DEFINED”,���}
- 应用推理配置文件:这些配置文件有一个
类型
的属性应用
并使用应用程序推理配置文件
资源类型。它们是用户定义的,提供对模型配置的精细控制和灵活性,并允许组织使用 AWS Identity and Access Management (IAM) 通过基于属性的访问控制 (ABAC) 定制策略。这使得更精确的 IAM 策略创作能够更安全、更高效地管理 Amazon Bedrock 访问。{���"inferenceProfileArn": "arn:aws:bedrock:us-east-1:<帐户ID>:应用程序推理配置文件/<自动生成的ID>“,“推理配置文件 ID”:<自动生成的ID>,“推理配置文件名称”:<用户定义的名称>,“状态”:“活动”,“类型”:“应用程序”���}
这些差异在集成时很重要亚马逊 API 网关或其他 API 客户端,以帮助确保正确的模型调用、资源分配和工作负载优先级。组织可以根据个人资料应用定制策略类型
,增强分布式人工智能工作负载的控制和安全性。两种模型如下图所示。
建立成本管理的应用程序推理配置文件
想象一下,一家保险提供商踏上了通过生成式人工智能增强客户体验的旅程。该公司发现了自动化索赔处理的机会,提供个性化的政策建议,并为不同地区的客户改进风险评估。然而,为了实现这一愿景,组织必须采用强大的框架来有效管理其生成式人工智能工作负载。
该旅程从保险提供商创建适合其不同业务部门的应用程序推理配置文件开始。通过分配 AWS 成本分配标签,组织可以有效监控和跟踪其 Bedrock 支出模式。例如,索赔处理团队建立了一个应用程序推理配置文件,其中包含以下标签:部门:索赔
,团队:自动化
, 和应用程序:claims_chatbot
。这种标记结构对成本进行分类,并允许根据预算评估使用情况。
用户可以使用 Bedrock API 或 boto3 SDK 管理和使用应用程序推理配置文件:
- 创建推理配置文件:启动新的推理配置文件,允许用户配置该配置文件的参数。
- 获取推理配置文件:检索特定推理配置文件的详细信息,包括其配置和当前状态。
- 列出推理配置文件:列出用户帐户内所有可用的推理配置文件,提供已创建的配置文件的概述。
- 标签资源:允许用户将标签附加到特定的 Bedrock 资源(包括应用程序推理配置文件),以便更好地组织和成本跟踪。
- 资源列表标签:获取与特定基岩资源关联的标签,帮助用户了解其资源的分类方式。
- 取消标记资源:从资源中删除指定标签,以便管理资源组织。
- 使用应用程序推理配置文件调用模型:
-
- 匡威 API:使用指定的推理配置文件调用模型进行对话交互。
- ConverseStream API:与 Converse API 类似,但支持实时交互的流式响应。
- 调用模型API:针对一般用例调用具有指定推理配置文件的模型。
- InvokeModelWithResponseStream API:调用模型并流式传输响应,对于处理大数据输出或长时间运行的流程很有用。
请注意,无法通过 AWS 管理控制台访问应用程序推理配置文件 API。
使用 Converse API 通过应用程序推理配置文件调用模型
以下示例演示了如何创建应用程序推理配置文件,然后调用 Converse API 以使用该配置文件进行对话 –
def create_inference_profile(profile_name,model_arn,标签):"""使用基本模型 ARN 创建推理配置文件"""响应 = bedrock.create_inference_profile(inferenceProfileName=配置文件名称,描述=“测试”,modelSource={'copyFrom': model_arn},标签=标签)打印(“CreateInferenceProfile响应:”,响应['ResponseMetadata'] ['HTTPStatusCode']),打印(f“{响应}\n”)返回响应# 创建推理配置文件print("测试 CreateInferenceProfile...")标签 = [{'key': 'dept', 'value': 'claims'}]base_model_arn = "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0"Claims_dept_claude_3_sonnet_profile = create_inference_profile(“claims_dept_claude_3_sonnet_profile”,base_model_arn,标签)# 提取 ARN 并检索应用程序推理配置文件 IDClaims_dept_claude_3_sonnet_profile_arn = Claims_dept_claude_3_sonnet_profile['inferenceProfileArn']def converse(model_id, messages):"""使用 Converse API 与指定模型进行对话"""响应 = bedrock_runtime.converse(modelId=model_id,消息=消息,推理配置={'maxTokens': 300, # 如果需要指定最大令牌数})status_code = response.get('ResponseMetadata', {}).get('HTTPStatusCode')print("反向响应:", status_code)parsed_response = parse_converse_response(响应)打印(解析响应)返回响应# 具有应用程序推理配置文件的 Converse API 示例print("\n测试 Converse...")Prompt = "\n\n人类:告诉我有关 Amazon Bedrock 的信息。\n\n助理:"messages = [{“角色”:“用户”,“内容”:[{“文本”:提示}]}]响应 = 交谈(claims_dept_claude_3_sonnet_profile_arn,消息)
使用应用程序推理配置文件进行标记、资源管理和成本管理
应用程序推理配置文件中的标记允许组织通过特定的生成式人工智能计划分配成本,确保精确的费用跟踪。应用程序推理配置文件使组织能够在创建时应用成本分配标签,并通过现有的支持附加标签标签资源
和取消标记资源
API,允许元数据与各种 AWS 资源关联。自定义标签,例如项目ID
,成本中心
,型号版本
, 和环境
帮助对资源进行分类,提高成本透明度,并允许团队根据预算监控支出和使用情况。
通过应用程序推理配置文件和成本分配标签可视化成本和使用情况
利用成本分配标签等工具AWS 预算,AWS 成本异常检测,AWS 成本管理器,AWS 成本和使用情况报告(当前),和亚马逊云观察为组织提供支出趋势洞察,帮助及早发现和解决成本高峰,以保持在预算范围内。
借助 AWS Budgets,组织可以设置基于标签的阈值,并在支出接近预算限制时接收警报,从而提供主动方法来保持对 AI 资源成本的控制并快速解决任何意外激增的问题。例如,通过将以下标签应用到应用程序推理配置文件,可以将每月 10,000 美元的预算应用于销售部门支持团队的特定聊天机器人应用程序:部门:销售
,团队:支持
, 和应用程序:聊天应用程序
。AWS 成本异常检测还可以监控标记资源的异常支出模式,从而通过自动识别和标记不规则成本,更轻松地操作成本分配标签。
以下 AWS Budgets 控制台屏幕截图说明了超出的预算阈值:
为了进行更深入的分析,AWS Cost Explorer 和 CUR 使组织能够每天、每周和每月分析标记的资源,支持有关资源分配和成本优化的明智决策。通过基于元数据属性(例如标签键/值和 ARN)可视化成本和使用情况,组织可以获得可操作的、精细的支出视图。
以下 AWS Cost Explorer 控制台屏幕截图展示了按标签键和值筛选的成本和使用情况图表:
以下 AWS Cost Explorer 控制台屏幕截图展示了按 Bedrock 应用程序推理配置文件 ARN 筛选的成本和使用情况图表:
组织也可以使用亚马逊云观察监控 Bedrock 应用程序的运行时指标,提供有关性能和成本管理的更多见解。指标可以通过应用程序推理配置文件绘制成图表,团队可以根据标记资源的阈值设置警报。这些警报触发的通知和自动响应可以实时管理成本和资源使用情况,防止预算超支并保持生成人工智能工作负载的财务稳定性。
以下 Amazon CloudWatch 控制台屏幕截图突出显示了按 Bedrock 应用程序推理配置文件 ARN 筛选的 Bedrock 运行时指标:
以下 Amazon CloudWatch 控制台屏幕截图突出显示了由 Bedrock 应用程序推理配置文件 ARN 过滤的调用限制警报:
通过结合使用标记、预算、异常检测和详细的成本分析,组织可以有效地管理其人工智能投资。通过利用这些 AWS 工具,团队可以清晰地了解支出模式,从而做出更明智的决策并最大化其生成式 AI 计划的价值,同时确保关键应用程序保持在预算范围内。
根据模型调用的标签检索应用程序推理配置文件 ARN
组织在调用 Amazon Bedrock API(包括模型推理调用)时通常使用生成式 AI 网关或大型语言模型代理。随着应用程序推理配置文件的引入,组织需要检索推理配置文件 ARN 以调用按需基础模型的模型推理。有两种主要方法可以获取适当的推理配置文件 ARN。
- 静态配置方式:此方法涉及在中维护静态配置文件AWS Systems Manager 参数存储或者AWS 秘密管理器将租户/工作负载密钥映射到其相应的应用程序推理配置文件 ARN。虽然这种方法实现起来很简单,但它有很大的局限性。随着推理配置文件的数量从数十个扩展到数百甚至数千,管理和更新此配置文件变得越来越麻烦。此方法的静态性质需要在发生更改时进行手动更新,这可能会导致不一致并增加维护开销,特别是在组织需要根据标签动态检索正确的推理配置文件的大规模部署中。
- 使用资源组 API 进行动态检索:第二种更强大的方法利用 AWS 资源组获取资源用于根据资源和标签过滤器动态检索应用程序推理配置文件 ARN 的 API。该方法允许使用租户ID、项目ID、部门ID、工作负载ID、模型ID、区域等各种标签键进行灵活查询。这种方法的主要优点是其可扩展性和动态性,能够根据当前标签配置实时检索应用程序推理配置文件 ARN。
然而,有一些注意事项需要牢记。这获取资源
API有限制,需要实施缓存机制。组织应根据 API 的输出维护具有生存时间 (TTL) 的缓存,以优化性能并减少 API 调用。此外,实现线程安全至关重要,有助于确保组织在根据 TTL 刷新缓存时始终读取最新的推理配置文件 ARN。
如下图所示,这种动态方法涉及客户端向具有特定资源类型和标签过滤器的资源组服务发出请求。该服务返回相应的应用程序推理配置文件 ARN,然后将其缓存一段时间。然后,客户端可以使用此 ARN 通过以下方式调用 Bedrock 模型:调用模型
或者交谈
API。
通过采用这种动态检索方法,组织可以创建更灵活和可扩展的系统来管理应用程序推理配置文件,从而更直接地适应不断变化的需求和配置文件数量的增长。
上图中的架构展示了两种基于标签动态检索推理配置文件 ARN 的方法。让我们描述一下这两种方法的优缺点:
- Bedrock 客户端使用 TTL 维护缓存:该方法涉及客户端直接查询AWS
资源组
服务使用获取资源
基于资源类型和标签过滤器的API。客户端使用 TTL 将检索到的密钥缓存在客户端维护的缓存中。客户端负责通过调用刷新缓存获取资源
API以线程安全的方式。 - 基于 Lambda 的方法:此方法使用 AWS Lambda 作为调用客户端和被调用客户端之间的中介。
资源组
API。该方法采用Lambda 扩展核心使用内存缓存,可能会减少 API 调用的数量资源组
。它还与 Parameter Store 交互,可用于配置管理或持久存储缓存数据。
两种方法都使用相似的过滤条件(资源类型过滤器和标签过滤器)来查询资源组
API,允许根据租户、模型和区域等属性精确检索推理配置文件 ARN。这些方法之间的选择取决于预期请求量、所需延迟、成本考虑以及额外处理或安全措施的需要等因素。基于 Lambda 的方法提供了更大的灵活性和优化潜力,而直接 API 方法更易于实现和维护。
Amazon Bedrock 资源标记功能概述
Amazon Bedrock 的标记功能已显着发展,为跨多账户的资源管理提供了全面的框架AWS 控制塔设置。这种演变使组织能够跨开发、过渡和生产环境管理资源,帮助组织跟踪、管理和分配其 AI/ML 工作负载的成本。
Amazon Bedrock 资源标记系统的核心涵盖多个操作组件。组织可以有效地标记其批量推理作业、代理、自定义模型作业、知识库、提示和提示流。这种基础级别的标记支持对运营资源的精细控制,从而能够精确跟踪和管理不同的工作负载组件。Amazon Bedrock 的模型管理方面引入了另一层标记功能,包括自定义模型和基础模型,并区分预置模型和按需模型,每个模型都有自己的标记要求和功能。
随着应用程序推理配置文件的引入,组织现在可以管理和跟踪其按需的 Bedrock 基础模型。由于团队可以创建从系统定义的推理配置文件派生的应用程序推理配置文件,因此他们可以在应用程序级别配置更精确的资源跟踪和成本分配。此功能对于在不同环境中运行多个 AI 应用程序的组织特别有价值,因为它可以在粒度级别上提供对资源使用情况和成本的清晰可见性。
下图直观地展示了多账户结构,并演示了如何跨不同 AWS 账户实施这些标记功能。
结论
在这篇文章中,我们介绍了 Amazon Bedrock 的最新功能:应用程序推理配置文件。我们探讨了它的运作方式并讨论了关键考虑因素。此功能的代码示例可在此处找到GitHub 存储库。这项新功能使组织能够标记、分配和跟踪按需模型推理工作负载以及整个运营的支出。组织可以根据其特定的组织分类(例如租户、工作负载、成本中心、业务部门、团队和应用程序)使用标签来标记所有 Amazon Bedrock 模型并监控使用情况。此功能现已在提供 Amazon Bedrock 的所有 AWS 区域全面推出。
关于作者
凯尔·T·布洛克索姆是位于南加州的 AWS 高级解决方案架构师。Kyle 热衷于将人们聚集在一起并利用技术提供客户喜爱的解决方案。工作之余,他喜欢冲浪、吃饭、与狗摔跤以及宠爱他的侄女和侄子。
达瓦尔·帕特尔是 AWS 的首席机器学习架构师。他曾与从大型企业到中型初创公司的组织合作解决与分布式计算和人工智能相关的问题。他专注于深度学习,包括 NLP 和计算机视觉领域。他帮助客户在 SageMaker 上实现高性能模型推理。