🍩

Azure 生成 AI 活用のガードレール整備:「責任ある AI の観点から LLM に対して特定のコンテンツ フィルターを強制する」編

2024/12/13に公開

この記事は、Microsoft Azure Tech Advent Calendar 2024 13 日目の記事です。

はじめに

Azure OpenAI Service では責任ある AI[1] の観点から、コンテンツ フィルター[2] の設定が義務付けられています。コンテンツ フィルターとは、入力プロンプトと (出力される) 入力候補の両方で、有害な可能性があるコンテンツ特有のカテゴリを検出し、防止処理を行います。

Azure OpenAI Service では既定の状態でいくつかのコンテンツ フィルターを提供していますが、要件レベルに応じてカスタマイズできます。一部の信頼されたお客様においては、申請によって既定のコンテンツ フィルターを緩める方向へ調整が可能ですが、それ以外の場合はより厳しくする方向にのみ調整可能です。

組織の倫理的な基準やユーザ保護の観点、また法的基準への準拠の観点から、適切なレベルで LLM の出力を制御する必要があります。

特定のコンテンツ フィルターの適用を強制する

ワークロードの厳密性によっては、特定のカスタマイズされたコンテンツ フィルターを適用しなくてはならないというケースもあるでしょう。実際にどのように実装していくのか見ていきましょう。

カスタム コンテンツ フィルターの作成

まずは Azure AI Foundry 上で、コンテンツ フィルターを作成していきます。[Safety + security] > [+ Create content filter] から作成します。

より厳しい倫理規制があるユース ケースを想定しているため、[Input filter] および [Output filter] において、すべてを High に設定します。

ここは一旦チェックを付けず、既存のモデルには適用せずに進めます。

コンテンツ フィルターが作成されていることを確認します。あとで利用するため、ここで作成したコンテンツ フィルターの名前を控えておきます。

Azure Policy の構成

特定のコンテンツ フィルターを強制したい場合でも、やはり Azure Policy を使って制御できます。[Definitions] > [+ Policy definition] からポリシー定義を新規で作成します。

[POLICY RULE] に以下の内容を記述します。

enforce-content-filter
{
  "mode": "All",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.CognitiveServices/accounts/deployments"
        },
        {
          "not": {
            "field": "Microsoft.CognitiveServices/accounts/deployments/raiPolicyName",
            "in": "[parameters('filterNames')]"
          }
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  },
  "parameters": {
    "filterNames": {
      "type": "Array",
      "metadata": {
        "displayName": "Allowed Content filters",
        "description": "The list of allowed Content filters"
      }
    }
  }
}

定義が作成出来たら、[Assign policy] から割り当てていきます。[Parameters] 画面で、Allowed Content filters に選択肢として与えたいコンテンツ フィルターのリストを配列として入力します。ここでは先ほど作成したものを一つだけ入力します(["CustomContentFilter417"])。複数ある場合はカンマ区切りで入力します。ほかの設定項目は既定のまま割り当てます。

数分待ったうえで、[View compliance] から状況を確認します。すでにデプロイ済みのモデルのうち、非準拠のものがこの時点でマークされます。

Azure AI Foundry 上でのモデルの新規デプロイ

既定で提供されているコンテンツ フィルタ(DefaultV2)を選択してデプロイすると、Azure Policy によって拒否されます。

一方で、許可リストに入れた CustomContentFilter417 を選択すると、問題なくデプロイできます。

おわりに

今回は、責任ある AI の観点から、特定のコンテンツ フィルタを適用するための方法について確認しました。原理的には LLM のデプロイの種類を制御する[3] のとまったく同じですが、制御できることを知っておくと役に立つ場面はあると思います。また、モデルの種類を限定する方法[4] も合わせてご確認いただき、Azure 生成 AI 活用のガードレール整備のイメージをお持ちいただけると幸いです。

脚注
  1. https://learn.microsoft.com/en-us/legal/cognitive-services/openai/overview ↩︎

  2. https://learn.microsoft.com/ja-jp/azure/ai-services/openai/concepts/content-filter?tabs=warning%2Cuser-prompt%2Cpython-new ↩︎

  3. https://zenn.dev/microsoft/articles/20241210-aoaideploytyperegulate ↩︎

  4. https://zenn.dev/microsoft/articles/20241115-modelcontrol ↩︎

GitHubで編集を提案
Microsoft (有志)

Discussion