Studio で自動モデル評価ジョブを作成する - Amazon SageMaker AI

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

Studio で自動モデル評価ジョブを作成する

Studio で使用できるウィザードは、評価するモデルの選択、タスクタイプの選択、メトリクスとデータセットの選択、必要なリソースの設定についてのガイドを提供します。以下のトピックでは、オプションのカスタム入力データセットのフォーマット、環境の設定、Studio でのモデル評価ジョブの作成方法を説明します。

独自のカスタムプロンプトデータセットを使用するには、データセットの各行が有効な JSON オブジェクトである jsonlines ファイルである必要があります。各 JSON オブジェクトには、単一のプロンプトが含まれている 必要があります

選択した JumpStart モデルが適切に機能するように、SageMaker Clarify は、選択したモデル評価ディメンションに最適な形式になるように、すべてのプロンプトデータセットを自動的にフォーマットします。SageMaker Clarify は、組み込みプロンプトデータセットについても、プロンプトを追加の指示テキストを使用して拡張します。SageMaker Clarify がプロンプトを変更する方法を確認するには、モデル評価ジョブに追加した [評価ディメンション] の下にある プロンプトテンプレート] をクリックします。プロンプトテンプレートを変更する方法の例を確認するには、「Prompt template example」を参照してください。

トグルを使用すると、SageMaker Clarify が組み込みデータセットに提供する自動プロンプトテンプレートサポートをオンまたはオフにできます。自動プロンプトテンプレートをオフにすると、データセット内のすべてのプロンプトに適用される独自のカスタムプロンプトテンプレートを指定できます。

UI でカスタムデータセットで使用できるキーについては、次のタスクリストを参照してください。

  • model_input – 以下のタスクの入力を示すために必要です。

    • オープンエンド生成タスク、毒性タスク、精度タスクでモデルが応答すべきプロンプト

    • 質問への回答タスクと事実に関する知識タスクでモデルが回答すべき質問

    • テキスト要約タスクでモデルが要約すべきテキスト

    • 分類タスクでモデルが分類すべきテキスト

    • セマンティックの頑健性タスクでモデルが摂動すべきテキスト

  • target_output — 以下のタスクでモデル評価の応答を示すために必要です。

    • 質問への回答タスク、精度タスク、セマンティックの頑健性タスク、事実に関する知識タスクへの回答

    • 精度タスクとセマンティックの頑健性タスクでは、許容される回答を <OR> で区切ります。評価は、カンマで区切られた回答を正しいものとして受け入れます。例えば、「UK」、「England」または「United Kingdom」を許容可能な回答として受け入れる場合は、target_output="UK<OR>England<OR>United Kingdom" を使用します。

  • (オプション) category – カテゴリごとにレポートされる評価スコアを生成します。

  • sent_less_input – プロンプトのステレオタイプタスクでバイアスが少ないプロンプトを示すために必要です。

  • sent_more_input – プロンプトのステレオタイプタスクでバイアスが多いプロンプトを示すために必要です。

事実に関する知識の評価では、質問とモデル応答をチェックするための回答の両方が必要です。次のとおり、質問に含まれる値を持つ model_input キーと、回答に含まれる値を持つ target_output キーを使用します。

{"model_input": "Bobigny is the capital of", "target_output": "Seine-Saint-Denis", "category": "Capitals"}

上記の例は、jsonlines 入力ファイルで単一のレコードを構成する単一の有効な JSON オブジェクトです。各 JSON オブジェクトは、リクエストとしてモデルに送信されます。複数のリクエストを行うには、複数の行を含めます。以下のデータ入力例は、評価にオプションの category キーを使用する質問回答タスクのものです。

{"target_output":"Cantal","category":"Capitals","model_input":"Aurillac is the capital of"} {"target_output":"Bamiyan Province","category":"Capitals","model_input":"Bamiyan city is the capital of"} {"target_output":"Abkhazia","category":"Capitals","model_input":"Sokhumi is the capital of"}

UI でアルゴリズムを評価する場合、入力データセットには以下のデフォルトが設定されます。

  • 評価で使用されるレコードの数は一定です。アルゴリズムは、入力データセットからこの一定の数のリクエストをランダムにサンプリングします。

    • この数値を変更するには: Customize your work flow using the fmeval library」で説明されているとおり、fmeval ライブラリを使用して、パラメータ num_records を任意のサンプル数に設定するか、-1 に設定してデータセット全体を指定します。精度タスク、プロンプトのステレオタイプタスク、毒性タスク、分類タスク、セマンティックの頑健性タスクの評価対象のレコードのデフォルトの数は、100 です。事実に関する知識タスクのデフォルトのレコード数は 300 です。

  • target_output パラメータ」で説明したとおり、ターゲット出力区切り文字は、UI では <OR> に設定されています。

    • 別の区切り文字を使用して許容可能な回答を区切るには:Customize your work flow using the fmeval library」で説明されているとおり、fmeval ライブラリを使用してパラメータ target_output_delimiter を必要な区切り文字に設定します。

  • モデル評価に使用できるテキストベースの JumpStart 言語モデルを使用する必要があります。これらのモデルは、FMeval プロセスに自動的に渡されるいくつかのデータ入力設定のパラメータを提供しています。

    • 別のタイプのモデルを使用するには: fmeval ライブラリを使用して、入力データセットのデータ設定を定義します。

大規模言語モデル (LLM) の自動評価を実行するには、評価を実行するための適切なアクセス許可が付与されるように環境を設定する必要があります。その後、ワークフローのステップをガイドする UI を使用して評価を実行できます。以降のセクションでは、UI を使用して自動評価を実行する方法を説明します。

前提条件
  • Studio UI でモデル評価を実行するには、 AWS Identity and Access Management (IAM) ロールと入力データセットに適切なアクセス許可が必要です。SageMaker AI ドメインまたは IAM ロールがない場合は、「」のステップに従いますAmazon SageMaker AI のセットアップガイド

S3 バケットのアクセス許可を設定するには

ドメインとロールを作成したら、次の手順を使用してモデル評価に必要なアクセス許可を追加します。

  1. https://console.aws.amazon.com/sagemaker/ で Amazon SageMaker AI コンソールを開きます。

  2. ナビゲーションペインで、ページ上部の検索バーに「S3」と入力します。

  3. [サービス][S3] を選択します。

  4. ナビゲーションペインで [バケット] を選択します。

  5. [汎用バケット] セクションの [名前] で、カスタムプロンプトデータセットを保存するために使用する Amazon S3 バケットの名前と、モデル評価ジョブの結果を保存する場所を選択します。Amazon S3 バケットは Studio インスタンス AWS リージョン と同じ にある必要があります。Amazon S3 バケットがない場合は、以下を実行します。

    1. [バケットを作成] を選択して、新しい [バケットの作成] ページを開きます。

    2. [一般的な設定] セクションの [AWS リージョン] で、基盤モデルが配置されている AWS リージョンを選択します。

    3. [バケット名] の下の入力ボックスで S3 バケットに名前を付けます。

    4. デフォルトの選択肢をすべて受け入れます。

    5. [Create bucket] (バケットの作成) を選択します。

    6. [汎用バケット] セクションの [名前] で、作成した S3 バケットの名前を選択します。

  6. [アクセス許可] タブを選択します。

  7. ウィンドウの下部にある [クロスオリジンリソース共有 (CORS)] セクションまでスクロールします。[編集] を選択します。

  8. バケットに CORS アクセス許可を追加するには、次のコードをコピーして入力ボックスに貼り付けます。

    [ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "GET", "PUT", "POST", "DELETE" ], "AllowedOrigins": [ "*" ], "ExposeHeaders": [ "Access-Control-Allow-Origin" ] } ]
  9. [Save changes] (変更の保存) をクリックします。

IAM ポリシーにアクセス許可を追加するには
  1. ページ上部の検索バーに、「IAM」と入力します。

  2. [サービス] で、[Identity and Access Management (IAM)] を選択します。

  3. ナビゲーションペインから [ポリシー] を選択します。

  4. [Create policy] を選択します。[ポリシーエディタ] が開いたら、[JSON] を選択します。

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

  6. [ポリシーエディタ] で、以下のアクセス許可が表示されることを確認します。以下をコピーして、[ポリシーエディタ] に貼り付けます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "sagemaker:Search", "sagemaker:CreateProcessingJob", "sagemaker:DescribeProcessingJob" ], "Resource": "*" } ] }
  7. [Next (次へ)] を選択します。

  8. [ポリシーの詳細] セクションの [ポリシー名] に、ポリシー名を入力します。オプションとして説明を入力することもできます。ロールに割り当てる際は、このポリシー名を検索します。

  9. [Create policy] を選択します。

IAM ロールにアクセス許可を追加するには
  1. ナビゲーションペインで [ロール] を選択します。使用するロールの名前を入力します。

  2. [ロール名] で、ロールの名前を選択します。メインウィンドウが変化し、ロールに関する情報が表示されます。

  3. [アクセス許可] ポリシーセクションで、[アクセス許可を追加] をクリックします。

  4. 表示されるオプションから、[ポリシーをアタッチ] を選択します。

  5. 表示されるポリシーのリストから、ステップ 5 で作成したポリシーを検索します。使用するポリシー名の横にあるチェックボックスをオンにします。

  6. [アクション] の横にある下矢印をクリックします。

  7. 表示されるオプションから、[アタッチ] を選択します。

  8. 作成済みロールの名前をを検索します。名前の横にあるチェックボックスをオンにします。

  9. [Add permissions (許可の追加)] を選択します。ページ上部のバナーには、[ポリシーがロールに正常にアタッチされました] と表示されるはずです。

  • .

自動モデル評価ジョブを作成する際は、利用可能なテキストベースの JumpStart モデルから選択することも、エンドポイントにデプロイ済みのテキストベースの JumpStart モデルを使用することもできます。

自動モデル評価ジョブを作成するには、次の手順を実行します。

Studio で自動モデル評価ジョブを起動するには
  1. https://console.aws.amazon.com/sagemaker/ で Amazon SageMaker AI コンソールを開きます。

  2. ページ上部の検索バーに、「SageMaker AI」と入力します。

  3. サービスで、Amazon SageMaker AI を選択します。

  4. ナビゲーションペインから [Studio] を選択します。

  5. [ドメインを選択] の下の下矢印を展開した後、[使用を開始] セクションからドメインを選択します。

  6. [ユーザープロファイルを選択] の下の下矢印を展開した後、[使用を開始] セクションからユーザープロファイルを選択します。

  7. [Studio を開く] をクリックすると、Studio のランディングページが開きます。

  8. プライマリナビゲーションペインから、[ジョブ] を選択します。

  9. 次に、[モデル評価] を選択します。

評価ジョブを設定するには
  1. 次に、[モデルを評価] をクリックします。

  2. [ステップ 1: ジョブの詳細の指定] では、以下を実行します。

    1. モデル評価の [名前] を入力します。この名前は、送信後にモデル評価ジョブを識別するのに役立ちます。

    2. 名前にさらにコンテキストを追加するには、[説明] を入力します。

    3. [Next (次へ)] を選択します。

  3. [ステップ 2: 評価を設定] で、以下を実行します。

    1. [評価タイプ][自動] を選択します。

    2. 次に、[モデルを評価に追加] をクリックします

    3. モデルの追加モーダルでは、事前トレーニング済みの Jumpstart 基盤モデルまたは SageMaker AI エンドポイントのいずれかを使用できます。JumpStart モデルを既にデプロイしている場合は、SageMaker AI エンドポイントを選択します。それ以外の場合は、事前トレーニング済みの Jumpstart 基盤モデルを選択します。

    4. 次に、[保存] を選択します。

    5. (オプション) モデルを追加したら、[プロンプトテンプレート] をクリックして、選択したモデルに基づく、プロンプトで予想される入力形式を確認します。データセットのプロンプトテンプレートを設定する方法については、「プロンプトテンプレート」を参照してください。

      • デフォルトのプロンプトテンプレートを使用するには、次の手順を実行します:

        1. [データセットが提供するデフォルトのプロンプトテンプレート] をオンにします。

        2. (オプション) データセットごとに、Clarify が提供されたプロンプトを確認します。

        3. [Save] を選択します。

      • カスタムプロンプトテンプレートを使用するには、次の手順を実行します:

        1. [データセットが提供するデフォルトのプロンプトテンプレート] をオフにします。

        2. Clarify にデフォルトのプロンプトが表示された場合は、これをカスタマイズするか、削除して独自のプロンプトを指定できます。プロンプトテンプレートには $model_input 変数を含める必要があります。

        3. [Save] を選択します。

    6. 次に、[タスクタイプ] でタスクタイプを選択します。

      タスクタイプと関連する評価ディメンションの詳細については、「モデル評価ジョブでのプロンプトデータセットと利用可能な評価ディメンションの使用 」の「Automatic evaluation」を参照してください。

    7. [評価メトリクス] セクションで、[評価ディメンション]をクリックします。[ディメンション] の下のテキストボックスには、ディメンションに関する追加のコンテキストが含まれています。

      タスクを選択すると、タスクに関連付けられたメトリクスが[メトリクス] の下に表示されます。このセクションでは、以下を実行します。

    8. [評価ディメンション] の下矢印から評価ディメンションを選択します。

    9. [評価データセット] を選択します。独自のデータセットを使用するか、組み込みデータセットを使用するかを選択できます。独自のデータセットを使用してモデルを評価する場合は、FMEval が使用できるようにフォーマットする必要があります。データセットは、以前の「環境をセットアップします。」セクションで参照されている CORS アクセス許可が付与された S3 バケットに配置する必要もあります。カスタムデータセットをフォーマットする方法の詳細については、「カスタム入力データセットを使用する」を参照してください。

    10. 出力評価結果を保存する S3 バケットの場所を入力します。このファイルは jsonlines (.jsonl) 形式です。

    11. [プロセッサ設定] セクションで、次のパラメータを使用してプロセッサを設定します。

      • [インスタンス数] を使用して、モデルの実行に使用するコンピューティングインスタンスの数を指定します。1 以上のインスタンスを使用する場合は、モデルは並列インスタンスで実行されます。

      • [インスタンスタイプ] を使用して、モデルの実行に使用するコンピューティングインスタンスのタイプを指定します。インスタンスタイプの詳細については、「Studio Classic で使用できるインスタンスタイプ」を参照してください。

      • ボリューム KMS キーを使用して AWS Key Management Service (AWS KMS) 暗号化キーを指定します。SageMaker AI は AWS KMS キーを使用して、モデルと Amazon S3 バケットからの受信トラフィックを暗号化します。キーの詳細については、「AWS Key Management Service」を参照してください。

      • 出力 KMS キーを使用して、送信トラフィックの AWS KMS 暗号化キーを指定します。

      • IAM ロールを使用して、デフォルトのプロセッサのアクセスとアクセス許可を指定します。「環境をセットアップします。」で設定した IAM ロールを入力します。

    12. モデルと条件を指定したら、[次へ] をクリックします。メインウィンドウが、[ステップ 5 確認と保存] にスキップします。

評価ジョブを確認して実行する
  1. 評価のために選択したすべてのパラメータ、モデル、データを確認します。

  2. [リソースを作成] をクリックして、評価を実行します。

  3. ジョブのステータスを確認するには、ページの[モデル評価] セクションの上部に移動します。