2024/12 現在 パブリックプレビュー
内容
AWS re:Invent 2024 で発表があった Amazon Bedrock Latency-optimized inference をシンプルに纏めます。
- チャットボットやコーディングアシスタントなどレイテンシが重要な AI アプリで、レイテンシーの短縮が可能に
モデル
- Anthropic Claude 3.5 Haiku
- Meta Llama 3.1 70B Instruct
- Llama 3.1 405B Instruct
対応リージョン
- 米国東部(オハイオ)クロスリージョン推論
設定
performanceConfig を optimized にするだけのようです。
“performanceConfig” : {
“latency” : “standard | optimized”
}
クォータに達すると、standard でリクエストを処理し、standard の料金で課金されるとのこと。
動作確認
standard
レイテンシーを比較したいので、まず standard で実行しておきます。
なお、standard の場合は明示的に設定する必要はありません。
import boto3
import json
aws_region = "us-east-2"
modelId="us.anthropic.claude-3-5-haiku-20241022-v1:0"
user_prompt = "西暦2023年日本の映画興行収入ランキング ベスト10を教えて"
bedrock = boto3.client(
'bedrock-runtime',
region_name=aws_region
)
body = json.dumps(
{
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 4000,
"messages": [{"role": "user","content": user_prompt}]
}
)
response = bedrock.invoke_model(
modelId=modelId,
body=body,
performanceConfigLatency='standard'
)
response_body = json.loads(response.get('body').read())
answer = response_body["content"][0]["text"]
print(answer)
optimized
performanceConfig で latency を optimized
にして実行します。
import boto3
import json
aws_region = "us-east-2"
modelId="us.anthropic.claude-3-5-haiku-20241022-v1:0"
user_prompt = "西暦2023年日本の映画興行収入ランキング ベスト10を教えて"
bedrock = boto3.client(
'bedrock-runtime',
region_name=aws_region
)
body = json.dumps(
{
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 4000,
"messages": [{"role": "user","content": user_prompt}]
}
)
response = bedrock.invoke_model(
modelId=modelId,
body=body,
performanceConfigLatency='optimized'
)
response_body = json.loads(response.get('body').read())
answer = response_body["content"][0]["text"]
print(answer)
optimized の CloudWatch Logs
CloudWatch Logs から OPTIMIZED で実行されていることが確認できます。
{
"schemaType": "ModelInvocationLog",
"schemaVersion": "1.0",
"timestamp": "2024-12-25T12:54:32Z",
"accountId": "123456789012",
"identity": {
"arn": "arn:aws:iam::123456789012:user/vscode"
},
"region": "us-east-2",
"requestId": "701422aa-e2b4-467c-8cc1-caa0cd35499b",
"operation": "InvokeModel",
"modelId": "arn:aws:bedrock:us-east-2:123456789012:inference-profile/us.anthropic.claude-3-5-haiku-20241022-v1:0",
"input": {
"inputContentType": "application/json",
"inputBodyJson": {
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 4000,
"messages": [
{
"role": "user",
"content": "西暦2023年日本の映画興行収入ランキング ベスト10を教えて"
}
]
},
"inputTokenCount": 36
},
"output": {
"outputContentType": "application/json",
"outputBodyJson": {
"id": "msg_bdrk_01KPWuEux9XVLhUmpRyUvryT",
"type": "message",
"role": "assistant",
"model": "claude-3-5-haiku-20241022",
"content": [
{
"type": "text",
"text": "2023年の日本の映画興行収入ランキングベスト10は以下の通りです(2023年12月時点):\n\n1. 『ウォンカ』(約106億円)\n\n2. 『ガーディアンズ・オブ・ギャラクシー/リミテッド』(約93億円)\n\n3. 『スパイダーマン:アクロス・ザ・スパイダーバース』(約80億円)\n\n4. 『ドラえもん のび太の月面探査記』(約77億円)\n\n5. 『マリオカート』(約73億円)\n\n6. 『コンジュアリング3 悪魔に憑依された』(約48億円)\n\n7. 『怪物』(約44億円)\n\n8. 『シン・仮面ライダー』(約40億円)\n\n9. 『ミッション:インポッシブル デッドレコニング PART ONE』(約37億円)\n\n10. 『ハリー・ポッターの秘宝 エクスペリメント』(約36億円)\n\nこれらの数字は変動する可能性があります。"
}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 36,
"output_tokens": 328
}
},
"outputTokenCount": 328
},
"performanceConfig": {
"latency": "OPTIMIZED"
},
"inferenceRegion": "us-east-2"
}
CloudWatch Metrics
CloudWatch Logs からはレイテンシーは確認できないので CloudWatch Metrics から確認します。
確かに、optimized の方が短縮されていることが確認できました。
追加情報
Amazon Bedrock のエージェント、フロー、ナレッジベースで SDK を介してサポートされるようにもなったとのことです。