入出力の安全保護対策を作成する

生成 AI アプリケーションは多くの場合、責任あるモデルの動作を確保するために、入力データと出力データのフィルタリング(セーフガードとも呼ばれます)に依存します。safeguards入出力フィルタリング手法は、モデルに出入りするデータをチェックします。

安全保護対策と既製の安全分類器

事前に安全性を調整し、適切に設計されたプロンプト テンプレートであっても、モデルが意図せぬ危害をもたらすコンテンツを出力することは可能です。これをさらに改善するために、コンテンツ分類器で保護をさらに強化できます。コンテンツ分類は入力と出力の両方に適用できます。

入力分類子は通常、アプリケーションでの使用を想定していないコンテンツや、モデルが安全ポリシーに違反する可能性があるコンテンツをフィルタリングするために使用されます。多くの場合、入力フィルタはコンテンツ ポリシーを回避しようとする敵対的攻撃をターゲットにします。出力分類器は、モデル出力をさらにフィルタリングして、安全性ポリシーに違反する可能性のある意図しない世代を検出できます。すべてのコンテンツ ポリシーを網羅する分類システムを用意することをおすすめします。

Google は、入出力のフィルタリングに使用できるコンテンツの安全性を確保するための既製の分類器を開発しました。

  • Perspective API は、コメントが会話に与える影響の知覚を、機械学習モデルを使用してスコア付けする無料の API です。コメントが有害、脅迫的、侮辱的、トピックと無関係であるかどうかなどについて、確率をキャプチャするスコアを提供します。
  • テキスト管理サービスは、特定の使用量上限以下で使用できる Google Cloud API です。機械学習を使用して、有害な可能性があるさまざまなカテゴリや機密情報とみなされるトピックなど、安全性属性のリストと照らし合わせてドキュメントを分析します。

既製の分類器がポリシー目標をどの程度達成しているかを評価し、失敗したケースを定性的に評価することが重要です。また、オーバー フィルタリングは、意図しない害やアプリケーションの有用性の低下につながる可能性があるので、オーバー フィルタリングが発生している可能性のあるケースも確認することが重要です。このような評価方法の詳細については、モデルとシステムの安全性を評価するをご覧ください。

カスタマイズされた安全性分類器を作成する

ポリシーが既製の API で対応していない場合や、独自の分類器を作成したい場合は、プロンプト調整LoRA などのパラメータ効率調整手法が効果的なフレームワークとなります。これらの方法では、モデル全体をファインチューニングする代わりに、限られた量のデータを使用して、モデルの重要なパラメータの小さなセットをトレーニングできます。これにより、比較的少ないトレーニング データとコンピューティング能力で、新しい安全性ユースケースの分類方法など、新しい動作をモデルが学習できます。このアプローチにより、独自のユーザーとタスクのためにパーソナライズされた安全性ツールを開発できます。

この仕組みを説明するために、この Codelab には「アジャイル分類器」を設定するために必要なコードが示されています。この Codelab では、データの取り込み、LLM 用のフォーマット、LoRA の重みのトレーニング、結果の評価の手順を説明します。Gemma を使用すると、わずか数行のコードでこのような強力な分類器を構築できます。詳細については、Google の研究論文「Towards Agile Text Classifiers for Everyone」では、これらの手法を使用してさまざまな安全タスクをトレーニングし、わずか数百のトレーニング サンプルで最先端のパフォーマンスを実現する方法が示されています。

このチュートリアルの例では、ETHOS データセットを使用してヘイトスピーチ分類器をトレーニングできます。ETHOS データセットは、YouTube と Reddit のコメントから構築された、ヘイトスピーチを検出するための一般公開データセットです。より小規模な Gemma モデルでトレーニングした場合、200 個のサンプル(データセットの 1/4 弱)のみで、F1 スコア 0.80、ROC-AUC 0.78 を達成できます。この結果は、こちらのリーダーボードのリーダーボードで報告されている最先端の結果と比較すると良好です。リーダーボードの他の分類器と同様に、800 個のサンプルでトレーニングした場合、Gemma ベースのアジャイル分類器は F1 スコア 83.74、ROC-AUC スコア 88.17 を達成しています。この分類器は、そのまま使用することも、Gemma Agile Classifier のチュートリアルに従って調整することもできます。

Gemma Agile Classifier チュートリアル

Codelab を開始 Google Colab を起動する

安全保護対策の設定に関するベスト プラクティス

安全分類器を使用することを強くおすすめします。ただし、ガードレールが設定されていると、コンテンツがブロックされた場合、生成モデルはユーザーに対して何も生成しなくなる可能性があります。アプリケーションは、このようなケースに対応できるように設計する必要があります。一般的な chatbot は、返信定型文(例: 「申し訳ありません。言語モデルなので、この件についてはお手伝いできません」)を提供することでこれに対応します。

有用性と無害性の適切なバランスを見つける: 安全分類器を使用する際は、誤検出(たとえば、出力が安全でないと主張する)と偽陰性(出力を安全でないとラベル付けしない)の両方を含むミスが発生することを理解することが重要です。F1、適合率、再現率、AUC-ROC などの指標で分類器を評価することで、偽陽性と偽陰性の誤差をどのようにトレードオフするかを決定できます。分類器のしきい値を変更することで、適切な安全性を確保しつつ、出力の過剰なフィルタリングを回避できる理想的なバランスを見つけることができます。

意図しないバイアスがないかどうか分類器をチェックする: 安全性分類器は、他の ML モデルと同様に、社会文化的固定観念など、意図しないバイアスを伝播する可能性があります。アプリは、問題となる可能性がある動作について適切に評価する必要があります。特に、コンテンツの安全性の分類は、オンラインでの攻撃的な表現の標的となることが多い ID に関連するコンテンツに対して過剰にトリガーされる可能性があります。たとえば、Perspective API が最初にリリースされたとき、特定の ID グループを参照するコメントで、より高い有害度スコアが返されました(ブログ)。このような過剰なトリガー動作は、より頻繁に標的にされるグループのアイデンティティ用語(「黒人」、「イスラム教徒」、「フェミニスト」、「女性」、「ゲイ」など)に言及するコメントは、本質的により有害であることが多いためです。分類器のトレーニングに使用されるデータセットが、特定の単語を含むコメントの不均衡が大きい場合、分類器は、それらの単語を含むコメントを過剰に一般化し、それらの単語を含むすべてのコメントを安全でない可能性があるとみなすことがあります。Jigsaw チームがこの意図しないバイアスを軽減した方法をご覧ください。

デベロッパー向けリソース