【Azure AI入門⑤】Azure AI Foundryの評価と責任あるAI|品質の定量化とコンテンツフィルター

Azure

エージェントや RAG で「動くもの」ができると、つい本番に出したくなります。ですが、生成 AI で一番怖いのは「なんとなく動いているように見えて、実は間違った答えや危険な出力を返している」状態です。それを防ぐのが、応答を数字で採点する評価(Evaluation)と、有害な入出力を止める責任ある AI(コンテンツフィルター)の2本柱です。

チャットボットを作ったはいいけど、品質が良いのか悪いのか「なんとなく」でしか分からない…。それに変な出力を止める仕組みも要るよね?

この記事は Azure AI Foundry シリーズの第5回として、品質と安全性の担保を次の流れで整理します。

  • 評価(Evaluation)で品質を定量計測できる
  • 安全性・リスク評価(有害コンテンツ・脱獄耐性)を理解している
  • オンライン評価 / 継続的モニタリングを理解している
  • コンテンツフィルター(カテゴリ・重大度しきい値)を構成できる
  • Prompt Shields / Groundedness 検出など Content Safety を活用できる

評価(Evaluation)|「なんとなく」を数字にする

生成 AI の品質改善で一番の敵は「なんとなく良くなった気がする」という主観です。プロンプトを変えたりモデルを差し替えたりしたとき、本当に良くなったのかは数字で比べないと分かりません。それを可能にするのが評価です。

評価とは、テスト用のデータセット(質問と期待される答えの組)に対してモデルの応答を走らせ、品質メトリックで点数を付けて比較する仕組みです。プロンプト間・モデル間を客観的に選べるようになります。

Foundry には、生成 AI 向けの組み込み品質メトリックが揃っています。特に RAG では次の4つがよく使われます。

メトリック測るもの
Groundedness回答が「与えた根拠文書」に忠実か(=でっち上げていないか)
Relevance回答が質問にちゃんと関連しているか
Coherence文章として筋が通り、読みやすいか
Fluency言語として自然で流暢か

特に RAG で最重要なのが Groundedness です。「渡した根拠に基づいて答えているか」を測るので、ハルシネーション(もっともらしい嘘)の検知に直結します。これらのメトリックは、多くの場合「別の LLM に採点させる(LLM-as-a-judge)」方式で自動採点されます。

【ここが説明できればOK①】
「評価はテストデータに対し Groundedness / Relevance / Coherence / Fluency 等で応答を採点し、プロンプト間・モデル間を客観的に比較する仕組み。RAG では Groundedness が最重要」——これを言えればOKです。

安全性・リスク評価|有害コンテンツと脱獄耐性を測る

品質(賢さ)だけでなく、安全性も評価の対象です。「危ない質問に、危ない答えを返さないか」を出す前に確かめておきます。

  • 有害コンテンツ評価:暴力・憎悪・性的・自傷などのカテゴリで、モデルが不適切な出力をしないかを採点。
  • 脱獄(ジェイルブレイク)耐性:「制約を無視して」と誘導する攻撃的なプロンプトに、うっかり従わないかを測る。
  • 保護素材(Protected material):著作物などをそのまま吐き出していないかのチェック。

これらは敵対的テスト(わざと攻撃的な入力を投げる)で炙り出します。「善意のユーザーには問題なくても、悪意のある入力に弱い」というのはよくある落とし穴なので、出す前にここを測っておく価値は大きいです。

【ここが説明できればOK②】
「安全性評価は有害コンテンツ・脱獄耐性・保護素材などを、敵対的テストで採点する。品質だけでなく『攻撃的入力への強さ』を出す前に測る」——これを言えればOKです。

オンライン評価|本番でも品質を測り続ける

評価は「出す前に1回やって終わり」ではありません。本番運用が始まると、ユーザーは想定外の質問をしてきますし、モデルの更新やデータの変化で品質はじわじわ劣化することがあります。

そこで有効なのがオンライン評価(継続的モニタリング)です。本番トラフィックの一部に対して評価を継続実行し、Groundedness や安全性スコアが下がっていないかをダッシュボードで監視します。閾値を割ったらアラートを出す、という運用にすれば、品質劣化に気づかず放置する事故を防げます。

「出す前の評価」と「出した後の継続評価」はセット。インフラの監視と同じで、生成AIも“作りっぱなし”は危ないんだ。次回の運用・監視の話にそのまま繋がるよ!

【ここが説明できればOK③】
「オンライン評価は本番トラフィックに評価を継続実行し、品質・安全性スコアの劣化を監視する。出す前と出した後の評価はセット」——これを言えればOKです。

コンテンツフィルター|カテゴリと重大度しきい値

評価が「事前・事後のテスト」だとすれば、コンテンツフィルター実行時のリアルタイムな防御壁です。Azure OpenAI / Foundry のモデル呼び出しには、既定でコンテンツフィルターが働いています。

コンテンツフィルターは、入力(プロンプト)と出力(応答)の両方を暴力・憎悪・性的・自傷の4カテゴリで判定し、設定した重大度しきい値を超えたらブロックする仕組みです。

ポイントは「カテゴリごとに重大度のしきい値を調整できる」ことです。各カテゴリで「安全/低/中/高」の重大度が判定され、どのレベルからブロックするかを設定します。用途に応じて締めたり緩めたりできます。

入力プロンプト ─▶ 【コンテンツフィルター】─▶ モデル
                     4カテゴリ ×(安全/低/中/高)
                     しきい値超え → ブロック
モデル出力     ─▶ 【コンテンツフィルター】─▶ ユーザー
                     入力だけでなく出力側もチェック

→ カテゴリごとにしきい値を調整(締める/緩める)

医療や法律のような文脈では、単語だけ見ると有害判定されがちなので緩める調整が要ることもあります。逆に、子ども向けサービスなら締める。「フィルターは一律ではなく、用途に合わせて設計するもの」と捉えておくと実務で役立ちます。

【ここが説明できればOK④】
「コンテンツフィルターは入力・出力を暴力/憎悪/性的/自傷の4カテゴリ×重大度で判定しブロックする。カテゴリごとにしきい値を用途に合わせて調整できる」——これを言えればOKです。

Content Safety|Prompt Shields と Groundedness 検出

4カテゴリのフィルターに加えて、Azure AI Content Safety はより高度な防御機能を提供します。生成 AI 特有の攻撃に効く2つを押さえましょう。

  • Prompt Shieldsプロンプトインジェクション(「これまでの指示を無視して〜」といった乗っ取り攻撃)や、外部文書に埋め込まれた悪意ある指示(間接攻撃)を検知してブロックする。エージェントや RAG では特に重要。
  • Groundedness 検出:モデルの出力が与えた根拠から外れていないかをリアルタイムに検知する。RAG のハルシネーションを実行時に食い止められる。

整理すると、防御は三段構えです。①コンテンツフィルター(4カテゴリの有害性)→ ②Prompt Shields(乗っ取り攻撃)→ ③Groundedness 検出(嘘の検知)。この3つを組み合わせることで、「有害・乗っ取り・でっち上げ」という生成 AI の主要リスクをカバーできます。

【ここが説明できればOK⑤】
「Content Safety の Prompt Shields はプロンプトインジェクションを、Groundedness 検出は根拠外れ(嘘)を実行時に防ぐ。フィルター+Shields+Groundedness の三段構え」——これを言えればOKです。

まとめ

  • 評価(Evaluation)で Groundedness / Relevance 等を採点し「なんとなく」を数字に
  • 安全性評価は有害コンテンツ・脱獄耐性を敵対的テストで測る
  • オンライン評価で本番の品質劣化を継続監視
  • コンテンツフィルターは4カテゴリ×重大度しきい値でリアルタイムにブロック
  • Content Safetyの Prompt Shields・Groundedness 検出で三段構えの防御

品質と安全性を担保できたら、いよいよ最終回です。第6回では運用——クォータ / レート制限、監視・トレース、コスト最適化、そしてアプリの本番デプロイまでを整理して、シリーズを締めくくります。

あわせて読みたい

タイトルとURLをコピーしました