选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

提示缓存以加快模型推断速度

聚焦模式
提示缓存以加快模型推断速度 - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

注意

Amazon Bedrock 提示缓存目前仅适用于特定数量的客户。要了解有关参与预览版的更多信息,请参阅 Amazon Bedrock 提示缓存

提示缓存是一项可选功能,您可以在 Amazon Bedrock 中获取模型推理时使用该功能来缩短响应延迟。您可以将部分对话添加到缓存中,这样模型就可以重复使用缓存中的上下文,而不必每次都完全处理输入和计算响应。

当您的工作负载具有长而重复的上下文且经常重复用于多个查询时,提示缓存会有所帮助。例如,如果你有一个聊天机器人,用户可以在其中上传文档并询问有关文档的问题,那么每次用户提供输入时,模型处理文档可能会很耗时。通过提示缓存,您可以在对话的上下文中缓存文档,以便更快地做出响应。

使用提示缓存时,您需要按较低的推理费率收费,而从缓存中读取和写入多少令牌的费率则按不同的费率收费。有关更多信息,请参阅 Amazon Bedrock 定价页面。

工作方式

如果您选择使用提示缓存,Amazon Bedrock 会创建一个由缓存检查点组成的缓存。这些检查点会缓存指向该点的提示符的整个前缀。在随后的请求中,模型可以检索这些缓存的信息,而不必再次处理这些信息,从而缩短了响应时间并降低了成本。

缓存检查点具有最小和最大令牌数量,具体取决于您使用的特定模型。只有当你的总提示前缀满足最小令牌数量时,你才能创建缓存检查点。例如,Anthropic Claude 3.5 Sonnet v2 模型需要 1,024 个令牌作为缓存检查点。你可以在提示后创建第一个检查点,模型的响应达到 1,024 个标记。在总数达到 2,048 个代币后,您可以创建第二个检查点。如果您尝试在不满足最小令牌数量的情况下添加缓存检查点,则您的推理请求仍会成功,但该检查点未添加到缓存中。

缓存有五分钟的生存时间 (TTL),每次成功命中缓存都会重置。在此期间,缓存中的上下文会被保留。如果 TTL 窗口内没有出现缓存命中,则您的缓存将过期。

如果您的缓存过期,则可以将之前缓存的上下文重新用作新缓存的第一个缓存检查点。

每当你在 Amazon Bedrock 中获得支持的模型的模型推断时,你都可以使用提示缓存。以下 Amazon Bedrock 功能支持提示缓存:

Converse 和 ConverseStream APIs

您可以与模型进行对话,在提示中指定缓存检查点。

InvokeModel 和 InvokeModelWithResponseStream APIs

您可以提交单一提示请求,在这些请求中启用提示缓存并指定缓存检查点。

Amazon Bedrock 代理

创建或更新代理时,可以选择启用或禁用提示缓存。Amazon Bedrock 会自动为您处理提示缓存和检查点行为。

它们为您 APIs 提供了对提示缓存的最大灵活性和精细控制。你可以在提示中设置每个缓存检查点。您可以通过创建更多缓存检查点来添加到缓存中,最多不超过特定模型允许的最大缓存检查点数。有关更多信息,请参阅 支持的型号、区域和限制

要将提示缓存与 Amazon Bedrock Agents 等其他功能一起使用,您只需在创建或更新代理时启用提示缓存字段即可。启用提示缓存后,Amazon Bedrock 会自动为您处理缓存行为和缓存检查点。

支持的型号、区域和限制

下表列出了每个支持的 AWS 区域模型支持的令牌最小值、最大缓存检查点数以及允许缓存检查点的字段。

模型名称 模型 ID 支持提示缓存的区域 每个缓存检查点的最小令牌数 缓存检查点的最大数量 可以在其中添加缓存检查点的字段

亚马逊 Nova Micro v1

亚马逊。 nova-micro-v1:0

美国东部(弗吉尼亚州北部)

美国西部(俄勒冈州)

1

1

system

亚马逊 Nova Lite v1

亚马逊。 nova-lite-v1:0

美国东部(弗吉尼亚州北部)

美国西部(俄勒冈州)

1

1

system

亚马逊 Nova Pro v1

亚马逊。 nova-pro-v1:0

美国东部(弗吉尼亚州北部)

美国西部(俄勒冈州)

1

1

system

Claude 3.5 俳句

anthropic.claude-3-5-haiku-20241022-v1:0

常规推断:美国西部(俄勒冈州)

跨区域推理:

  • 美国东部(弗吉尼亚州北部)

  • 美国西部(俄勒冈州)

2,048

4

systemmessagestools

Claude 3.5 Sonnet v2

anthropic.claude-3-5-sonnet-20241022-v2:0

常规推断:美国西部(俄勒冈州)

跨区域推理:

  • 美国东部(弗吉尼亚州北部)

  • 美国西部(俄勒冈州)

1024

4

systemmessagestools

入门

以下各节简要概述了如何使用提示缓存功能来处理通过 Amazon Bedrock 与模型进行交互的每种方法。

Converse API 提供了高级而灵活的选项,用于在多回合对话中实现提示缓存。有关每种型号的提示要求的更多信息,请参阅上一节支持的型号、区域和限制

示例请求

以下示例显示了在请求的messagessystem、或tools字段中设置的缓存检查点 Converse API。对于给定的请求,您可以将检查点放置在这些位置中的任何一个。例如,如果向 Claude 3.5 Sonnet v2 模型发送请求,则可以在其中放置两个缓存检查点,在中放置一个缓存检查点messages,一个放入system缓存检查点。tools有关结构化和发送的更多详细信息以及示例 Converse API 请求,请参阅与... 进行对话 Converse API 操作

messages checkpoints

在此示例中,第一个image字段为模型提供图像,第二个text字段要求模型分析图像。只要content对象cachePoint中前面的令牌数量满足模型的最小令牌数,就会创建一个缓存检查点。

... "messages": [ { "role": "user", "content": [ { "image": { "bytes": "asfb14tscve..." } }, { "text": "What's is in this image?" }, { "cachePoint": { "type": "default" } } ] } ] ...
system checkpoints

在此示例中,您在text字段中提供系统提示。之后,您可以添加一个cachePoint字段来缓存系统提示符。

... "system": [ { "text": "You are an app that creates play lists for a radio station that plays rock and pop music. Only return song names and the artist. " }, { "cachePoint": { "type": "default" } } ], ...
tools checkpoints

在此示例中,您在toolSpec字段中提供您的工具定义。(或者,您可以调用先前定义的工具。 有关更多信息,请参阅使用调用工具 Converse API。) 之后,您可以添加一个cachePoint字段来缓存该工具。

... toolConfig={ "tools": [ { "toolSpec": { "name": "top_song", "description": "Get the most popular song played on a radio station.", "inputSchema": { "json": { "type": "object", "properties": { "sign": { "type": "string", "description": "The call sign for the radio station for which you want the most popular song. Example calls signs are WZPZ and WKRP." } }, "required": [ "sign" ] } } } }, { "cachePoint": { "type": "default" } } ] } ...

来自的模型响应 Converse API 包括两个专门用于提示缓存的新字段。CacheReadInputTokensCacheWriteInputTokens值告诉您由于您之前的请求而从缓存中读取了多少令牌,以及有多少令牌被写入缓存。Amazon Bedrock 会向你收取这些费用,其费率低于完整模型推断的成本。

Converse API

Converse API 提供了高级而灵活的选项,用于在多回合对话中实现提示缓存。有关每种型号的提示要求的更多信息,请参阅上一节支持的型号、区域和限制

示例请求

以下示例显示了在请求的messagessystem、或tools字段中设置的缓存检查点 Converse API。对于给定的请求,您可以将检查点放置在这些位置中的任何一个。例如,如果向 Claude 3.5 Sonnet v2 模型发送请求,则可以在其中放置两个缓存检查点,在中放置一个缓存检查点messages,一个放入system缓存检查点。tools有关结构化和发送的更多详细信息以及示例 Converse API 请求,请参阅与... 进行对话 Converse API 操作

messages checkpoints

在此示例中,第一个image字段为模型提供图像,第二个text字段要求模型分析图像。只要content对象cachePoint中前面的令牌数量满足模型的最小令牌数,就会创建一个缓存检查点。

... "messages": [ { "role": "user", "content": [ { "image": { "bytes": "asfb14tscve..." } }, { "text": "What's is in this image?" }, { "cachePoint": { "type": "default" } } ] } ] ...
system checkpoints

在此示例中,您在text字段中提供系统提示。之后,您可以添加一个cachePoint字段来缓存系统提示符。

... "system": [ { "text": "You are an app that creates play lists for a radio station that plays rock and pop music. Only return song names and the artist. " }, { "cachePoint": { "type": "default" } } ], ...
tools checkpoints

在此示例中,您在toolSpec字段中提供您的工具定义。(或者,您可以调用先前定义的工具。 有关更多信息,请参阅使用调用工具 Converse API。) 之后,您可以添加一个cachePoint字段来缓存该工具。

... toolConfig={ "tools": [ { "toolSpec": { "name": "top_song", "description": "Get the most popular song played on a radio station.", "inputSchema": { "json": { "type": "object", "properties": { "sign": { "type": "string", "description": "The call sign for the radio station for which you want the most popular song. Example calls signs are WZPZ and WKRP." } }, "required": [ "sign" ] } } } }, { "cachePoint": { "type": "default" } } ] } ...

在此示例中,第一个image字段为模型提供图像,第二个text字段要求模型分析图像。只要content对象cachePoint中前面的令牌数量满足模型的最小令牌数,就会创建一个缓存检查点。

... "messages": [ { "role": "user", "content": [ { "image": { "bytes": "asfb14tscve..." } }, { "text": "What's is in this image?" }, { "cachePoint": { "type": "default" } } ] } ] ...

来自的模型响应 Converse API 包括两个专门用于提示缓存的新字段。CacheReadInputTokensCacheWriteInputTokens值告诉您由于您之前的请求而从缓存中读取了多少令牌,以及有多少令牌被写入缓存。Amazon Bedrock 会向你收取这些费用,其费率低于完整模型推断的成本。

默认情况下,当您调用 InvokeModelAPI 时,提示缓存处于启用状态。你可以在请求正文中的任何位置设置缓存检查点,类似于前面的示例 Converse API。

以下示例说明如何构造 InvokeModel请求的正文 Anthropic Claude 3.5 Sonnet v2 模型。请注意, InvokeModel 请求正文的确切格式和字段可能会因您选择的模型而异。要查看不同模型的请求和响应正文的格式和内容,请参阅基础模型的推理请求参数和响应字段

body={ "anthropic_version": "bedrock-2023-05-31", "system":"Reply concisely", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe the best way to learn programming." }, { "type": "text", "text": "Add additional context here for the prompt that meets the minimum token requirement for your chosen model.", "cache_control": { "type": "ephemeral" } } ] } ], "max_tokens": 2048, "temperature": 0.5, "top_p": 0.8, "stop_sequences": [ "stop" ], "top_k": 250 }

有关发送 InvokeModel 请求的更多信息,请参阅使用以下命令提交单个提示 InvokeModel

默认情况下,当您调用 InvokeModelAPI 时,提示缓存处于启用状态。你可以在请求正文中的任何位置设置缓存检查点,类似于前面的示例 Converse API。

以下示例说明如何构造 InvokeModel请求的正文 Anthropic Claude 3.5 Sonnet v2 模型。请注意, InvokeModel 请求正文的确切格式和字段可能会因您选择的模型而异。要查看不同模型的请求和响应正文的格式和内容,请参阅基础模型的推理请求参数和响应字段

body={ "anthropic_version": "bedrock-2023-05-31", "system":"Reply concisely", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe the best way to learn programming." }, { "type": "text", "text": "Add additional context here for the prompt that meets the minimum token requirement for your chosen model.", "cache_control": { "type": "ephemeral" } } ] } ], "max_tokens": 2048, "temperature": 0.5, "top_p": 0.8, "stop_sequences": [ "stop" ], "top_k": 250 }

有关发送 InvokeModel 请求的更多信息,请参阅使用以下命令提交单个提示 InvokeModel

在 Amazon Bedrock 控制台的聊天平台中,你可以打开提示缓存选项,Amazon Bedrock 会自动为你创建缓存检查点。

按照中的说明开始在 使用操场在控制台中生成响应 Amazon Bedrock 游乐场中进行提示。对于支持的机型,Playground 中的提示缓存会自动开启。但是,如果不是,请执行以下操作以打开提示缓存:

  1. 在左侧面板中,打开 “配置” 菜单。

  2. 打开提示缓存开关。

  3. 运行你的提示。

在您的输入和模型响应组合达到检查点所需的最低令牌数量(因型号而异)后,Amazon Bedrock 会自动为您创建第一个缓存检查点。当你继续聊天时,每次达到最小数量的代币都会创建一个新的检查点,最多不超过模型允许的最大检查点数量。您可以随时通过选择提示缓存开关旁边的查看缓存检查点来查看缓存检查点,如以下屏幕截图所示。

在 Amazon Bedrock 文本游乐场中切换用户界面以提示缓存。

通过查看 Playground 响应中的 “缓存指标” 弹出窗口 ( The metrics icon shown in model responses when prompt caching is enabled. ),您可以查看由于每次与模型交互而从缓存中读取和写入缓存的令牌数量。

缓存指标框显示从缓存中读取和写入缓存的令牌数量。

如果您在对话中关闭提示缓存开关,则可以继续与模特聊天。

在 Amazon Bedrock 控制台的聊天平台中,你可以打开提示缓存选项,Amazon Bedrock 会自动为你创建缓存检查点。

按照中的说明开始在 使用操场在控制台中生成响应 Amazon Bedrock 游乐场中进行提示。对于支持的机型,Playground 中的提示缓存会自动开启。但是,如果不是,请执行以下操作以打开提示缓存:

  1. 在左侧面板中,打开 “配置” 菜单。

  2. 打开提示缓存开关。

  3. 运行你的提示。

在您的输入和模型响应组合达到检查点所需的最低令牌数量(因型号而异)后,Amazon Bedrock 会自动为您创建第一个缓存检查点。当你继续聊天时,每次达到最小数量的代币都会创建一个新的检查点,最多不超过模型允许的最大检查点数量。您可以随时通过选择提示缓存开关旁边的查看缓存检查点来查看缓存检查点,如以下屏幕截图所示。

在 Amazon Bedrock 文本游乐场中切换用户界面以提示缓存。

通过查看 Playground 响应中的 “缓存指标” 弹出窗口 ( The metrics icon shown in model responses when prompt caching is enabled. ),您可以查看由于每次与模型交互而从缓存中读取和写入缓存的令牌数量。

缓存指标框显示从缓存中读取和写入缓存的令牌数量。

如果您在对话中关闭提示缓存开关,则可以继续与模特聊天。

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。