# Prompt Flow における評価手順 Prompt Flow を使用して RAG の評価を行う手順は以下の通りです。 ## 正解データセットを作成する 質問と Ground Truth(期待される回答)を作成します。以下のように CSV 形式で作成し、質問は「question」のフィールドに、Ground Truth(期待される回答)は「ground_truth」のフィールドに定義します。 ``` "query","response","context","ground_truth" "一日の労働上限時間は?","一日の労働時間の上限は8時間です。","['[Source20]: す。)は、1週44時間まで働かせることが認められています...(略)","8時間です" "有給は何日取得できますか?", "最低10日の有給休暇が与えられます。","['[Source38]: 有給休暇の取得方法について...(略)", "20日です" ``` ## Azure AI Foundry にアクセスする Azure AI Foundryのポータルにアクセスします。 https://ai.azure.com/ ## Azure AI Foundryのリソース作成画面を開く 「新規作成」をクリックして、Azure AI Foundryのリソース作成画面を開きます。 ![](images/ch01-001.png) **▲ 図1-1: Azure AI Foundryのリソース作成画面を開く** ## リソースの種類を選択する 「Azure AI Foundryリソース」を選択し(①)、「次へ」をクリックします(②)。 ![](images/ch01-002.png) **▲ 図1-2: Azure AI Foundryリソースの種類を選択する** ## プロジェクト名を入力する プロジェクト名を入力します(①)。プロジェクト名は任意の名前を付けることができますが、わかりやすい名前を付けることをお勧めします。次に、「作成する」をクリックします(②)。 ![](images/ch01-003.png) **▲ 図1-3: プロジェクト名を入力する** ## モデルのデプロイ画面を開く 左部メニューから「モデル+エンドポイント」(①)→「モデルのデプロイ」(②)→「基本モデルをデプロイする」(③)の順にクリックして、モデルのデプロイ画面を開きます。 ![](images/ch01-004.png) **▲ 図1-4: モデルのデプロイ画面を開く** ## モデルを選択する 「チャットの完了」と表示されている任意のモデルを選択して(①)、「確認」をクリックします(②)。 ![](images/ch01-005.png) **▲ 図1-5: モデルを選択する** ## モデルをデプロイする 「デプロイ」をクリックして、モデルをデプロイします。 ![](images/ch01-006.png) **▲ 図1-6: モデルをデプロイする** ## 評価の画面を表示する 「評価」(①)→「新しい評価を作成する」(②)の順にクリックします。 ![](images/ch01-007.png) **▲ 図1-7: 新しい評価を作成する** ## 評価対象を選択する 評価対象を選択します。「既存のクエリ応答データセットを評価する」を選択します(①)。次に、「次へ」をクリックします(②)。 ![](images/ch01-008.png) **▲ 図1-8: 既存のクエリ応答データセットを評価する** ## 新しいデータセットをアップロードする 「新しいデータセットのアップロード」をクリックします。ファイル選択画面が表示されるので、冒頭の「正解データセットを作成する」で作成した正解データセットを選択します。 ![](images/ch01-009.png) **▲ 図1-9: 新しいデータセットをアップロードする** ## テスト条件を選択する画面を表示する プレビューに①のように表示されていることを確認して、「次へ」(②)をクリックします。 ![](images/ch01-010.png) **▲ 図1-10: テスト条件を選択する画面** ## エバリュエーター選択画面を表示する エバリュエーター選択画面を表示するために、「+追加」をクリックします。 ![](images/ch01-011.png) **▲ 図1-11: テスト条件を追加する画面** ## エバリュエーターを選択する 「リッカート尺度エバリュエーター」をクリックします。 ![](images/ch01-012.png) **▲ 図1-12: エバリュエーターを選択する画面** ## エバリュエーター(根拠性)を追加する 評価指標の一つである「根拠性」を追加します。以下のように設定して、「追加」をクリックします。 - 抽出条件の名前: groundness - プリセット: 根拠性 - 評価結果: 先ほど作成したデプロイ - コンテキスト: {{item.context}} - クエリ: {{item.query}} - 応答: {{item.response}} - 成績が合格: 1〜5までで任意の値(5段階評価の中で合格とする値) ![](images/ch01-013.png) **▲ 図1-13: エバリュエーター(根拠性)を追加する画面** ## エバリュエーター(関連度)を追加する 同様の手順で、「関連度」の指標を追加します。以下のように設定して、「追加」をクリックします。 - 抽出条件の名前: relevance - プリセット: 関連度 - 評価結果: 先ほど作成したデプロイ - クエリ: {{item.query}} - 応答: {{item.response}} - 成績が合格: 1〜5までで任意の値(5段階評価の中で合格とする値) ![](images/ch01-014.png) **▲ 図1-14: エバリュエーター(関連度)を追加する画面** ## エバリュエーター(コヒーレンス)を追加する 同様の手順で、「コヒーレンス」の指標を追加します。以下のように設定して、「追加」をクリックします。 - 抽出条件の名前: coherence - プリセット: コヒーレンス - 評価結果: 先ほど作成したデプロイ - クエリ: {{item.query}} - 応答: {{item.response}} - 成績が合格: 1〜5までで任意の値(5段階評価の中で合格とする値) ![](images/ch01-015.png) **▲ 図1-15: エバリュエーター(コヒーレンス)を追加する画面** ## エバリュエーター(流暢性)を追加する 同様の手順で、「流暢性」の指標を追加します。以下のように設定して、「追加」をクリックします。 - 抽出条件の名前: fluency - プリセット: 流暢性 - 評価結果: 先ほど作成したデプロイ - クエリ: {{item.query}} - 応答: {{item.response}} - 成績が合格: 1〜5までで任意の値(5段階評価の中で合格とする値) ![](images/ch01-016.png) **▲ 図1-16: エバリュエーター(流暢性)を追加する画面** ## エバリュエーター(類似性)を追加する 同様の手順で、「類似性」の指標を追加します。以下のように設定して、「追加」をクリックします。 - 抽出条件の名前: similarity - プリセット: 類似性 - 評価結果: 先ほど作成したデプロイ - クエリ: {{item.query}} - グラウンドトゥルース: {{item.ground_truth}} - 応答: {{item.response}} - 成績が合格: 1〜5までで任意の値(5段階評価の中で合格とする値) ![](images/ch01-017.png) **▲ 図1-17: エバリュエーター(類似性)を追加する画面** ## 送信画面を表示する 評価指標が追加されたことを確認し(①)、「次へ」(②)をクリックします。 ![](images/ch01-018.png) **▲ 図1-18: 送信画面を表示する** ## 評価を行う 「送信」をクリックして、評価を行います。 ![](images/ch01-019.png) **▲ 図1-19: 評価を行う** ## 評価結果を確認する 評価が完了すると、結果が表示されます。「状態」が「完了」になっていれば評価が完了しています(①)。次に、「データ」(②)をクリックします。 ![](images/ch01-020.png) **▲ 図1-20: 評価結果を確認する** ## 評価結果の詳細を確認する 評価結果の詳細が表示されます。各評価指標の詳細を確認することができます。「Passed」は合格、「Fail」は不合格を示しています。先ほど設定した「成績が合格」の値に基づいて評価が行われ、その値以上であれば「Passed」、それ未満であれば「Fail」となります。 ![](images/ch01-021.png) **▲ 図1-21: 評価結果の詳細を確認する**