[アップデート] Amazon Bedrock用に最適化された2つの新しいAPIアクションがAWS Step Functionsに追加されました! #AWSreInvent

2023.11.27

はじめに

明日開催のAWS re:Invent 2023。 直前にAmazon Bedrock用に最適化された2つの新しいAPIアクションがAWS Step Functionsに追加されました!

Build generative AI apps using AWS Step Functions and Amazon Bedrock | AWS News Blog

3行まとめ

  • AWS Step FunctionsとAmazon Bedrockの最適化された統合されました
  • これにより、生成AIアプリケーションの構築とAWSサービスとの統合が容易になります
  • 新しいAPIアクションであるInvokeModelとCreateModelCustomizationJobを使用して、モデルの呼び出しとカスタマイズジョブの作成が可能です

何が嬉しいか

従来はAmazon BedrockのAPI呼び出しにAWS Lambda関数を呼び出していましたが、Step Functionsで新しいAPIを使用することでコードのメンテナンスやアプリケーションのコストを削減できます。

新しいAPIアクションの概要

InvokeModel API

このAPIを使用することで、パラメータで指定された入力を使用してモデルを呼び出し、推論を実行することができます。 テキスト、画像、埋め込みモデルの推論を実行するために使用することができ、より柔軟なジェネラティブAIアプリケーションの構築が可能となります。

また、InvokeModel APIはリクエストとレスポンスのサイズに制限がありますが、Step Functionsの状態ペイロードの入力と出力には256KBの制限があります。この制限を超えるペイロードをサポートするために、Amazon S3のバケットを定義して、APIがデータを読み取り結果を書き込む場所として使用することができます。

CreateModelCustomizationJob API

このAPIを使用することで、ベースモデルをカスタマイズするためのファインチューニングジョブを作成することができます。 つまり、ベースモデルのカスタマイズが容易になり、より高度なジェネラティブAIアプリケーションの開発が可能となります。

APIのパラメータで、ベースモデルとトレーニングデータの場所を指定します。ジョブが完了すると、カスタムモデルが作成され、使用可能になります。CreateModelCustomizationJobは非同期なAPIであり、この統合により、Step Functionsはジョブを実行し、次のステートに進む前にジョブの完了を待つことができます。つまり、ステートマシンの実行は、カスタムモデルの作成ジョブが実行中の間は一時停止し、タスクが完了すると自動的に再開されます。

やってみた

今回はInvokeModel APIを実際に試しみます。 リージョンは対応モデルが多いus-east-1を利用します。

AWS Step Functions ワークフロースタジオで空のワークフローを用意します。

左袖の検索ボックスでAmazon Bedrockを検索します。

InvokeModelをワークフローにドラッグアンドドロップします。

ワークフロー内のBedrock InvokeModelを選択すると、右袖でモデルやパラメータを選択できます。

モデルはAnthropicのClaude 2を利用します。

Bedrock モデルパラメータ > モデル推論パラメータを入力 で以下のようなパラメータを入力します。

{
  "prompt": "\n\nHuman:気分はもうAWS re:Invent 2023です!\n\nAssistant:",
  "max_tokens_to_sample": 200
}

今回は他はデフォルトのままで、画面右上の「作成」をクリックしてワークフローを作成します。

「ロールの作成を確認」の画面がでたら確認をクリックします。

ステートマシンが作成されました。

ステートマシンを実行します。

ステートマシンが成功して、結果が出力されました。

さいごに

今回のアップデートでAmazon BedrockのAPIをより簡単に利用できるようになりました。 今後のAmazon Bedrockと既存サービスとの連携も楽しみです!