本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
注意
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 | 支援提示快取的區域 | 每個快取檢查點的字符數量下限 | 快取檢查點數目上限 | 您可以在其中新增快取檢查點的欄位 |
---|---|---|---|---|---|
Amazon Nova Micro v1 |
amazon.nova-micro-v1:0 |
美國東部 (維吉尼亞北部) 美國西部 (奧勒岡) |
1 |
1 |
|
Amazon Nova Lite v1 |
amazon.nova-lite-v1:0 |
美國東部 (維吉尼亞北部) 美國西部 (奧勒岡) |
1 |
1 |
|
Amazon Nova Pro v1 |
amazon.nova-pro-v1:0 |
美國東部 (維吉尼亞北部) 美國西部 (奧勒岡) |
1 |
1 |
|
Claude 3.5 Haiku |
anthropic.claude-3-5-haiku-20241022-v1:0 |
一般推論:美國西部 (奧勒岡)
|
2,048 |
4 |
|
Claude 3.5 Sonnet v2 |
anthropic.claude-3-5-sonnet-20241022-v2:0 |
一般推論:美國西部 (奧勒岡)
|
1,024 |
4 |
|
開始使用
以下各節為您簡短概觀,說明如何針對透過 Amazon Bedrock 與模型互動的每個方法使用提示快取功能。
Converse API 提供進階且靈活的選項,可在多轉對話中實作提示快取。如需每個模型提示要求的詳細資訊,請參閱上一節支援的模型、區域和限制。
範例請求
下列範例顯示 API 請求的 messages
、 system
或 tools
欄位中設定的快取檢查點Converse。您可以針對指定的請求,將檢查點放置在這些位置。例如,如果傳送請求至 Claude 3.5 Sonnet v2 模型,您可以在 中放置兩個快取檢查點messages
、在 中放置一個快取檢查點system
,並在 中放置一個快取檢查點tools
。如需建構和傳送 Converse API 請求的詳細資訊和範例,請參閱與 Converse API 操作進行對話。
Converse API 的模型回應包含兩個新欄位,專門用於提示快取。CacheReadInputTokens
和 CacheWriteInputTokens
值會告訴您從快取讀取了多少權杖,以及您先前請求寫入快取的權杖數量。這些是 Amazon Bedrock 向您收取的值,其費率低於完整模型推論的成本。
當您呼叫 InvokeModel API 時,預設會啟用提示快取。您可以在請求內文中的任何時間點設定快取檢查點,類似於 Converse API 的先前範例。
下列範例示範如何為 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
}
如需傳送 InvokeModel 請求的詳細資訊,請參閱 使用 InvokeModel 提交單一提示。
在 Amazon Bedrock 主控台的聊天遊樂場中,您可以開啟提示快取選項,Amazon Bedrock 會自動為您建立快取檢查點。
遵循 中的指示使用遊樂場在主控台中產生回應,開始在 Amazon Bedrock 遊樂場中提示。對於支援的模型,提示快取會在遊樂場中自動開啟。不過,如果不是,請執行下列動作以開啟提示快取:
-
在左側面板中,開啟組態功能表。
-
開啟提示快取切換。
-
執行您的提示。
合併輸入和模型回應達到檢查點所需的字符數量下限後 (因模型而異),Amazon Bedrock 會自動為您建立第一個快取檢查點。當您繼續聊天時,每個後續的字符數量下限都會建立新的檢查點,最高可達模型允許的檢查點數量上限。您可以隨時透過選擇提示快取切換旁的檢視快取檢查點來檢視快取檢查點,如下列螢幕擷取畫面所示。

您可以在遊樂場回應中檢視快取指標彈出式 ( ),以檢視每個與模型互動時,從快取讀取和寫入多少權杖。

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