Amazon Bedrock latency-optimized が新たに Agents, Flows, Knowledge Bases をサポートしました(パブリックプレビュー)

Amazon Bedrock latency-optimized が新たに Agents, Flows, Knowledge Bases をサポートしました(パブリックプレビュー)

Clock Icon2024.12.24

こんにちは、森田です。

以下のアップデートで Amazon Bedrock で latency-optimized inference が Agents, Flows, Knowledge Bases をサポートしました。

https://aws.amazon.com/about-aws/whats-new/2024/12/amazon-bedrock-agents-flows-knowledge-optimized-models/

latency-optimized inference とは

latency-optimized inference は、レイテンシーを最適化した推論により、応答時間が短縮される機能となっています。

re:Invent2024 で発表された機能となっており、現状はまだパブリックプレビューでの提供となっています。

https://dev.classmethod.jp/articles/amazon-bedrock-latency-optimized-inference-public-preview-announced-awsreinvent/

従来までも、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%ほど料金が高いです。

詳細は以下ページもご参照ください。

https://aws.amazon.com/bedrock/pricing/

やってみる

今回は、Amazon Bedrock Agents からのモデル呼び出しを試してみます。

なお、Agents からのモデル呼び出しについては、InlineAgents を使います。

https://dev.classmethod.jp/articles/agents-bedrock-inlineagents

inline_agent.py
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が待ち遠しいですね!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.