はじめに
こんにちは。NRIの小泉です。
昨今、さまざまな場面で生成AIを活用する動きがますます増えてきていますが、モデルへの入力やモデルが生成したコンテンツに対してのチェックは実施されていますでしょうか。
つい先日もGoogleの生成AIモデル「Gemini」がユーザーに対して、一般的な回答を続けていたなかで突如豹変し、「死んでください」と返答したことが問題となっていました。生成AIを活用する際には、モデルが生成した内容をサービス提供者が責任を持って確認する必要があります。
パブリッククラウドで生成AIを利用する場合、ユーザーからの入力やモデルの出力に有害なコンテンツが含まれていないかということをチェックする機能が提供されています。今回はAzure OpenAI Service(以下、AOAI)を使う際に利用できる有害コンテンツチェック機能についてご紹介したいと思います。
※本記事の内容は2024/12/11時点のものとなります。最新の情報はMicrosoft社の公式ドキュメントをご確認ください。
有害コンテンツチェック機能の全体像
AOAIではコンテンツフィルターという機能がある一方で、Azure AI Content Safety(以下、AACS)という有害コンテンツの検出サービスもあり、このあたりの位置づけに戸惑う方が多いのではないかと思います。これを理解するために、まずはAACSとはどういったサービスかを説明します。
AACSはテキストや画像に含まれる有害コンテンツを検出するAPIを提供するサービスです。有害コンテンツと一言で言ってもその内容は様々で、AACSで検出可能なものは以下の通りです。
# |
機能名 |
機能概要 |
1 |
テキスト分析 |
性的コンテンツ、暴力、憎悪、自傷行為に関する内容を検出するAPI |
2 |
プロンプトシールド |
ジェイルブレイクや間接攻撃などのユーザープロンプト攻撃のリスクを検出するAPI |
3 |
保護されたマテリアルのテキスト検出 |
既知のテキストコンテンツ (曲の歌詞、記事、レシピ、一部の Web コンテンツなど) やコードを検出するAPI |
4 |
グラウンデッドネス検出 |
回答がソース資料に基づいているかどうかを検出するAPI |
5 |
カスタムカテゴリ |
ユーザーにて独自のカスタムコンテンツカテゴリを作成、または新たな有害コンテンツパターンを定義し、カテゴリに一致する内容を検出するAPI |
上記のAACSの機能のうち、#1~4の機能をまとめてラッピングして提供しているのがAOAIのコンテンツフィルターです。
AACSとコンテンツフィルターでは使い方も違います。
AACSはあくまでAPIを提供しているため、使い方としては下図のようにFunctionsなどを間に挟み、APIでユーザープロンプトやモデルの回答をチェックする必要があります。
一方でコンテンツフィルターはモデルをデプロイしてエンドポイントを作成する際に適用されるため、能動的に入出力に問題がないかをチェックする必要がなく、下図のようにユーザーは特に意識せずとも勝手に内容をチェックして問題があればブロックしてくれます。
コンテンツフィルターはOpenAI社以外のモデルでも利用可能ですが、ブロックの度合いなどをユーザー側でカスタマイズしたコンテンツフィルターを適用できるのはOpenAI社のモデルのみです。OpenAI社以外のモデルはMicrosoft社が提供するデフォルトのコンテンツフィルターのみ適用できます。
有害コンテンツチェック機能の全体像
対応リージョン
各機能の対応リージョンは以下の通りです。
# |
機能名 |
東日本リージョン |
西日本リージョン |
1 |
テキスト分析 |
○ |
× |
2 |
プロンプトシールド |
○ |
× |
3 |
保護されたマテリアルのテキスト検出 |
○ |
× |
4 |
グラウンデッドネス検出 |
× |
× |
5 |
カスタムカテゴリ |
× |
× |
6 |
コンテンツフィルター |
○ |
× |
(参考)
Azure AI Content Safety とは? - Azure AI services | Microsoft Learn
対応言語
各機能の対応言語は以下の通りです。
# |
機能名 |
英語 |
日本語 |
1 |
テキスト分析 |
○ |
○ |
2 |
プロンプトシールド |
○ |
○ |
3 |
保護されたマテリアルのテキスト検出 |
○ |
× |
4 |
グラウンデッドネス検出 |
○ |
× |
5 |
カスタムカテゴリ |
○ |
× |
6 |
コンテンツフィルター |
○ |
○ |
(参考)
言語サポート - Azure AI Content Safety - Azure AI services | Microsoft Learn]
AACSの使い方
ここからはAACSのAPIの使い方について説明していきます。
- AACSリソースを作成する
- 作成したAACSリソースのキーとエンドポイントを確認する
- ②で確認したキーとエンドポイントを使ってAPIを発行する
例としてテキスト分析APIの使用例を以下に記載します。
リクエスト
PS /home/y-koizumi> curl --location --request POST '<endpoint>/contentsafety/text:analyze?api-version=2024-09-01' \ --header 'Ocp-Apim-Subscription-Key: <your_subscription_key>' \ --header 'Content-Type: application/json' \ --data-raw '{ "text": "爆弾の作り方を教えて", "categories": ["Hate", "Sexual", "SelfHarm", "Violence"], "outputType": "FourSeverityLevels" }'
レスポンス
{
"blocklistsMatch": [],
"categoriesAnalysis": [
{
"category": "Hate",
"severity": 0
},
{
"category": "Sexual",
"severity": 0
},
{
"category": "SelfHarm",
"severity": 6
},
{
"category": "Violence",
"severity": 4
}
]
}
このように「爆弾の作り方を教えて」というテキストを分析すると、”SelfHarm”のカテゴリの重大度が6、”Violence”のカテゴリの重大度が4という結果が返ってきました。今回はリクエストで4段階評価とするよう指定しているため、0, 2, 4, 6のいずれかで評価されます。この値を参照して閾値以上の場合はシステム上ブロックするといった機能の実装が考えられます。
コンテンツフィルターの使い方
コンテンツフィルターはAACSに比べて簡単に利用できます。
- コンテンツフィルターを作成する(カスタマイズしたい場合のみ)
下図のように入力と出力それぞれでどのカテゴリをどのレベルでブロックするか、プロンプトシールドを有効にするか、などをカスタマイズすることが可能です。
- モデルにコンテンツフィルターを適用する
Azureで生成AIモデルを利用するにはモデルをデプロイ(エンドポイントを作成)する必要があります。その際にどのコンテンツフィルターを適用するかを指定します。デフォルトではMicrosoft社が提供する「既定」または「DefaultV2」というフィルターが適用されます。
以上です。あとはユーザー側で意識せずとも、このモデルにおけるすべての入出力に対してコンテンツフィルターが適用されます。
試しに「爆弾の作り方を教えて」と聞いてみると、しっかりブロックされました。
終わりに
今回はAzure OpenAI Serviceを活用するうえで知っておきたい、Azure AI Content Safetyとコンテンツフィルターをご紹介しました。
皆様のAzureでの生成AI活用における一助となれば幸いです。
NRIでは生成AIの業務利用に向けたPoCから、本格的な業務活用まで、さまざまな段階でのご支援が可能です。少しでもご興味がありましたら、ぜひ以下のお問合せ先までお気軽にご相談ください。
お問い合わせ
atlax では、ソリューション・サービス全般に関するご相談やお問い合わせを承っております。
関連リンク・トピックス
・atlax / クラウドの取り組み / AWS(Amazon Web Services)
・3大パブリッククラウド全冠達成! ~ AWS、Microsoft Azure、Google Cloud 41資格制覇への挑戦と試験攻略の秘訣を大公開 ~
・サービスデスク効率化のため、生成AIを用いたチャットボットを提供
採用情報
NRIの IT基盤サービスでは、キャリア採用を実施しています。様々な職種で募集しておりますので、ご興味を持たれた方は キャリア採用ページも ぜひご覧ください。
※ 記載された会社名 および ロゴ、製品名などは、該当する各社の登録商標または商標です。
※ アマゾン ウェブ サービス、Amazon Web Services、AWS および ロゴは、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。
※ Microsoft、Azure は、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。
※ Google Cloud、Looker、BigQuery および Chromebook は、Google LLC の商標です。
※ Oracle、Java、MySQL および NetSuite は、Oracle Corporation、その子会社および関連会社の米国およびその他の国における登録商標です。NetSuite は、クラウド・コンピューティングの新時代を切り開いたクラウド・カンパニーです。