LLMの評価¶
本機能の提供について
評価指標はデフォルトではオフになっています。 この機能を有効にする方法については、DataRobotの担当者または管理者にお問い合わせください。
評価指標は、組織がプロンプトインジェクションや、悪意のある、有害な、または不適切なプロンプトと回答を報告するのに役立ちます。 これらの指標では、ハルシネーションや信頼性の低い回答を防止し、個人を特定できる情報(PII)の共有に対するセーフガードを設定することもできます。 多くの評価指標は、プレイグラウンドで構築されたLLMと、デプロイされたガードモデルを結びつけます。 これらのガードモデルは、LLMのプロンプトと回答で予測を作成し、予測と統計をプレイグラウンドにレポートします。 LLM評価指標ツールには、以下の項目が含まれます。
指標の追加と設定¶
評価指標を使用するには、まず、評価デプロイタイプの指標(カスタムデプロイ、PII検出、プロンプトインジェクション、センチメント分類器、および毒性)のいずれかを使用する場合は、 NextGenレジストリから必要なガードモデルをデプロイして、LLMのプロンプトや回答を予測します。
To select and configure evaluation metrics in an LLM playground:
-
In a playground, click Configure metrics below the prompt box or LLM evaluation in the side navigation bar:
-
プレイグラウンドにブループリントを追加していない場合は、ブループリントを追加する前に、指標で評価タイルの 指標の設定をクリックして指標を設定します。
LLMの評価ページが開き、指標タブが表示されます。 特定の指標はデフォルトで有効になっていますが、指標値をレポートするには、LLMブループリントに関連付けられたベクターデータベースが引用およびRouge 1に必要です。
-
無効な指標を現在のプレイグラウンドで有効にするには、目的の指標をクリックします。 プレイグラウンドに新しい指標を設定するには、LLMの評価ページの右上隅にある設定をクリックします。
-
評価の設定パネルで、右上隅に+ 追加が表示されている評価指標をクリックして指標を追加します。これらの指標に設定は必要ありません。 しかし、指標値をレポートするには、LLMブループリントに関連付けられたベクターデータベースが必要になる場合があります。 画面の右上隅にある 設定をクリックして設定を定義します。
評価指標の詳細
DataRobotで利用できる評価指標の詳細な定義については、LLMカスタム指標リファレンスを参照してください。
評価指標 要件 説明 評価データセットの指標
正確性評価データセット/ベクターデータベース 集計された指標をリファレンスデータセットに対して評価するために、プロンプトのセットまたはプロンプトと回答のペアを提供するか、合成的に生成します。 正確性指標はLlamaIndexのCorrectness Evaluatorを使用します。 コスト LLMコスト設定 デフォルトLLMまたはカスタムLLM、通貨、トークンあたりの入力コスト、およびトークンあたりの出力コストの値を使用して、LLMの回答の生成コストを計算します。 トークン数 トークン数の設定 LLMへの入力、LLMからの出力、ベクターデータベースから取得したテキストに関連付けられたトークンの数を追跡します。 待ち時間 N/A LLMブループリントの回答のレイテンシーをレポートします。 引用 ベクターデータベース ベクターデータベースをプロンプトする際にLLMによって取得されたドキュメントを報告します。 忠実度 ベクターデータベース LLMの回答がソースと一致するかどうかを測定して、考えられるハルシネーションを識別します。 忠実度指標はLlamaIndexのFaithfulness Evaluatorを使用します。 ROUGE-1 ベクターデータベース Recall-Oriented Understudy for Gisting Evaluation LLMブループリントから生成された回答とベクターデータベースから取得されたドキュメントの間で類似度を計算します。 カスタムデプロイ カスタムデプロイ 既存のデプロイを使用して、LLMを評価およびモデレートします(サポートされるターゲットタイプ:連続値、二値分類、多クラス、テキスト生成)。 PII検出 PresidioのPII検出のデプロイ Microsoft Presidioライブラリを使用して、テキスト内の個人識別情報 (PII) を検出します。 プロンプトインジェクション プロンプトインジェクション分類器のデプロイ モデルの出力変更を意図した入力操作(システムプロンプトの上書きや変更など)を検出します。 センチメント分類器 センチメント分類器のデプロイ テキストのセンチメントを肯定的か否定的に分類します。 毒性 毒性分類器のデプロイ コンテンツの有害性を分類してモデレーション技術を適用し、有害なコンテンツの拡散を防ぎます。 Multiclass custom deployment metric limits
Multiclass custom deployment metrics can have:
-
Up to
10
classes defined in the Matches list for moderation criteria. -
Up to
100
class names in the guard model.
PII検出、プロンプトインジェクション検出、センチメント分類、および毒性分類に必要なデプロイは、 レジストリでグローバルモデルとして使用できます。 次のグローバルモデルを使用できます。
モデル タイプ ターゲット 説明 プロンプトインジェクション分類器 二値 インジェクション テキストをプロンプトインジェクションまたは正当なものとして分類します。 このモデルには、分類するテキストを含む text
という名前の列が1つ必要です。 詳しくは、 deberta-v3-base-injectionモデルの詳細を参照してください。毒性分類器 二値 毒性 テキストを有毒か無毒に分類します。 このモデルには、分類するテキストを含む text
という名前の列が1つ必要です。 詳しくは、 toxic-comment-modelの詳細を参照してください。センチメント分類器 二値 センチメント テキストのセンチメントを肯定的か否定的に分類します。 このモデルには、分類するテキストを含む text
という名前の列が1つ必要です。 詳しくは、 distilbert-base-uncased-finetuned-sst-2-englishモデルの詳細を参照してください。感情分類器 多クラス ターゲット テキストを感情で分類します。 これは多ラベルモデルです。つまり、複数の感情をテキストに適用できます。 このモデルには、分類するテキストを含む text
という名前の列が1つ必要です。 詳しくは、 roberta-base-go_emotions-onnxモデルの詳細を参照してください。拒否スコア 連続値 ターゲット プロンプトがモデルに設定されている回答範囲を超えているために、LLMがクエリーへの回答を拒否したケースのリストと、入力を比較して、最大類似性スコアを出力します。 PresidioのPII検出 二値 contains_pii テキスト内の個人を特定できる情報(PII)を検出して置き換えます。 このモデルには、分類するテキストを含む text
という名前の列が1つ必要です。 必要に応じて、検出するPIIのタイプをコンマ区切りの文字列として列'entities'に指定できます。 この列が指定されていない場合は、サポートされているすべてのエンティティが検出されます。 エンティティのタイプは、PresidioがサポートするPIIエンティティのドキュメントに記載されています。
検出結果に加えて、モデルはanonymized_text
列を返します。この列には、検出されたPIIがプレースホルダーに置き換えられた更新バージョンの入力が含まれています。
詳細については、Presidio: Data Protection and De-identification SDKのドキュメントを参照してください。ゼロショット分類器 二値 ターゲット ユーザー指定のラベルを持つテキストに対してゼロショット分類を実行します。 このモデルでは、 text
という名前の列に分類されたテキストが必要であり、labels
という名前の列にコンマ区切りの文字列としてクラスラベルが必要です。 すべての行に同じラベルセットが必要であるため、最初の行にあるラベルが使用されます。 詳しくは、 deberta-v3-large-zeroshot-v1モデルの詳細を参照してください。Pythonダミー二値分類 二値 ターゲット Positiveクラスでは、常に0.75となります。 詳しくは、 python3_dummy_binaryモデルの詳細を参照してください。 必須の設定オプションは、選択した評価指標(または評価指標タイプ)に応じて異なります。 各指標または指標タイプの設定の詳細については、以下のタブをクリックしてください。
評価データセットの指標の場合、ユースケースに評価データセットを追加で次のいずれかを実行します。
データセットの追加方法 説明 評価データセットをアップロード + データセットを選択をクリックし、データレジストリパネルからデータセットを選択して、データセットを選択をクリックするか、 アップロードをクリックして新しいデータセットを登録および選択します。 合成データを生成 データセット名を入力し、合成データを作成するときに使用するLLMおよびベクターデータベースを選択して、生成をクリックします。 詳細については、 合成データセットを参照してください。 ユースケースから選択 現在のユースケースから評価データセットを選択します。 データセットを追加したら、正確性指標タイルをクリックして追加をクリックし、その指標をプレイグラウンドでLLMの回答に適用します。 正確性では、LLMブループリントと提供されたグラウンドトゥルース評価データセットの間の回答の類似性スコアを計算します。
追加した評価データセットは、LLMの評価 > 評価データセットタブに表示されます。ここでは、アクションメニュー をクリックして 評価データセットを編集するか、 評価データセットを削除します。
コスト指標では、各LLMタイプの行で、通貨、
通貨額/トークン数
での入力コスト、通貨額/トークン数
での出力コストを定義し、追加をクリックします。トークン数指標では、カウントするトークンのタイプ(すべてのトークン、ドキュメントトークン、プロンプトトークン、回答トークン)を選択して、追加をクリックします。
評価デプロイタイプの指標(カスタムデプロイ、PII検出、プロンプトインジェクション、センチメント分類器、毒性)では、 以下の設定を行ってから追加をクリックします。
フィールド 説明 名前 評価指標の複数のインスタンスを追加する場合は、一意の名前を入力します。 適用先 評価指標に応じて、プロンプトと回答のどちらか、または両方を選択します。 デプロイ名 ガードモデルによって計算された評価指標の場合、カスタムモデルデプロイを選択します。 カスタムデプロイの場合、以下の項目も設定する必要があります。 - 入力列:
promptText
をデプロイの入力列名に変更します。 この名前は、カスタムモデルの作成者によって定義されます。 DataRobotによって作成されたグローバルモデルの場合、デフォルトの入力列名はtext
です。 - 出力列:
target
をデプロイの出力列名に変更します。 This name is defined by the custom model creator, and needs to refer to the target column for the model. ターゲット名は、デプロイの 概要タブに一覧表示されます。 カスタムデプロイからCSVデータをエクスポートして表示することで、列名を確認できます。
モデレーションの基準 モデレーションロジックが適用されるタイミングを決定する条件を定義します。 設定した新しい指標はLLMの評価 > 指標タブに表示され、有効にすることができます。
-
指標を表示¶
設定してプレイグラウンドに追加する指標は、プレイグラウンドのLLMの回答に表示されます。 下向きの矢印 をクリックして指標パネルを開いて、詳細を確認することができます。
引用 をクリックすると、引用ダイアログボックスにプロンプト、回答、および引用のリストが表示されます。
集計された指標¶
プレイグラウンドに複数の指標が含まれる場合、集計指標の作成を開始できます。 集計は、多くのプロンプトや回答にわたる指標を組み合わせる処理で、ブループリントを高レベルで評価するのに役立ちます(単一のプロンプト/回答を評価することで多くの内容を学習できます)。 集計では、評価に対するより包括的なアプローチが可能になります。
集計では、元のスコアの平均化、ブール値のカウント、または多クラスモデル内のカテゴリー数の表示が行われます。 DataRobotでは、個々のプロンプト/回答の指標を生成し、指標に基づいてリストされているメソッドの1つを使用して集計することによってこれの処理を行います。
To configure aggregated metrics:
-
In a playground, click Configure aggregation below the prompt input:
集計ジョブの実行制限
一度に実行できる集計指標ジョブは1つだけです。 集計ジョブが現在実行されている場合、 集計の設定ボタンが無効になり、「集計ジョブが進行中です。処理が完了したら、もう一度試してください」というツールチップが表示されます。
-
集計された指標を生成パネルで、集計して計算する指標を選択し、集計基準を設定します。 次に、新しいチャット名を入力し、(新しいチャットでプロンプトを生成するための)評価データセットを選択して、指標を生成するLLMブループリントを選択します。 これらのフィールドは、現在のプレイグラウンドに基づいて事前に入力されています。
評価データセットの選択
評価データセット指標(正確性など)を選択した場合、その評価データセットの作成に使用した評価データセットを使用する必要があります。
-
指標の選択および設定セクションを完了した後、指標の生成をクリックします。 これにより、関連するすべてのプロンプトと回答を含む新しいチャットが作成されます。
集計された指標の表示
集計された指標は、標準のチャットの個々のプロンプトではなく、評価データセットに対して実行されます。 したがって、集計指標を表示できるのは、(設定ページの)LLMブループリントのすべてのチャットリストに追加された、生成済みの _集計されたチャット_だけです。
評価データセット¶
追加した評価データセットは、LLMの評価 > 評価データセットタブに表示されます。ここでは、アクションメニュー をクリックして 評価データセットを編集するか、 評価データセットを削除します。
合成データセット¶
評価データセット指標を追加すると、DataRobotは ベクターデータベースを使用して、プロンプトと回答のペアで構成される合成データセットを生成し、LLMブループリントを評価できます。 合成データセットは、選択されたベクターデータベースにアクセスして、ベクターをクラスタリングし、各クラスターから代表的なチャンクを抽出して、選択されたLLMに対し、ドキュメントに基づいて100の質問と回答のペアを生成するよう指示することによって生成されます。
合成評価データセットを設定して生成をクリックすると、2つのイベントが連続して発生します。
-
プレースホルダーデータセットは、必須の列(
question
およびanswer
)でデータレジストリに登録されます。これには65行と2列のプレースホルダーデータ(Record for synthetic prompt answer 0
、Record for synthetic prompt answer 1
など)が含まれます。 -
選択したLLMとベクターデータベースのペアは質問と回答のペアを生成し、手順1で作成された合成評価データセットの2番目のバージョンとしてデータレジストリに追加されます。 生成時間は、選択したLLMによって異なります。
質問と回答のペアの数はどのように決定されますか?
高品質で多様な質問を生成するために、DataRobotはコサイン類似度ベースのクラスタリングを実行します。 類似するチャンクは同じクラスターにグループ化され、各クラスターは単一の質問と答えのペアを生成します。 したがって、ベクターデータベースに類似したチャンクが多く含まれる場合、それらのチャンクは、非常に少数のクラスターにグループ化されます。 その場合、生成されるペアの数は、ベクターデータベースのチャンクの数よりもはるかに少なくなります。
トレース¶
LLMブループリントの実行をトレースすることは、GenAIスタックの多くの部分がどのように機能するかを理解するための強力なツールです。 トレースタブには、プレイグラウンドでのLLMの回答の生成に使用されたすべてのコンポーネントとプロンプティングアクティビティのログが表示されます。
トレースからのインサイトは、プロンプト、VDBチャンク、コンテキストウィンドウ内の過去のインタラクションなど、LLMが評価したすべての項目について完全なコンテキストを提供します。 例:
- DataRobotメタデータ:タイムスタンプ、ユースケース、プレイグラウンド、VDB、ブループリントIDに加えて、作成者名とベースLLMをレポートします。 これらは、LLMブループリントとのインタラクションを行うDataRobotオブジェクトから追加情報を表示する必要がある場合に、トレースレコードのソースを特定するのに役立ちます。
- LLMパラメーター:LLMを呼び出すときに使用されるパラメーターを表示します。これは、温度やシステムプロンプトなどの設定の潜在的なデバッグに役立ちます。
- プロンプトと回答:チャットの履歴を指定します。トークン数とユーザーフィードバックは、追加の詳細を提供します。
- レイテンシー:LLMブループリントの各部分のオーケストレーションに関する問題を強調表示します。
- トークンの使用状況:LLMコストを正確に計算するためにトークンの使用状況の内訳を表示します。
- 評価とモデレーション(設定されている場合):評価指標とモデレーション指標でのプロンプトまたは回答のスコアリング方法を示します。