Step Functions を使用して Amazon Bedrock モデルを呼び出してカスタマイズする - AWS Step Functions

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

Step Functions を使用して Amazon Bedrock モデルを呼び出してカスタマイズする

Step Functions を Amazon Bedrock と統合して、指定された Amazon Bedrock モデルを呼び出し、微調整ジョブを作成してモデルをカスタマイズできます。このページには、サポートされている Amazon Bedrock が一覧表示APIsされ、モデル呼び出しの結果を抽出するためのTask状態例が表示されます。

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

ヒント

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

Amazon Bedrock サービス統合 APIs

統合するには AWS Step Functions with Amazon Bedrock、次の を使用できますAPIs。APIs これらは、対応する Amazon Bedrock APIs。ただし、 InvokeModel には追加のリクエストフィールドがあります。

Amazon Bedrock API - CreateModelCustomizationJob

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

Amazon Bedrock API - InvokeModel

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

- Amazon Bedrock の サービス統合APIリクエストボディInvokeModelには、次の追加パラメータが含まれています。

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

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

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

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

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

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

  • Output – APIレスポンスが書き込まれる送信先を指定します。このオプションのフィールドは に固有です。Amazon Bedrock との統合の最適化 Step Functions。 このフィールドでは、 を指定できますS3Uri

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

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

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

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

IAM の ポリシーの例 Amazon Bedrock 統合

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

必ず を置き換えてください。italicized リソース固有の情報を含む テキスト。

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

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

{ "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" ] } ] }

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

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

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

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

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

{ "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 特定の基盤モデルをベースモデルとしてアクセスするための ポリシーの例

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

{ "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 特定のカスタムモデルをベースモデルとしてアクセスするための ポリシーの例

以下は です。IAM ステートマシンが CreateModelCustomizationJobAPIアクションを使用して特定のカスタムモデルにベースモデルとしてアクセスするための ポリシーの例。

{ "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]]" ] } ] }

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

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

{ "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" ] } ] }

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

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

{ "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" ] } ] }

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

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

{ "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" ] } ] }

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

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

{ "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" ] } ] }