モデルの入出力から有害な言葉を取り除く
AIガードレールは、ヘイトスピーチ、罵倒、冒涜などの潜在的に有害なコンテンツを財団モデルの出力と入力から削除します。
機能
AIガードレールは、 基盤モデル入力に提供された入力とモデルによって生成された出力テキストに文分類器を使用するAIによって駆動されます。
センテンス分類器器は、モデルの入力と出力テキストをセンテンスに分割し、各センテンスをレビューして有害なコンテンツを見つけ、フラグを立てる。 分類器は、各単語、単語間の関係、文の文脈を評価し、文に有害な表現が含まれているかどうかを判断する。 そして分類器は、不適切なコンテンツが存在する可能性を表すスコアを割り当てる。
AIガードレールは、自然言語基盤モデル推論する際に自動的に有効になる。
Prompt Lab、 AIガードレールを使用し、 Generateをクリックすると、フィルタはすべてのモデルの入出力テキストをチェックします。 不適切なテキストは以下の方法で処理されます:
不適切とフラグが立てられた入力テキストは、ファウンデーションモデルに送信されない。 モデル出力の代わりに以下のメッセージが表示される:
[The input was rejected as inappropriate]
不適切とフラグが立てられたモデル出力テキストは、以下のメッセージに置き換えられる:
[Potentially harmful text removed]
制約事項
- AIガードレールは、英文のみで有害なコンテンツを検出することができる。
- プログラム言語による基盤モデルモデルでは、AIガードレールを適用することはできない。
働き方
基盤モデル使用している場合、以下の方法で有害なコンテンツを削除することができます:
- Prompt Lab より。 詳細については、 Prompt Lab の AI ガードレールの構成を参照してください。
- 以下のメソッドでプログラム的に行う:
AIガードレールの設定
ユーザー入力とモデル出力に適用する以下のフィルタを設定し、必要に応じてフィルタの感度を調整することができます:
ヘイト、虐待、冒涜 (HAP) フィルタ
HAP フィルタは HAP 検出器とも呼ばれ、 IBM Research 社が構築したエンコーダのみの自然言語処理(NLP)モデル IBM Slate ファミリーの大規模な言語モデルを微調整することによって作成された文分類器である。
HAPフィルターを使用して、以下のタイプの言語を検出し、フラグを立てる:
ヘイトスピーチ:人種、宗教、民族、性的指向、障害、性別などの属性に基づく個人または集団に対する憎悪の表現。 ヘイトスピーチは、ある集団の構成員を傷つけたり、辱めたり、侮辱したり、暴力や社会的混乱を助長する意図を示す。
暴言:誰かをいじめたり、貶めたり、卑下したりするような失礼な言葉。
冒涜:暴言、侮辱、性的な表現など有害な言葉。
HAPフィルターは、ユーザー入力とモデル出力に独立して使用することができます。
しきい値を設定することで、フィルターの感度を変えることができる。 閾値は、HAP 分類器生成されたスコアが、有害なコンテンツとみなされるために到達しなければならない値を表す。 スコアのしきい値は0.0から1.0の範囲である。
0.1 や 0.2 のような低い値の方が、閾値が低いので安全である。 有害なコンテンツは、低いスコアがフィルタのトリガーになれば、より特定されやすくなる。 しかし、コンテンツが安全である場合にも分類器が作動する可能性がある。
0.8、 0.9 のように1に近い値は、スコアの閾値が高いため、よりリスクが高い。 フィルタを作動させるために高いスコアが要求される場合、有害なコンテンツの発生が見逃される可能性がある。 しかし、有害のフラグが立てられたコンテンツは、有害である可能性が高い。
AIガードレールを無効にするには、HAPしきい値を 1
に設定する。
個人を特定できる情報(PII)フィルター
PIIフィルターは、NLPのAIモデルを使ってコンテンツを識別し、フラグを立てる。 フラグが付けられるエンティティタイプの完全なリストについては、一般エンティティのルールベース抽出を参照してください。
HAPフィルタを使用して、電話番号や電子メールアドレスなどの個人を特定できる情報を、ユーザー入力や基盤モデル出力からフィルタリングするかどうかを制御します。 HAPフィルターは、ユーザー入力とモデル出力に独立して設定できます。
PIIフィルターのしきい値は 0.8 に設定されており、フィルターの感度を変更することはできない。
Granite ガーディアンのモデルをフィルターとして使用する 
Granite ガーディアンの基盤モデル、 IBM による Granite ファミリーのモデルである。 このモデルは、有害なコンテンツからの高度な保護を実現するために設計された、大幅に強力なガードレールフィルターです。
Granite ガーディアンモデルをフィルタとして使用し、以下のような言語を検出し、フラグを立てる:
社会的偏見:アイデンティティや特徴に基づく偏見に満ちたステートメント。
脱獄:AIを操作して有害、制限、または不適切なコンテンツを生成しようとすること。
暴力:身体的、精神的、性的危害の助長。
冒涜:攻撃的な言葉や侮辱の使用。
非倫理的な行動:道徳的または法的基準に違反する行為。
有害な関与:有害または非倫理的な要求への関与または支持。
回避:十分な理由を示さず、関わり合いを避けること。
Granite ガーディアンモデルを、ユーザー入力のみのフィルターとして使用することができます。
しきい値を設定することで、フィルターの感度を変えることができる。 閾値は、コンテンツが有害とみなされるためのスコア値を示す。 スコアのしきい値は0.0から1.0の範囲である。
0.1 や 0.2 のような低い値の方が、閾値が低いので安全である。 有害なコンテンツは、低いスコアがフィルタのトリガーになれば、より特定されやすくなる。 しかし、コンテンツが安全である場合にも分類器が作動する可能性がある。
0.8、 0.9 のように1に近い値は、スコアの閾値が高いため、よりリスクが高い。 フィルタを作動させるために高いスコアが要求される場合、有害なコンテンツの発生が見逃される可能性がある。 しかし、有害のフラグが立てられたコンテンツは、有害である可能性が高い。
AIガードレールを無効にするには、 Granite ガーディアンのしきい値を 1
に設定する。
AIガードレールの設定 Prompt Lab
Prompt Lab で基盤モデルを扱う際に有害なコンテンツを削除するには、AIガードレールスイッチャー をオンに設定します。
AIガードレール機能は、英語のすべての自然言語基礎モデルに対して自動的に有効になります。
Prompt Lab でAIガードレールを設定するには、以下の手順を実行する:
AIガードレールが有効な状態で、 AIガードレール設定アイコン
をクリックする。
ユーザー入力とモデル出力に適用する異なるフィルタを設定し、必要に応じてフィルタの感度を調整することができます。
HAPフィルター
AIガードレールを無効にするには、HAPスライダーを
1
に設定する。 ガードレールの感度を変えるには、 HAP スライダーを動かす。PIIフィルター
PIIフィルターを有効にするには、 PII スイッチャーをオンに設定する。
Granite フィルターとしてのガーディアン・モデル
Granite ガーディアンのモデレーションはデフォルトで無効になっています。 ガードレールの感度を変更するには、 Granite ガーディアンのスライダーを動かします。
スライダを調整しながら、あなたのニーズに最適な設定を探してみてください。
保存 をクリックします。
AIガードレールをプログラムで設定する
プログラムでAIガードレールを設定することで、 基盤モデルモデルに提供される入力テキストと、モデルによって生成される出力を複数の方法で調整することができます。
REST API
以下の watsonx.ai API エンドポイントを使用して、自然言語の入力および出力テキストに AI ガードレールを設定および適用できます:
- テキスト生成APIを使用して基盤モデル推論する場合、
moderations
フィールドを使用して、 基盤モデル入力と出力にフィルタを適用することができます。 詳しくは、 watsonx.ai API reference documentationのText generationを参照のこと。 - テキスト検出 API を使用してコンテンツを検証する場合、
detectors
フィールドを使用してテキストにフィルタを適用できます。 詳しくは、 watsonx.ai API reference documentationのText detectionを参照。
Python
watsonx.ai Python SDKを使用して、以下の方法で自然言語の入力および出力テキストにAIガードレールを設定および適用できます:
テキスト生成APIを使用して基盤モデル推論する際に、 Python ライブラリを使用してAIガードレールフィルタを調整します。 詳細は 基盤モデルプログラムで参照する (Python) を参照。
テキスト検出APIを使用して基盤モデル推論する際に、 Python ライブラリを使用してAIガードレールフィルタを調整します。 詳しくは、 watsonx.ai Python ライブラリの Guardian クラスを参照。
次のコード例は、テキスト検出APIでフィルタを設定し、使用する方法を示しています:
from ibm_watsonx_ai import APIClient, Credentials from ibm_watsonx_ai.foundation_models.moderations import Guardian credentials = Credentials( url = "https://{region}.ml.cloud.ibm.com", api_key ="{my-IBM-Cloud-API-key}" ) api_client = APIClient(credentials, space_id="{my-space-ID}") detectors = { "granite_guardian": {"threshold": 0.4}, "hap": {"threshold": 0.4}, "pii": {}, } guardian = Guardian( api_client=api_client, # required detectors=detectors # required )
カスタムフィルターを Python ライブラリーで使用するには、テキスト検出リクエストに以下のパラメーターを含めます:
text = "I would like to say some `Indecent words`." response = guardian.detect( text=text, # required detectors=detectors # optional )
詳しくは、 watsonx.ai Python SDKをご覧ください。
詳細情報
親のトピック プロンプトの作成