モデル評価ジョブの作成 - Amazon Bedrock

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

モデル評価ジョブの作成

以下の例は、Amazon Bedrock コンソール、 AWS CLI SDK for Python を使用してモデル評価ジョブを作成する方法を示しています。

自動モデル評価ジョブ

次の例は、自動モデル評価ジョブを作成する方法を示しています。すべての自動モデル評価ジョブでは、IAMサービスロールを作成する必要があります。モデル評価ジョブの設定IAM要件の詳細については、「」を参照してくださいモデル評価ジョブのサービスロール要件

Amazon Bedrock console

Amazon Bedrock コンソールを使用してモデル評価ジョブを作成するには、次の手順に従います。この手順を正常に完了するには、IAMユーザー、グループ、またはロールに、コンソールにアクセスするための十分なアクセス許可があることを確認してください。詳細については、「Amazon Bedrock コンソールを使用してモデル評価ジョブを作成するために必要なアクセス許可」を参照してください。

また、モデル評価ジョブで指定するカスタムプロンプトデータセットには、Amazon S3 バケットに必要なCORSアクセス許可を追加する必要があります。必要なCORSアクセス許可の追加の詳細については、「」を参照してくださいS3 バケットで必要なクロスオリジンリソース共有 (CORS) アクセス許可

自動モデル評価ジョブを作成するには
  1. Amazon Bedrock コンソールを開きます。 https://console.aws.amazon.com/bedrock/

  2. ナビゲーションペインで、[モデル評価] を選択します。

  3. [評価を構築] カードの [自動] で、[自動評価を作成] を選択します。

  4. [自動評価を作成] ページに次の情報を入力します。

    1. 評価名 — モデル評価ジョブを説明する名前を付けます。この名前はモデル評価ジョブリストに表示されます。名前は、 の AWS アカウント で一意である必要があります AWS リージョン。

    2. 説明 (オプション) — オプションで説明を入力します。

    3. モデル — モデル評価ジョブで使用するモデルを選択します。

      利用可能なモデルと Amazon Bedrock でそれらにアクセスする方法の詳細については、「」を参照してくださいAmazon Bedrock 基盤モデルへのアクセスを管理する

    4. (オプション) 推論設定を変更するには、[更新] を選択します。

      推論設定を変更すると、選択したモデルによって生成されたレスポンスが変更されます。使用可能な推論パラメータの詳細については、「基盤モデルの推論パラメータ」を参照してください。

    5. タスクタイプ — モデル評価ジョブ中にモデルに実行させるタスクタイプを選択します。

    6. メトリクスとデータセット — 使用可能なメトリクスと組み込みのプロンプトデータセットのリストは、選択したタスクに応じて変わります。[使用可能な組み込みデータセット] のリストから選択することも、[独自のプロンプトデータセットを使用] を選択することもできます。独自のプロンプトデータセットを使用する場合は、URIプロンプトデータセットファイルの正確な S3 を入力するか、S3 を参照を選択してプロンプトデータセットを検索します。

    7. >評価結果 — 結果を保存するディレクトリURIの S3 を指定します。S3 を参照 を選択して、Amazon S3 内の場所を検索します。

    8. (オプション) カスタマーマネージドキーの使用を有効にするには、暗号化設定のカスタマイズ (アドバンスト) を選択します。次に、使用する AWS KMS キーARNの を指定します。

    9. Amazon Bedrock IAMロール — 既存のロールを使用して、必要なアクセス許可が既にあるIAMサービスロールを使用するか、新しいロールを作成して新しいIAMサービスロールを作成するを選択します。

  5. 続いて、[作成] を選択します。

ジョブが開始されると、ステータスは に変わります。ステータスが「完了」に変わったら、ジョブのレポートカードを表示できます。

SDK for Python

手順

import boto3 client = boto3.client('bedrock') job_request = client.create_evaluation_job( jobName="api-auto-job-titan", jobDescription="two different task types", roleArn="arn:aws:iam::111122223333:role/role-name", inferenceConfig={ "models": [ { "bedrockModel": { "modelIdentifier":"arn:aws:bedrock:us-west-2::foundation-model/amazon.titan-text-lite-v1", "inferenceParams":"{\"temperature\":\"0.0\", \"topP\":\"1\", \"maxTokenCount\":\"512\"}" } } ] }, outputDataConfig={ "s3Uri":"s3://model-evaluations/outputs/" }, evaluationConfig={ "automated": { "datasetMetricConfigs": [ { "taskType": "QuestionAndAnswer", "dataset": { "name": "Builtin.BoolQ" }, "metricNames": [ "Builtin.Accuracy", "Builtin.Robustness" ] } ] } } ) print(job_request)
AWS CLI

では AWS CLI、 help コマンドを使用して、 create-evaluation-jobで を指定するときにどのパラメータが必要で、どのパラメータがオプションであるかを確認できます AWS CLI。

aws bedrock create-evaluation-job help
aws bedrock create-evaluation-job \ --job-name 'automatic-eval-job-cli-001 \ --role-arn 'arn:aws:iam::111122223333:role/role-name' \ --evaluation-config '{"automated": {"datasetMetricConfigs": [{"taskType": "QuestionAndAnswer","dataset": {"name": "Builtin.BoolQ"},"metricNames": ["Builtin.Accuracy","Builtin.Robustness"]}]}}' \ --inference-config '{"models": [{"bedrockModel": {"modelIdentifier":"arn:aws:bedrock:us-west-2::foundation-model/amazon.titan-text-lite-v1","inferenceParams":"{\"temperature\":\"0.0\", \"topP\":\"1\", \"maxTokenCount\":\"512\"}"}}]}' \ --output-data-config '{"s3Uri":"s3://automatic-eval-jobs/outputs"}'

ヒューマンベースのモデル評価ジョブ

Amazon Bedrock コンソールの外部で人間ベースのモデル評価ジョブを作成する場合は、Amazon SageMaker フロー定義 を作成する必要がありますARN。

フロー定義ARNは、モデル評価ジョブのワークフローが定義されている場所です。フロー定義は、タスクに割り当てるワーカーインターフェイスと作業チームを定義し、Amazon Bedrock に接続するために使用されます。

Amazon Bedrock APIオペレーションを使用して開始されたモデル評価ジョブの場合、 AWS CLI またはサポートされている ARNを使用してフロー定義を作成する必要があります AWS SDK。フロー定義の仕組みとプログラムによる作成の詳細については、「 デベロッパーガイド」の「人間によるレビューワークフローの作成 (API)」を参照してください。 SageMaker

CreateFlowDefinition では、 への入力AWS/Bedrock/Evaluationとして を指定する必要がありますAwsManagedHumanLoopRequestSource。Amazon Bedrock サービスロールには、フロー定義の出力バケットにアクセスするためのアクセス許可も必要です。

以下は、 AWS CLIを使ったリクエストの例です。リクエストでは、 は SageMaker 所有の HumanTaskUiArnですARN。ではARN、 のみ変更できます AWS リージョン。

aws sagemaker create-flow-definition --cli-input-json ' { "FlowDefinitionName": "human-evaluation-task01", "HumanLoopRequestSource": { "AwsManagedHumanLoopRequestSource": "AWS/Bedrock/Evaluation" }, "HumanLoopConfig": { "WorkteamArn": "arn:aws:sagemaker:AWS リージョン:111122223333:workteam/private-crowd/my-workteam", ## The Task UI ARN is provided by the service team, you can only modify the AWS Region. "HumanTaskUiArn":"arn:aws:sagemaker:AWS Region:394669845002:human-task-ui/Evaluation" "TaskTitle": "Human review tasks", "TaskDescription": "Provide a real good answer", "TaskCount": 1, "TaskAvailabilityLifetimeInSeconds": 864000, "TaskTimeLimitInSeconds": 3600, "TaskKeywords": [ "foo" ] }, "OutputConfig": { "S3OutputPath": "s3://your-output-bucket" }, "RoleArn": "arn:aws:iam::111122223333:role/SageMakerCustomerRoleArn" }'

フロー定義 を作成したらARN、次の例を使用して、 AWS CLI またはサポートされている を使用して人間ベースのモデル評価ジョブを作成します AWS SDK。

Amazon Bedrock console

Amazon Bedrock コンソールを使用してモデル評価ジョブを作成するには、次の手順に従います。この手順を正常に完了するには、IAMユーザー、グループ、またはロールに、コンソールにアクセスするための十分なアクセス許可があることを確認してください。詳細については、「Amazon Bedrock コンソールを使用してモデル評価ジョブを作成するために必要なアクセス許可」を参照してください。

ヒューマンワーカーによるモデル評価ジョブを作成するには
  1. Amazon Bedrock コンソールを開きます。 https://console.aws.amazon.com/bedrock/

  2. ナビゲーションペインで、[モデル評価] を選択します。

  3. [評価を構築] カードの [自動] で、[自動評価を作成] を選択します。

  4. [自動評価を作成] ページに次の情報を入力します。

    1. 評価名 — モデル評価ジョブを説明する名前を付けます。この名前はモデル評価ジョブリストに表示されます。名前は、 の AWS アカウント で一意である必要があります AWS リージョン。

    2. 説明 (オプション) — オプションで説明を入力します。

    3. モデル — モデル評価ジョブで使用するモデルを選択します。

      利用可能なモデルと Amazon Bedrock でそれらにアクセスする方法の詳細については、「」を参照してくださいAmazon Bedrock 基盤モデルへのアクセスを管理する

    4. (オプション) 推論設定を変更するには、[更新] を選択します。

      推論設定を変更すると、選択したモデルによって生成されたレスポンスが変更されます。使用可能な推論パラメータの詳細については、「基盤モデルの推論パラメータ」を参照してください。

    5. タスクタイプ — モデル評価ジョブ中にモデルに実行させるタスクタイプを選択します。

    6. メトリクスとデータセット — 使用可能なメトリクスと組み込みのプロンプトデータセットのリストは、選択したタスクに応じて変わります。[使用可能な組み込みデータセット] のリストから選択することも、[独自のプロンプトデータセットを使用] を選択することもできます。独自のプロンプトデータセットを使用する場合は、URIプロンプトデータセットファイルの正確な S3 を入力するか、S3 を参照を選択してプロンプトデータセットを検索します。

    7. 評価結果 — モデル評価ジョブの結果を保存するURIディレクトリの S3 を指定します。S3 を参照 を選択して、Amazon S3 内の場所を検索します。

    8. (オプション) カスタマーマネージドキーの使用を有効にするには、暗号化設定のカスタマイズ (アドバンスト) を選択します。次に、使用する AWS KMS キーARNの を指定します。

    9. Amazon Bedrock IAMロール — 既存のロールを使用して、必要なアクセス許可が既にあるIAMserviceロールを使用するか、新しいロールを作成して新しいIAMサービスロールを作成するを選択します。

  5. 続いて、[作成] を選択します。

ジョブが開始されると、ステータスは進行中 に変わります。ステータスが「完了」に変わったら、ジョブのレポートカードを表示できます。

SDK for Python

次のコード例は、 SDK SDK for Python を介してヒューマンワーカーを使用するモデル評価ジョブを作成する方法を示しています。

import boto3 client = boto3.client('bedrock') job_request = client.create_evaluation_job( jobName="111122223333-job-01", jobDescription="two different task types", roleArn="arn:aws:iam::111122223333:role/example-human-eval-api-role", inferenceConfig={ ## You must specify and array of models "models": [ { "bedrockModel": { "modelIdentifier":"arn:aws:bedrock:us-west-2::foundation-model/amazon.titan-text-lite-v1", "inferenceParams":"{\"temperature\":\"0.0\", \"topP\":\"1\", \"maxTokenCount\":\"512\"}" } }, { "bedrockModel": { "modelIdentifier": "anthropic.claude-v2", "inferenceParams": "{\"temperature\":\"0.25\",\"top_p\":\"0.25\",\"max_tokens_to_sample\":\"256\",\"top_k\":\"1\"}" } } ] }, outputDataConfig={ "s3Uri":"s3://job-bucket/outputs/" }, evaluationConfig={ "human": { "humanWorkflowConfig": { "flowDefinitionArn": "arn:aws:sagemaker:us-west-2:111122223333:flow-definition/example-workflow-arn", "instructions": "some human eval instruction" }, "customMetrics": [ { "name": "IndividualLikertScale", "description": "testing", "ratingMethod": "IndividualLikertScale" } ], "datasetMetricConfigs": [ { "taskType": "Summarization", "dataset": { "name": "Custom_Dataset1", "datasetLocation": { "s3Uri": "s3://job-bucket/custom-datasets/custom-trex.jsonl" } }, "metricNames": [ "IndividualLikertScale" ] } ] } } ) print(job_request)