4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure AI Foundryで構築したAIチャットボットの評価方法

Last updated at Posted at 2025-12-11

Azure AI Foundryで構築したAIチャットボットの評価方法

目次

はじめに

本記事ではAzure AI Foundryの評価機能を利用し、構築したAIチャットボットに対して、
5つの評価指標をリッカート尺度(5段階評価)でスコアリングする方法をご紹介します。

  • 構築したAIチャットボットはどのように評価すれば良いの?
  • Azure AI Foundryの評価機能を知りたい!評価方法を知りたい!
    などの興味がある方に向けた記事内容となっています

本記事の前提

  • Markdown形式のFAQファイルを作成済であること
    (本記事ではMarkdownファイル作成方法は取り扱いません)
  • Azure AI Searchにベクトルインデックスを事前作成済みであること
    (本記事ではベクトルインデックスの作成方法は取り扱いません)
  • 画面表示は変更されている可能性があります
    (最新情報をご確認ください。画面表示は2025年8月時点のものです)

評価ステップ

大きく5つのステップに分けて説明します

  1. 事前準備
    • 応答取得用csvファイルの作成
  2. 手動評価
    • AIチャットボットの応答を取得
  3. 自動評価
    • チャットボットの応答を5つの指標で評価
  4. 評価結果の確認
    • 評価結果スコアを分析し、低評価の領域を特定
  5. 評価後のアクション
    • アクションを検討し、FAQやプロンプトなどの修正 → 改善サイクルへ

1. 前準備

  • MarkdownのFAQファイルからAIの応答取得に利用するCSVファイルを作成します
    以下形式のMarkdownファイルがある前提で記載しています

すでにcsv形式のファイルがあれば、当手順はスキップしていただいて問題ありません

【Markdownファイル記載例】

## Q1: Metallica(メタリカ)のメンバー構成
**A1:**
- Vocal & Rhythm Guitar: James Hetfield
- Lead Guitar: Kirk Hammett
- Bass Guitar: Robert Trujillo
- Drums: Lars Ulrich

## Q2: Metallicaの結成年は?
**A2:**
- 1981年

## Q3: Metallicaの出身地は?
**A3:**
- アメリカ合衆国カリフォルニア州ロサンゼルス
  • 生成AI(M365 Copilotチャット等)でMarkdownをcsvに変換するよう指示します

プロンプト例:
mdファイルの1番から50番ごとにQをuser_inputとし、
Aをreferenceとするcsvファイルを作成し、ダウンロードできるようにしてください

  • 筆者環境ではcsvの51行目以降のデータが取得されなかったため、
    1ファイル50行以内となるよう分割して実施しました。

【csvファイル出力例】

user_input,reference
Metallica(メタリカ)のメンバー構成,"- Vocal & Rhythm Guitar: James Hetfield
- Lead Guitar: Kirk Hammett
- Bass Guitar: Robert Trujillo
- Drums: Lars Ulrich"
Metallicaの結成年は?,1981年
Metallicaの出身地は?,アメリカ合衆国カリフォルニア州ロサンゼルス

2. 手動回答取得

  • 以下の流れでFAQの質問からAIチャットボットの回答を取得します

  • 「Azure AI Foundry」を開き、「評価」-「手動評価」の順でクリックします
    image.png

  • 「新しい手動評価」をクリックします
    image.png

  • 「システムメッセージ」欄に「システムプロンプト」を入力し、
    作成済みのベクトルインデックスを指定します
    image.png

  • 「テストデータのインポート」を開きます
    image.png

  • 以下のウィンドウが表示される場合、「保存せずにインポート」クリックで先に進みます
    ※以前の結果を保存する必要がある場合は「キャンセル」で戻ります
    image.png

  • 「1」の手順で作成したcsvファイルを指定 → アップロード → 「次へ」ボタンをクリックします
    image.png

  • プレビュー画面の下部にあるプルダウンメニューから
    「入力」および「出力」の列を選択し、「追加」ボタンをクリックする
    image.png

  • 「実行」ボタンをクリックします
    → セットした入力に対して、応答が順次「出力」列に入力されます
    image.png

全ての質問の応答が出力されるまでしばらく時間がかかります

  • 手動評価結果が表示されるので、
    「エクスポート」→「結果の保存」の順でクリックし、任意ファイル名で保存します
    image.png

3. 5つの指標で評価

  • 2の取得結果を5つの評価指標で評価します

  • 「評価」→「自動評価」→「新しい評価」の順でクリックします
    image.png

  • 「既存のクエリ応答データセットを評価する」ボタンをクリックし、
    下部の「次へ」ボタンをクリックします
    image.png

  • 「新しいデータセットのアップロード」ボタンをクリックし、
    「プレビュー」の表示を確認 → 「次へ」ボタンをクリックします
    image.png

  • 「+追加」ボタンをクリックし、
    「リッカート尺度エバリュエーター」をクリックします
    image.png

  • 「エバリュエーターを選択する」ウィンドウで1~5の順で設定します

    1. ①の「プリセット」から各評価指標をクリックします
    2. ②の「抽出条件の名前」欄を半角英数字文字列に修正します
      ※ 筆者環境では2バイト文字 → 1バイト文字へ修正しないと
       「追加」ボタンが効かない状態でした
      ※ 本記事では下記【参考1】の通りに修正しています
    3. ③の各「コンテキスト」プルダウンから列を指定します
      ※ 本記事では下記【参考2】の通りに指定します
    4. ④「追加」ボタンをクリックします
    5. 「1」~「4」を繰り返し、各評価プリセット分を繰り返し実施します
      image.png

【参考1】

プリセットボタン 修正値 評価指標と意味
根拠性 Groundness 回答がFAQや提供された情報に基づいているか(事実に裏付けがあるか)
関連度 Relevance 回答が質問の意図に適切に関連しているか
コヒーレンス Coherence 回答が論理的に一貫しており、文脈に沿っているか
流暢性 Fluency 回答が自然で読みやすい言語表現になっているか
類似性 Similarity モデルの回答が参照回答(Reference)とどの程度一致しているか

【参考2】

設定するプルダウンメニュー
コンテキスト 「想定される回答」列を指定
クエリ 「質問」列を指定
応答 「LLM回答」列を指定
  • 全ての評価指標を設定した後、画面下部にある「次へ」ボタンをクリックします
    image.png

  • 評価名欄を任意の文字列に修正し「送信」ボタンをクリックします
    →「送信」ボタンクリック後、処理が始まるので完了するまで待ちます
    image.png

4. 評価結果の確認

  • 評価結果を確認します
  • 「データ」タブをクリックするとFAQのQAの応答結果毎に詳細を確認できます
  • 評価結果は「結果のエクスポート」ボタンでcsvファイルに保存可能です
  • 例えば、以下の画面では全てのスコアが緑「Pass」ですが、
    低スコアの場合、黄「Warning」や、赤「Fail」と視覚的にわかりやすく表示されます

image.png

5. 評価後のアクション

  • 自動評価結果を確認した上で改善の要否を判断し、必要なアクションを検討します

よくある低スコアの原因とアクション例

評価指標 低スコアの原因 アクション例
Groundness(根拠性) FAQに基づかない回答 FAQファイルの内容を精査し、正確な情報を追加・更新
Relevance(関連度) 質問と回答がずれている ・FAQの質問文を実際のユーザーの質問傾向に合わせた内容に修正する ・システムプロンプトで「質問意図を正確に理解する」指示を追加
Coherence(一貫性) 回答文の内容に一貫性(脈略)がない ・システムプロンプトで「一貫性のある文章で回答」する旨を指示する等
Fluency(流暢性) 不自然な日本語 ・システムプロンプトで「自然な日本語で回答」する指示する・LLMモデルの変更等
Similarity(類似性) モデル回答とReferenceの内容が乖離している ・FAQの回答文をより明確に記載する・システムプロンプトでFAQの表現を尊重する旨の指示を追加する等
  • 低スコアやFailがNGとは限りません
  • 評価結果、実際の回答、FAQを確認して、問題ないというケースもあります
  • 評価結果を保管し、継続的にスコアの変化を確認することが気付きになります

AIチャットボットの汎用性を確認

FAQ以外の質問も評価することで、より精度の高いAIチャットボットへ

  • RAGは元の文章に基づいた回答が得られるかが重要なポイント
  • 固有知識と関係のない質問や的外れな回答が低スコアで評価されれば
    信頼性の高いAIボットと言えるはず
  • ユーザーが入力すると想定される質問を評価しておくのも良いアプローチでしょう

プロセスを回す

MLOpsとHuman In The Loopの考えを組み入れた改善プロセスを回せると良いでしょう

  1. 評価結果の低スコア領域を特定する
  2. 低スコア領域の評価結果を目視確認する
  3. 対応方針を決める
  4. 対応方針に則した対応を行う
     (例えば:FAQの修正、システムプロンプトを見直すなどの対応が考えられます)
  5. (当記事の頭に戻り)修正後の応答を再度評価する

本記事は以上です。

まとめ

いかがでしたでしょうか?

以下はAzure AI Foundryの評価機能を使ってみた私の感想です

  • 様々な評価指標を一気通貫で評価できるのは魅力的
  • 基本的にGUI操作で簡単に評価できる点がとっつきやすいと感じた
  • 評価した結果が、視覚的かつ直感的に理解しやすかった
  • 評価後のステップに進めることが意識されたツールと感じた

つまずきポイントはいくつかあるかもしれませんが
評価結果が視覚的に分かりやすく、
直感的に把握できるのはこのツールの強みと言えそうです。

AI Foundryには今回紹介した評価指標以外にも、
セキュリティ関連のテンプレートをはじめ、多様なテンプレートが用意されています。
活用場面を事前に把握しておくことで必要なときにすぐ使えると考えています。

最後までお読みいただきありがとうございました。
もしよろしければ感想などフィードバックをお寄せいただけますと幸いです。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?