Step Functions を使用した Amazon Bedrock モデルの呼び出しとカスタマイズ - AWS Step Functions

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Step Functions を使用した Amazon Bedrock モデルの呼び出しとカスタマイズ

Step Functions を Amazon Bedrock と統合すると、指定された Amazon Bedrock モデルを呼び出し、モデルをカスタマイズするためのファインチューニングジョブを作成できます。このページでは、最適化された Amazon Bedrock APIsを一覧表示し、モデル呼び出しの結果を抽出するTask状態の例を示します。

Step Functions での AWS サービスとの統合については、 サービスとの統合「」および「」を参照してくださいStep Functions でサービス API にパラメータを渡す

ヒント

Amazon Bedrock と統合するワークフローの例をデプロイするには、「Amazon Bedrock で AI プロンプトチェイニングを実行する」を参照してください。

Amazon Bedrock サービス統合 API

AWS Step Functions を Amazon Bedrock と統合するために、以下の API を使用できます。これらの API は対応する Amazon Bedrock API に似ていますが、InvokeModel には追加のリクエストフィールドがあります。

Amazon Bedrock API - CreateModelCustomizationJob

ベースモデルをカスタマイズするためのファインチューニングジョブを作成します。Step Functions 統合 API を CreateModelCustomizationJob (Request Response 向け) または CreateModelCustomizationJob.sync (ジョブの実行 (.sync) 向け) 統合パターンで呼び出すことができます。API コールのフィールドには違いはありません。

Amazon Bedrock API - InvokeModel

リクエスト本文に指定された入力を使って推論を実行するために、指定された Amazon Bedrock モデルを呼び出します。テキストモデル、画像モデル、埋め込みモデルの推論を実行するために、InvokeModel を使用します。

InvokeModel 向けの Amazon Bedrock サービス統合 API のリクエスト本文には、以下の追加パラメータが含まれます。

  • Body — コンテンツタイプのリクエストヘッダーで指定された形式で入力データを指定します。Body には、ターゲットモデル固有のパラメータが含まれます。

    InvokeModel API を使用する場合は、Body パラメータを指定する必要があります。Step Functions では、Body で入力した内容は検証されません。

    Amazon Bedrock 最適化された統合Bodyを使用して を指定する場合、最大 256 KiB のペイロードを指定できます。ペイロードが 256 KiB を超える場合は、 を使用することをお勧めしますInput

  • Input — 入力データを取得するソースを指定します。このオプションフィールドは、Step Functions に最適化された Amazon Bedrock 統合に固有のものです。このフィールドでは、S3Uri を指定できます。

    パラメータ または InputBody を指定できますが、両方に指定することはできません。

    ContentType を指定せずに Input を指定すると、入力データソースのコンテンツタイプが ContentType の値になります。

  • Output — API レスポンスの記述先を指定します。このオプションフィールドは、Step Functions に最適化された Amazon Bedrock 統合に固有のものです。このフィールドでは、S3Uri を指定できます。

    このフィールドを指定すると、API レスポンス本文は元の出力の Amazon S3 ロケーションへの参照に置き換えられます。

次の例は、Amazon Bedrock 統合用の InvokeModel API の構文を示しています。

{ "ModelId": String, // required "Accept": String, // default: application/json "ContentType": String, // default: application/json "Input": { // not from Bedrock API "S3Uri": String }, "Output": { // not from Bedrock API "S3Uri": String } }

Amazon Bedrock 統合のタスクステート定義

以下のタスクステート定義は、ステートマシンで Amazon Bedrock とどのように統合できるかを示しています。この例は、パス (result_one) で指定されたモデル呼び出しの結果をすべて抽出するタスクステートを示しています。これは基盤モデルの推論パラメータに基づいています。この例では、Cohere Command 大規模言語モデル (LLM) を使用しています。

{ "Type": "Task", "Resource": "arn:aws:states:::bedrock:invokeModel", "Parameters": { "ModelId": "cohere.command-text-v14", "Body": { "prompt.$": "$.prompt_one", "max_tokens": 250 }, "ContentType": "application/json", "Accept": "*/*" }, "ResultPath": "$.result_one", "ResultSelector": { "result_one.$": "$.Body.generations[0].text" }, "End": true }

IAM policies for calling Amazon Bedrock

コンソールを使用してステートマシンを作成すると、必要な最小特権を持つステートマシンの実行ロールがStep Functions によって自動的に作成されます。これらの自動生成されたIAMロールは、ステートマシンを作成する AWS リージョン で有効です。

IAM ポリシーを作成するときは、ポリシーにワイルドカードを含めないことをお勧めします。セキュリティのベストプラクティスとして、ポリシーの範囲をできるだけ絞り込む必要があります。動的ポリシーは、ランタイム中に特定の入力パラメータが不明な場合にのみ使用してください。

次のサンプルテンプレートは、 がステートマシン定義のリソースに基づいて IAM ポリシー AWS Step Functions を生成する方法を示しています。詳細については、Step Functions が統合サービスの IAM ポリシーを生成する方法およびStep Functions でサービス統合パターンを検出するを参照してください。

Amazon Bedrock 統合の IAM ポリシー例

次のセクションでは、特定の基盤モデルまたはプロビジョニングされたモデルに使用する Amazon Bedrock API に基づいて必要な IAM アクセス許可について説明します。このセクションには、フルアクセスを許可するポリシーの例も含まれています。

イタリック体のテキストを、リソース固有の情報に必ず置き換えてください。

InvokeModel を使用して特定の基盤モデルにアクセスする IAM ポリシーの例

以下は、InvokeModel API アクションを使用して指定された特定の基盤モデル amazon.titan-text-express-v1 にアクセスするステートマシンの IAM ポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "InvokeModel1", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:us-east-2::foundation-model/amazon.titan-text-express-v1" ] } ] }

InvokeModel を使用して特定のプロビジョニング済みモデルにアクセスする IAM ポリシーの例

以下は、InvokeModel API アクションを使用して指定された特定のプロビジョニング済みモデル c2oi931ulksx にアクセスするステートマシンの IAM ポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "InvokeModel1", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:us-east-2:123456789012:provisioned-model/c2oi931ulksx" ] } ] }

InvokeModel を使用するフルアクセス IAM ポリシーの例

以下は、InvokeModel API アクションを使用するときにフルアクセスを提供するステートマシンの IAM ポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "InvokeModel1", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:us-east-2::foundation-model/*", "arn:aws:bedrock:us-east-2:123456789012:provisioned-model/*" ] } ] }

特定の基盤モデルに基本モデルとしてアクセスする IAM ポリシーの例

以下は、CreateModelCustomizationJob API アクションを使用して、ベースモデルとして指定された特定の基盤モデル amazon.titan-text-express-v1 にステートマシンがアクセスするための IAM ポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2::foundation-model/amazon.titan-text-express-v1", "arn:aws:bedrock:us-east-2:123456789012:custom-model/*", "arn:aws:bedrock:us-east-2:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myRole" ] } ] }

特定のカスタムモデルに基本モデルとしてアクセスする IAM ポリシーの例

以下は、CreateModelCustomizationJob API アクションを使用して特定のカスタムモデルに基本モデルとしてアクセスするステートマシンの IAM ポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2:123456789012:custom-model/*", "arn:aws:bedrock:us-east-2:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/[[roleName]]" ] } ] }

CreateModelCustomizationJob.sync を使用するフルアクセス IAM ポリシーの例

CreateModelCustomizationJob API アクションを使用するときに、フルアクセスを提供するステートマシンの IAM ポリシー例を以下に示します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2::foundation-model/*", "arn:aws:bedrock:us-east-2:123456789012:custom-model/*", "arn:aws:bedrock:us-east-2:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myRole" ] } ] }

CreateModelCustomizationJob.sync を使用して特定の基盤モデルにアクセスする IAM ポリシーの例

以下は、CreateModelCustomizationJob.sync API アクションを使用して指定された特定の基盤モデル amazon.titan-text-express-v1 にアクセスするステートマシン用の IAM ポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2::foundation-model/amazon.titan-text-express-v1", "arn:aws:bedrock:us-east-2:123456789012:custom-model/*", "arn:aws:bedrock:us-east-2:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "bedrock:GetModelCustomizationJob", "bedrock:StopModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob3", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myRole" ] } ] }

CreateModelCustomizationJob.sync を使用してカスタムモデルにアクセスする IAM ポリシーの例

以下は、CreateModelCustomizationJob.sync API アクションを使用してカスタムモデルにアクセスするステートマシン用の IAM ポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2:123456789012:custom-model/*", "arn:aws:bedrock:us-east-2:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "bedrock:GetModelCustomizationJob", "bedrock:StopModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob3", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myRole" ] } ] }

CreateModelCustomizationJob.sync を使用するフルアクセス IAM ポリシーの例

CreateModelCustomizationJob.sync API アクションを使用するときに、フルアクセスを提供するステートマシンの IAM ポリシー例を以下に示します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2::foundation-model/*", "arn:aws:bedrock:us-east-2:123456789012:custom-model/*", "arn:aws:bedrock:us-east-2:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "bedrock:GetModelCustomizationJob", "bedrock:StopModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob3", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myRole" ] } ] }