Amazon Bedrock latency-optimized が新たに Agents, Flows, Knowledge Bases をサポートしました(パブリックプレビュー)
こんにちは、森田です。
以下のアップデートで Amazon Bedrock で latency-optimized inference が Agents, Flows, Knowledge Bases をサポートしました。
latency-optimized inference とは
latency-optimized inference は、レイテンシーを最適化した推論により、応答時間が短縮される機能となっています。
re:Invent2024 で発表された機能となっており、現状はまだパブリックプレビューでの提供となっています。
従来までも、InvokeModel APIには対応していましたが、新たに以下の推論でもサポートするようになりました。
- Amazon Bedrock Agents
- Amazon Bedrock Flows
- Amazon Bedrock Knowledge Bases
対応モデル・リージョン
モデル名 | リージョン | 入力1000トークン | 出力1000トークン |
---|---|---|---|
Claude 3.5 Haiku | オハイオ(us-east-2) | $0.001 | $0.005 |
Llama 3.1 70B Instruct | オハイオ(us-east-2) | $0.0009 | $0.0009 |
Llama 3.1 405B Instruct | オハイオ(us-east-2) | $0.003 | $0.003 |
いずれのモデルもオハイオ(us-east-2)リージョンのみをサポートしています。
また、料金については、通常時のモデル呼び出しと比較して、25%ほど料金が高いです。
詳細は以下ページもご参照ください。
やってみる
今回は、Amazon Bedrock Agents からのモデル呼び出しを試してみます。
なお、Agents からのモデル呼び出しについては、InlineAgents を使います。
import boto3
import time
from uuid import uuid4
from pprint import pprint
session_id = str(uuid4())
bedrock_agent_runtime = boto3.client('bedrock-agent-runtime', region_name='us-west-2')
model_id = "us.anthropic.claude-3-5-haiku-20241022-v1:0"
inputText = """
x = 2*3
print(x)
日本語で、実行結果とともに処理内容を解説してください。
"""
> options = ['standard', 'optimized']
for option in options:
start = time.time()
response = bedrock_agent_runtime.invoke_inline_agent(
sessionId=session_id,
inputText=inputText,
endSession=False,
enableTrace=True,
foundationModel=model_id,
> bedrockModelConfigurations={'performanceConfig': {'latency': option}},
instruction="あなたは、ユーザの代わりにコードを実行するエージェントです。ユーザから入力されたコードをCodeInterpreterActionを使って実行します。",
actionGroups=[
{
'actionGroupName': 'CodeInterpreterAction',
'parentActionGroupSignature': 'AMAZON.CodeInterpreter'
}
],
)
# レスポンスを格納する変数
trace_data = None
output_text = ""
# イベントストリームを処理
for event in response['completion']:
if 'trace' in event:
trace_data = event['trace']['trace']['orchestrationTrace']
if 'chunk' in event:
output_text += event['chunk']['bytes'].decode('utf-8')
# 結果を表示
print(option, time.time() - start)
bedrockModelConfigurations
で latency-optimized の切り替えが可能です。
standard 9.250740051269531
optimized 5.719379901885986
期待通り、実行速度は速くなってますね。
さいごに
latency-optimized はトークン数の出力が多い場合には、特に有用な機能です。
現在はパブリックプレビューなので、今後のGAが待ち遠しいですね!