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

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

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

注意

Amazon Bedrock 提示快取通常適用於 Claude 3.7 Sonnet、Claude 3.5 Haiku、Amazon Nova Micro、 Amazon Nova Lite和 Amazon Nova Pro。在提示快取預覽期間獲得 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 APIs

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

InvokeModel 和 InvokeModelWithResponseStream APIs

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

使用跨區域推論提示快取

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

Amazon Bedrock 提示管理

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

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

支援的模型、區域和限制

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

模型名稱

模型 ID

發行類型

每個快取檢查點的字符數量下限

每個請求的快取檢查點數目上限

接受提示快取檢查點的欄位

Claude Opus 4

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

全面推出

1,024

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

1:Amazon Nova模型支援提示快取的 20K 字符數量上限。

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

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

開始使用

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

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

範例請求

下列範例顯示 API 請求的 messagessystemtools欄位中設定的快取檢查點Converse。您可以將檢查點放置在指定請求的任何這些位置。例如,如果將請求傳送至 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" } } ] } ...

API 的模型回應Converse包含兩個特定於提示快取的新欄位。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. ),以檢視每個與模型互動所讀取和寫入快取的字符數量。

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

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