Amazon Bedrock モデル評価ジョブを作成する - Amazon Bedrock

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

Amazon Bedrock モデル評価ジョブを作成する

を使用してモデル評価ジョブを作成できます。 AWS Management Console, AWS CLI、またはサポートされている AWS SDK。評価用のメトリクスを生成する自動モデル評価ジョブを作成できます。また、ヒューマンワーカーのチームを活用して評価を行い、評価のための入力を提供する、ヒューマンベースのモデル評価ジョブを作成することもできます。

次の例は、Amazon Bedrock コンソールを使用して自動および人間ベースのモデル評価ジョブを作成する方法を示しています。 AWS CLI、Python SDK用。

Amazon Bedrock コンソールを使用したモデル評価ジョブの結果の表示

モデル評価ジョブが完了すると、結果は指定した Amazon S3 バケットに保存されます。結果の場所を何らかの方法で変更すると、モデル評価レポートカードはコンソールに表示されなくなります。

自動モデル評価ジョブ

次の例は、自動モデル評価ジョブを作成する方法を示しています。すべての自動モデル評価ジョブでは、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 リージョン.

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

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

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

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

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

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

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

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

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

    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"}'

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

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

コンソール

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

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

  3. 「評価カードの構築」の「人間: 自分のチームを持ち込む」で「人間ベースの評価を作成する」を選択します。

  4. [ジョブの詳細の指定] ページに次の情報を入力します。

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

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

  5. [次へ] を選択します。

  6. [評価を設定] ページに次の情報を入力します。

    1. モデル — モデル評価ジョブで使用するモデルを最大 2 つまで選択できます。

      Amazon Bedrock で使用可能なモデルの詳細については、「Amazon Bedrock 基盤モデルにアクセスする」を参照してください。

    2. (オプション) 選択したモデルの推論設定を変更するには、 の更新を選択します。

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

    3. タスクタイプ — モデル評価ジョブ中にモデルに実行させるタスクタイプを選択します。モデルに関するすべての指示をプロンプト自体に含める必要があります。タスクタイプはモデルのレスポンスを制御しません。

    4. 評価メトリクス — 推奨メトリクスのリストは、選択したタスクによって変わります。推奨メトリクスごとに、[評価方法] を選択する必要があります。モデル評価ジョブあたりの最大評価メトリクス数は 10 個です。

    5. (オプション) メトリクスを追加 を選択してメトリクスを追加します。[メトリクス][説明][評価方法] を定義する必要があります。

    6. データセットカードでは、以下を指定する必要があります。

      1. プロンプトデータセットの選択 – プロンプトデータセットファイルの S3 URIを指定するか、S3 を参照 を選択して、使用可能な S3 バケットを表示します。カスタムプロンプトデータセットには、最大 1000 個のプロンプトを含めることができます。

      2. 評価結果の送信先 – モデル評価ジョブの結果を保存するディレクトリURIの S3 を指定するか、S3 を参照を選択して使用可能な S3 バケットを表示する必要があります。

    7. (オプション) AWS KMS key – モデル評価ジョブの暗号化に使用するカスタマーマネージドキーARNの を指定します。

    8. Amazon Bedrock IAMロール – アクセス許可カードでは、次の操作を行う必要があります。モデル評価に必要なアクセス許可の詳細については、「Amazon Bedrock でのモデル評価に必要なアクセス許可とIAMサービスロール」を参照してください。

      1. 既存の Amazon Bedrock サービスロールを使用するには、既存のロールを使用する を選択します。それ以外の場合は、新しいロールの作成を使用して、新しいIAMサービスロールの詳細を指定します。

      2. サービスロール名 で、IAMサービスロールの名前を指定します。

      3. 準備ができたら、ロールの作成を選択して新しいIAMサービスロールを作成します。

  7. [次へ] を選択します。

  8. [アクセス許可] カードで、以下を指定します。モデル評価に必要なアクセス許可の詳細については、「Amazon Bedrock でのモデル評価に必要なアクセス許可とIAMサービスロール」を参照してください。

  9. ヒューマンワークフローIAMロール – SageMaker必要なアクセス許可を持つサービスロールを指定します。

  10. [作業チーム] カードで、以下を指定します。

    ヒューマンワーカーの通知要件

    モデル評価ジョブに新しいヒューマンワーカーを追加すると、モデル評価ジョブへの参加を勧めるメールがヒューマンワーカーに自動的に送信されます。モデル評価ジョブに既存のヒューマンワーカーを追加する場合は、URLモデル評価ジョブのワーカーポータルを通知して提供する必要があります。既存のワーカーには、新しいモデル評価ジョブに追加されたことを知らせる自動Eメール通知は送信されません。

    1. [チームを選択] ドロップダウンで、[新しい作業チームを作成] を選択するか、既存の作業チーム名を指定します。

    2. (オプション) [プロンプト別ワーカー数] — 各プロンプトを評価するワーカーの数を更新します。選択したワーカー数による各プロンプトのレスポンスのレビューが完了すると、プロンプトとそのレスポンスは作業チームから配布されなくなります。最終結果レポートには、すべてのワーカーの評価が含まれます。

    3. (オプション) 既存のワーカー E メール – ワーカーポータル を含む E メールテンプレートをコピーするには、このオプションを選択しますURL。

    4. (オプション) 新しいワーカーの E メール — 新しいワーカーに自動的に送信される E メールを表示します。

      重要

      大規模言語モデルでは、ハルシネーションが起きたり、有害または攻撃的なコンテンツが作成されたりすることが知られています。この評価では、ワーカーに有害または攻撃的な内容が表示されることがあります。評価を始める前に、適切な措置を講じてトレーニングを行い、その旨を通知します。評価中は、人間による評価ツールにアクセスしている間、タスクを辞退してタスクをリリースすることや休憩を取ることもできます。

  11. [次へ] を選択します。

  12. [指示を入力] ページに、テキストエディタを使用して、タスクを完了するための指示を入力します。作業チームがレスポンスを評価するために使用する評価 UI (メトリクス、評価方法、指示など) をプレビューできます。このプレビューは、このジョブ用に作成した設定に基づいています。

  13. [次へ] を選択します。

  14. [確認して作成] ページでは、前の手順で選択したオプションの概要を確認できます。

  15. モデル評価ジョブを開始するには、[作成] を選択します。

    注記

    ジョブが正常に開始されると、ステータスが [進行中] に変わります。ジョブが終了すると、ステータスが [完了] に変わります。モデル評価ジョブがまだ進行中である間、すべてのモデルのレスポンスが作業チームによって評価される前に、ジョブを停止することを選択できます。そのためには、モデル評価ランディングページで評価を停止を選択します。これにより、モデル評価ジョブのステータスの停止に変更されます。モデル評価ジョブが正常に停止したら、モデル評価ジョブを削除できます。

API および AWS CLI

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

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

Amazon Bedrock APIオペレーションを使用して開始されたモデル評価ジョブの場合、 ARNを使用してフロー定義を作成する必要があります。 AWS CLI またはサポートされている 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.

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)