評価とモデレーションを設定¶
プレミアム機能
評価およびモデレーションガードレールはプレミアム機能です。 この機能を有効にする方法については、DataRobotの担当者または管理者にお問い合わせください。
機能フラグ:モデレーションのガードレールを有効にする(プレミアム)、モデルレジストリでグローバルモデルを有効にする(プレミアム)、予測応答で追加のカスタムモデル出力を有効にする
評価とモデレーションのガードレールは、組織がプロンプトインジェクションや、悪意のある、有害な、または不適切なプロンプトや回答をブロックするのに役立ちます。 また、ハルシネーションや信頼性の低い回答を防ぎ、より一般的には、モデルをトピックに沿った状態に保つこともできます。 さらに、これらのガードレールは、個人を特定できる情報(PII)の共有を防ぐことができます。 多くの評価およびモデレーションガードレールは、デプロイされたテキスト生成モデル(LLM)をデプロイされたガードモデルに接続します。 これらのガードモデルはLLMのプロンプトと回答について予測し、これらの予測と統計を中心的なLLMデプロイに報告します。 評価とモデレーションのガードレールを使用するには、まず、LLMのプロンプトや回答について予測するガードモデルを作成してデプロイします。たとえば、ガードモデルは、プロンプトインジェクションや有害な回答を識別することができます。 次に、ターゲットタイプがテキスト生成のカスタムモデルを作成する場合、評価とモデレーションのガードレールを1つ以上定義します。
重要な前提条件
LLMに評価とモデレーションのガードレールを設定する前に、ガードモデルをデプロイし、LLMのデプロイを設定する際には、以下のガイドラインに従ってください。
- カスタムガードモデルを使用している場合、デプロイする前に、
moderations.input_column_name
とmoderations.output_column_name
を登録モデルバージョンのタグ型キー値{ target=blank }として定義します。 _これらのキー値を設定しない場合、ガードモデルのユーザーは、入力列名と出力列名を手動で入力する必要があります。 - 評価とモデレーションを設定する前に、中心的なLLMの監視に使用するグローバルまたはカスタムガードモデルをデプロイします。
- デプロイされたガードモデルとは異なる予測環境に、中心的なLLMをデプロイします。
- デプロイされたLLMを介して予測を開始する前に、関連付けID{ target=blank }を設定して予測ストレージを有効にします。 _関連付けIDを設定せず、LLMの予測とともに関連付けIDを指定した場合、モデレーションの指標は カスタム指標タブでは計算されません。
- 関連付けIDを定義後、関連付けIDの自動生成を有効にして、これらの指標がカスタム指標タブに表示されるようにできます。 この設定は、デプロイ 中やデプロイ 後に有効化できます。
予測方法に関する注意事項
チャット生成Q&Aアプリケーションの外部で予測を行う場合、評価とモデレーションは、 リアルタイム予測とのみ互換性があり、 バッチ予測とは互換性がありません。 また、ボルトオンのガバナンスAPIを使ってストリーミングレスポンスをリクエストする場合、評価とモデレーションはストリーミングの効果を無効にします。 ガードレールは、LLMの完全なレスポンスのみを評価するため、レスポンステキストを1つのチャンクで返します。
評価およびモデレーションガードレールを選択および設定するには:
-
モデルワークショップで、テキスト生成ターゲットタイプを持つカスタムモデルのアセンブルタブを開き、 DataRobotの外部で作成したカスタムモデルから手動で、または ユースケースのLLMプレイグラウンドで作成されたモデルから自動的に モデルを構築します。
モデレーションを使ってテキスト生成モデルを構築する場合、必要なランタイムパラメーター(資格情報など)の設定やリソース設定(パブリックネットワークへのアクセスなど)を必ず行います。 最後に、基本環境をモデレーション互換の環境([GenAI] Python 3.12 with Moderationsなど)に設定します。
リソース設定
DataRobotでは、より多くのメモリーおよびCPUリソースを備えた、より大きなリソースバンドルを使用してLLMカスタムモデルを作成することをお勧めします。
-
カスタムモデルに必須の設定を行った後、評価とモデレーションセクションに移動し、 設定をクリックします。
-
設定サマリーで、次のいずれかを実行します。
-
系統の表示をクリックすると、DataRobotでどのように評価が実行されているかを確認できます。 すべての評価とそれぞれのモデレーションは並行して実行されます。
-
一般設定をクリックして、以下を設定します。
設定 説明 モデレーションのタイムアウト モデレーションシステムが自動的にタイムアウトするまでの最大待機時間を設定します。 タイムアウトアクション モデレーションシステムがタイムアウトした場合に何が起こるかを定義します。プロンプト/回答をスコアリングするまたはプロンプト/回答をブロックする
-
-
評価とモデレーションの設定パネルで、次のいずれかの指標カードをクリックして必要なプロパティを設定します。
評価指標 要件 説明 カスタムデプロイ カスタムデプロイ 任意のデプロイを使用して、LLM(サポートされているターゲットタイプ:連続値、二値分類、多クラス、テキスト生成)の評価とモデレーションを行います。 感情分類器 感情分類器のデプロイ プロンプトまたはレスポンステキストを感情別に分類します。 忠実度 プレイグラウンドLLM、ベクターデータベース LLMの回答がソースと一致するかどうかを測定して、考えられるハルシネーションを識別します。 PII検出 PresidioのPII検出 Microsoft Presidioライブラリを使用して、テキスト内の個人識別情報 (PII) を検出します。 プロンプトインジェクション プロンプトインジェクション分類器 モデルの出力変更を意図した入力操作(システムプロンプトの上書きや変更など)を検出します。 プロンプトトークン N/A LLMへの入力に関連付けられたトークンの数を追跡します。 回答トークン N/A LLMからの出力に関連付けられたトークンの数を追跡します。 Rouge 1 ベクターデータベース LLMブループリントから生成された回答とベクターデータベースから取得されたドキュメントの間で類似度を計算します。 入力のトピックを維持 NVIDIA NeMoガードレールの設定 NVIDIA NeMo Guardrailsを使用してトピックの境界を設定することで、プロンプトがトピックに関連し、禁止用語を使用しないようにします。 出力のトピックを維持 NVIDIA NeMoガードレールの設定 NVIDIA NeMo Guardrailsを使用してトピックの境界を設定することで、回答がトピックに関連し、禁止用語を使用しないようにします。 トークン数 N/A LLMへの入力、LLMからの出力、ベクターデータベースから取得したテキストに関連付けられたトークンの数を追跡します。 毒性 毒性分類器 コンテンツの有害性を分類してモデレーション技術を適用し、有害なコンテンツの拡散を防ぎます。 PII検出、プロンプトインジェクション検出、感情分類、毒性分類に必要なデプロイは、 レジストリのグローバルモデルとして利用可能です。
多クラスカスタムデプロイの指標の制限値
多クラスカスタムデプロイの指標には、以下の制限があります。
-
モデレーション基準の一致リストで定義できるクラスは最大で
10
個までです。 -
ガードモデルで使用できるクラス名は最大で
100
個までです。
-
-
上記で選択した指標に応じて、次のフィールドを設定します。
フィールド 説明 全般的な設定 名前 評価指標の複数のインスタンスを追加する場合は、一意の名前を入力します。 適用先 評価指標に応じて、プロンプトと回答のどちらか、または両方を選択します。 プロンプトを選択すると、指標の計算に使用されるのは、最後のLLMプロンプトではなく、ユーザープロンプトであることに注意してください。 カスタムデプロイ、PII検出、プロンプトインジェクション、感情分類器、毒性設定 デプロイ名 ガードモデルによって計算された評価指標の場合、カスタムモデルデプロイを選択します。 カスタムデプロイの設定 入力列名 この名前は、カスタムモデルの作成者によって定義されます。 DataRobotによって作成されたグローバルモデルの場合、デフォルトの入力列名は text
です。 カスタムデプロイのガードモデルにmoderations.input_column_name
キー値が定義されている場合、このフィールドは自動的に入力されます。出力列名 この名前はカスタムモデル作成者によって定義され、モデルのターゲット列を参照する必要があります。 ターゲット名は、デプロイの 概要タブに表示されます(多くの場合、 _PREDICTION
が付加されます)。 カスタムデプロイからCSVデータをエクスポートして表示することで、列名を確認できます。 カスタムデプロイのガードモデルにmoderations.output_column_name
のキー値が定義されている場合、これらのフィールドには自動的に値が設定されます。忠実度の設定 LLM 評価のためにプレイグラウンドLLMを選択します。 入力/出力設定のトピックの維持 LLMタイプ Azure OpenAI、OpenAI、またはNIMを選択し、以下を設定します。 - LLMのタイプがAzure OpenAIの場合は、OpenAI APIのベースURL*、OpenAIの資格情報、OpenAI APIのデプロイを入力します。
- LLMのタイプがOpenAIの場合は、適切な資格情報を選択します。
- LLMのタイプがNIMの場合は、ベースURLを入力して、適切な資格情報**を選択します。
ファイル トピックの維持の評価については、ファイルの横にあるをクリックして、NeMoガードレール設定ファイルを変更します。 特に、 prompts.yml
を許可されたトピックとブロックされたトピックで、blocked_terms.txt
をブロックされた用語で更新し、NeMoガードレールが実施するルールを提供します。blocked_terms.txt
ファイルは、入力と出力の_ トピックの維持 指標間で共有されるため、入力指標のblocked_terms.txt
を変更すると出力指標でも変更され、その逆も同様です。 カスタムモデルには、1つは入力用、もう1つは出力用の2つのNeMo _トピックの維持 指標しか存在できません。モデレーション設定 モデレーションの設定と適用 この設定を有効にすると、モデレーションセクションが展開され、モデレーションロジックの適用タイミングを決定する条件を定義できます。 -
モデレーションセクションで、モデレーションの設定と適用を有効にして、評価指標ごとに以下を設定します。
設定 説明 モデレーションの基準 該当する場合、モデレーションロジックをトリガーするために評価されるしきい値を設定します。 感情分類器の場合、一致または一致しないを選択し、モデレーションロジックをトリガーするクラス(感情)のリストを定義します。 モデレーション方法 レポート、レポートとブロック、または置換(該当する場合)を選択します。 モデレーションのメッセージ レポートとブロックを選択すると、オプションでデフォルトのメッセージを変更できます。 -
必須フィールドを設定した後、追加をクリックして評価を保存し、評価選択ページに戻ります。 次に、別の指標を選択して設定するか、設定を保存をクリックします。
選択したガードレールは、アセンブルタブの評価とモデレーションセクションに表示されます。
テキスト生成カスタムモデルにガードレールを追加した後、モデルを テスト、 登録、および デプロイして本番環境で予測を作成できます。 予測を作成した後、 カスタム指標 タブで評価指標を表示し、 データ探索タブでプロンプト、回答、およびフィードバック(設定されている場合)を表示できます。
「トレース」タブ
LLMデプロイにモデレーションを追加すると、データ探索 > トレースタブでカスタム指標データを行ごとに表示することはできません。
評価指標デプロイのグローバルモデル¶
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のアクティビティログ > モデレーションタブで、デプロイの評価とモデレーションに関連するイベントの履歴を表示して、デプロイに設定された評価やモデレーションに関する問題を診断できます。