提示快取可加快模型推論速度 - Amazon Bedrock

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

提示快取可加快模型推論速度

注意

Amazon Bedrock 提示快取通常適用於 Claude 3.7 Sonnet、Claude 3.5 Haiku、Amazon Nova Micro、Amazon Nova Lite、Amazon Nova Pro 和 Amazon Nova Premier。在提示快取預覽期間獲得 Claude 3.5 Sonnet v2 存取權的客戶將保留其存取權,但不會授予其他客戶對 Claude 3.5 Sonnet v2 模型提示快取的存取權。

提示快取是一項選用功能,您可以搭配 Amazon Bedrock 上支援的模型使用,以減少推論回應延遲和輸入字符成本。透過將部分內容新增至快取,模型可以利用快取略過重新計算輸入,讓 Bedrock 共用計算節省並減少回應延遲。

當工作負載的內容冗長並重複,且經常重複用於多個查詢時,提示快取很有幫助。例如,如果您有一個聊天機器人可供使用者上傳文件並提出相關問題,則每次使用者提供輸入時,模型處理文件可能會很耗時。透過提示快取,您可以快取文件,以便包含文件的未來查詢不需要重新處理該文件。

使用提示快取時,系統會以較低的速率向您收取從快取讀取字符的費用。視模型而定,已寫入快取的字符其收費費率可能高於未快取的輸入字符費率。任何未讀取或寫入快取的字符,都會以該模型的標準輸入字符費率收費。如需更多資訊,請參閱 Amazon Bedrock 定價頁面

運作方式

如果您選擇使用提示快取,Amazon Bedrock 會建立由快取檢查點組成的快取。這些標記會定義所要快取提示的連續子區段 (通常稱為提示字首)。這些提示字首在請求之間應該保持不變,若在後續請求中修改提示字首會導致快取遺漏。

快取檢查點的字符數量下限和上限,取決於您使用的特定模型。只有在提示字首總數符合字符數量下限時,您才能建立快取檢查點。例如,Anthropic Claude 3.7 Sonnet 模型需要每個快取檢查點至少有 1,024 個字符。這表示您的第一個快取檢查點會在 1,024 個字符之後定義,而第二個快取檢查點會在 2,048 個字符之後定義。如果您在達到字符數量下限之前嘗試新增快取檢查點,則推論仍會成功,但不會將字首快取。快取有五分鐘的存活時間 (TTL),它會在每次快取命中成功時重設。在此期間,會保留快取中的內容。如果 TTL 時段內沒有發生快取命中,則快取會過期。

每當您在 Amazon Bedrock 中針對支援的模型取得模型推論時,都可以使用提示快取。下列 Amazon Bedrock 功能支援提示快取:

Converse 和 ConverseStream API

您可以與在提示中指定快取檢查點所在的模型進行對話。

InvokeModel 和 InvokeModelWithResponseStream API

您可以提交單一提示請求,在其中啟用提示快取並指定快取檢查點。

透過跨區域推論的提示快取

提示快取可與跨區域推論搭配使用。跨區域推論會自動選取您地理位置內的最佳AWS區域,以滿足您的推論請求,從而最大化可用的資源和模型可用性。在需求高的時候,這些最佳化可能會導致快取寫入增加。

Amazon Bedrock 提示管理

當您建立修改提示時,可以選擇啟用提示快取。視模型而定,您可以快取系統提示、系統指示和訊息 (使用者和助理)。您也可以選擇停用提示快取。

API 可為您提供對提示快取最大的彈性和最精細的控制。您可以在提示中設定個別快取檢查點。您可以透過建立更多快取檢查點來新增至快取,最多可達特定模型允許的快取檢查點數量上限。如需詳細資訊,請參閱支援的模型、區域和限制

支援的模型、區域和限制

下表列出支援的模型及其字符下限、快取檢查點數量上限,以及允許快取檢查點的欄位。

模型名稱 模型 ID 版本類型 每個快取檢查點的字符數量下限 每個請求的快取檢查點數量上限 接受提示快取檢查點的欄位

Claude Opus 4.5

anthropic.claude-opus-4-5-20251101-v1:0

全面推出

4,096

4

`system`、`messages` 和 `tools`

Claude Opus 4.1

anthropic.claude-opus-4-1-20250805-v1:0

全面推出

1,024

4

`system`、`messages` 和 `tools`

Claude Opus 4

anthropic.claude-opus-4-20250514-v1:0

全面推出

1,024

4

`system`、`messages` 和 `tools`

Claude Sonnet 4.5

anthropic.claude-sonnet-4-5-20250929-v1:0

全面推出

1,024

4

`system`、`messages` 和 `tools`

Claude Haiku 4.5

anthropic.claude-haiku-4-5-20251001-v1:0

全面推出

4,096

4

`system`、`messages` 和 `tools`

Claude Sonnet 4

anthropic.claude-sonnet-4-20250514-v1:0

全面推出

1,024

4

`system`、`messages` 和 `tools`

Claude 3.7 Sonnet

anthropic.claude-3-7-sonnet-20250219-v1:0

全面推出

1,024

4

`system`、`messages` 和 `tools`

Claude 3.5 Haiku

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

全面推出

2,048

4

`system`、`messages` 和 `tools`

Claude 3.5 Sonnet v2

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

預覽版

1,024

4

`system`、`messages` 和 `tools`

Amazon Nova Micro

amazon.nova-micro-v1:0

全面推出

1K1

4

`system` 和 `messages`

Amazon Nova Lite

amazon.nova-lite-v1:0

全面推出

1K1

4

`system` 和 `messages`2

Amazon Nova Pro

amazon.nova-pro-v1:0

全面推出

1K1

4

`system` 和 `messages`2

Amazon Nova Premier

amazon.nova-premier-v1:0

全面推出

1K1

4

`system` 和 `messages`2

1:Amazon Nova 模型支援數量最多 2 萬個字符進行提示快取。

2:提示快取主要用於文字提示。

Amazon Nova 為所有文字提示提供自動提示快取,包括 UserSystem 訊息。當提示開頭有重複的部分時,即使沒有明確的組態,這種機制也可以提供延遲優勢。不過,為了節省成本並確保有更穩定的效能優勢,我們建議您選擇加入明確提示快取

Claude 模型的簡化快取管理

對於 Claude 模型,Amazon Bedrock 提供簡化的快取管理方法,可降低手動放置快取檢查點的複雜性。您不需要指定確切的快取檢查點位置,而是可以搭配靜態內容結尾的單一中斷點使用自動快取管理。

當您啟用簡化的快取管理時,系統會自動檢查先前內容區塊界限的快取命中,從您指定的中斷點回溯至最多約 20 個內容區塊。這可讓模型從快取中尋找最長的相符字首,而不需要您預測最佳檢查點位置。若要使用此功能,請在靜態內容的結尾放置單一快取檢查點,再放置任何動態或可變內容。系統會自動尋找最佳的快取相符項目。

為了更精細的控制,您仍然可以使用多個快取檢查點 (Claude 模型最多 4 個) 來指定確切的快取界限。如果您要快取以不同頻率變更的區段,或想要更精確地控制快取的內容,您應該使用多個快取檢查點。

重要

自動字首檢查只會從快取檢查點回溯查看大約 20 個內容區塊。如果您的靜態內容超出此範圍,請考慮使用多個快取檢查點或重組您的提示,將最常重複使用的內容放在此範圍內。

開始使用

以下各節向您簡短介紹如何將提示快取功能用於透過 Amazon Bedrock 與模型互動的每個方法。

Converse API 提供進階且靈活的選項,可在多回合對話中實作提示快取。如需每個模型其提示需求的詳細資訊,請參閱上一節「支援的模型、區域和限制」。

範例請求

下列範例顯示在 Converse API 其請求的 messagessystemtools 欄位中設定的快取檢查點。您可以針對指定的請求將檢查點放置在這些位置中的任何一個。例如,如果將請求傳送至 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 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 向您收費的值,費率低於完整模型推論的成本。

當您呼叫 InvokeModel API 時,預設會啟用提示快取。您可以在請求內文中的任何一點設定快取檢查點,類似於 Converse API 的先前範例。

Anthropic Claude

下列範例示範如何為 Anthropic Claude 3.5 Sonnet v2 模型建構 InvokeModel 要求的內文。請注意,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 }
Amazon Nova

下列範例示範如何為 Amazon Nova 模型建構 InvokeModel 請求的內文。請注意,InvokeModel 請求的內文其確切格式和欄位可能會因您選擇的模型而有所不同。若要查看不同模型其請求和回應內文的格式和內容,請參閱 基礎模型的推論請求參數和回應欄位

{ "system": [{ "text": "Reply Concisely" }], "messages": [{ "role": "user", "content": [{ "text": "Describe the best way to learn programming" }, { "text": "Add additional context here for the prompt that meets the minimum token requirement for your chosen model.", "cachePoint": { "type": "default" } }] }], "inferenceConfig": { "maxTokens": 300, "topP": 0.1, "topK": 20, "temperature": 0.3 } }

如需傳送 InvokeModel 請求的詳細資訊,請參閱 使用 InvokeModel 提交單一提示

在 Amazon Bedrock 主控台的聊天遊樂場中,您可以開啟提示快取選項,Amazon Bedrock 會自動為您建立快取檢查點。

按照 使用遊樂場在主控台中產生回應 中的指示開始在 Amazon Bedrock 遊樂場中使用提示。對於支援的模型,系統會自動在遊樂場中開啟提示快取。但是若未開啟提示快取,請執行下列動作開啟:

  1. 在左側面板中,開啟組態功能表。

  2. 開啟提示快取切換開關。

  3. 執行您的提示。

在合併的輸入和模型回應達到檢查點所需的字符數量下限後 (視模型而異),Amazon Bedrock 會自動為您建立第一個快取檢查點。隨著您繼續聊天,後續每次達到字符數量下限時,都會建立新的檢查點,最高可達模型允許的檢查點數量上限。您可以隨時選擇提示快取切換開關旁的檢視快取檢查點來檢視快取檢查點,如下列螢幕擷取畫面所示。

Amazon Bedrock 文字遊樂場中提示快取的 UI 切換開關。

您可以透過檢視遊樂場回應中的快取指標快顯視窗 ( The metrics icon shown in model responses when prompt caching is enabled. ),來檢視因為與模型的每個互動而讀取和寫入快取的字符數量。

快取指標方塊,顯示讀取和寫入快取的字符數量。

如果您在對話過程中關閉提示快取切換開關,您可以繼續與模型聊天。