Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RAG Evaluation Methodology

oggata
January 22, 2025
4

RAG Evaluation Methodology

oggata

January 22, 2025
Tweet

Transcript

  1. ねこである確立を教えてく ださい 90%です 60%です 40%です 面白いRPGのゲームを 教えてください ドラクエとFFです クロノトリガーです クロノトリガーは1995年に発売され

    たRPGです RPGはRole Playgin Gameの略語で 有名なものはドラクエなどがありま す MLOps と LLMOps における評価 自由に入力するチャットで 80%の正答率ってどういうこと? 画像認識でねこの判定を 80%以上にする場合 回答か不正解か単純に分類できず、 悪い回答から良い回答までグラデーションがある いろんなねこの写真を学習させることで ねこの分類器を作成することができる
  2. Faithfulness(忠実度) 生成された回答が与えられたコンテキストに対して事実上一貫してい るか ・質問: アインシュタインはどこで、どこで生まれましたか? ・背景: アルバート・アインシュタイン (1879 年 3

    月 14 日生まれ) はドイツ生まれの理論物理学者であり、史上最も偉大で最も影響力のある科学者の一人であると広 く考えられています。 ・高スコアとなるもの: アインシュタインは 1879 年 3 月 14 日にドイツで生まれました。 ・低スコアとなるもの: アインシュタインは 1879 年 3 月 20 日にドイツで生まれました。 Answer Relevancy(回答の関連 性) 生成された回答が与えられたプロンプトにどれだけ関連しているか 不完全な回答や冗長な情報を含む回答には低いスコアとなる ・質問: フランスはどこですか、そしてその首都はどこですか? ・高スコアとなるもの: フランスは西ヨーロッパにあり、パリはその首都です。 ・低スコアとなるもの: フランスは西ヨーロッパにあります。 Context Precision(コンテキストの 精度) 取得されたコンテキスト内のすべての関連アイテムが高くランク付け されているか。 Context Recall(コンテキストの再 現性) 取得されたコンテキストが、真の回答とどれだけ一致しているか ・質問: フランスはどこですか、そしてその首都はどこですか? ・真実: フランスは西ヨーロッパにあり、首都はパリです。 ・高スコアとなるもの: 西ヨーロッパのフランスには、中世の都市、高山の村、地中海のビーチがあります。首都パリは、ファッションハウス、ルーブル美術館など の古典的な美術館、エッフェル塔などの記念碑で有名です。 ・低スコアとなるもの: 西ヨーロッパのフランスには、中世の都市、高山の村、地中海のビーチがあります。この国はワインと洗練された料理でも有名です。ラスコ ーの古代の洞窟壁画、リヨンのローマ劇場、広大なベルサイユ宮殿は、その豊かな歴史を証明しています。 Context Relevancy(コンテキスト の関連性) 与えられたプロンプトと取得されたコンテキストの関連性 ・質問: フランスの首都はどこですか? ・高スコアとなるもの: 西ヨーロッパのフランスには、中世の都市、高山の村、地中海のビーチが含まれています。首都パリは、ファッションハウス、ルーブル美術 館などの古典的な美術館、エッフェル塔などの記念碑で有名です。 ・低スコアとなるもの: 西ヨーロッパのフランスには、中世の都市、高山の村、地中海のビーチが含まれます。首都パリは、ファッションハウス、ルーブル美術館な どの古典的な美術館、エッフェル塔などの記念碑で有名です。この国はワインと洗練された料理でも有名です。ラスコーの古代の洞窟壁画、リヨンのローマ劇場、広 大なベルサイユ宮殿は、その豊かな歴史を証明しています。 基本的なRAGの評価方法 RAGAS
  3. from datasets import Dataset ground_truths = [ ["中国"], ["太くて柔らかい"], ["とんこつラーメン"],

    ["ヘルシー志向のものやベジタリアン対応、地域ごとの特色活かしたものの登場によって多様性が拡大している"], ] ds = Dataset.from_dict( { "question": questions, "answer": answers, "contexts": contexts, "ground_truths": ground_truths, } ) for row in ds: print(f'question: {row["question"]}') print(f'contexts: {row["contexts"]}') print(f'answer: {row["answer"]}') print(f'ground_truths: {row["ground_truths"]}') print("-----") --- question: ラーメンはどこの国発祥ですか contexts: ['ラーメンは、中国から発祥し、日本で独自の進化を遂げた麺料理です。この料理は小麦粉から作られた細い麺と、鶏、 豚、魚介など多様な材料から抽出されたスープ、そして様々な具材で構成されます。日本各地には地域ご'] answer: ラーメンは中国から発祥し、日本で独自の進化を遂げた麺料理です。 Therefore, the context provided indicates that ramen originated from China. ground_truths: ['中国'] ----- question: うどんの麺の特徴は? contexts: ['他の麺料理との比較では、麺の種類やスープ、具材に大きな違いが見られます。うどんは太くて柔らかい麺、そばはそば 粉を使用した麺、パスタは小麦粉と卵で作られた麺で、それぞれ独自の食感と風味があります。また'] answer: うどんの麺の特徴は太くて柔らかい、とあります。 ground_truths: ['太くて柔らかい'] ----- question: 博多はどんなラーメンが多い? contexts: ['たスープ、そして様々な具材で構成されます。日本各地には地域ごとに異なるラーメンスタイルが存在し、札幌の味噌ラ ーメン、博多のとんこつラーメン、東京の醤油ラーメンなどが特に有名です。'] answer: とんこつラーメンが多いです。 ground_truths: ['とんこつラーメン'] ----- question: 最近のラーメンの進化について教えてください contexts: ['形で展開されています。また、地域ごとの特色を活かした新しいタイプのラーメンが登場することもあり、その多様性は さらに広がりを見せています。'] answer: この文脈からは、ラーメンが形で展開されているとか、地域ごとに新しいタイプのラーメンが登場することがある、と書か れています。最近のラーメンの進化についての具体的な内容はこの文脈からは分かりません。 ground_truths: ['ヘルシー志向のものやベジタリアン対応、地域ごとの特色活かしたものの登場によって多様性が拡大している'] from ragas import evaluate """ 評価の実行 - answer_relevancy - context_precision - faithfulness - context_recall """ result = evaluate(ds) print(result) --- { 'answer_relevancy': 0.8139, 'context_precision': 1.0000, 'faithfulness': 1.0000, 'context_recall': 1.0000 }
  4. HotPotQA 質問文に対して正しい回答分を生成するタスク Fever 事実の真偽の検証を行うタスク ALFWorld テキストベースのゲームのタスク WebShop ECサイトをページ遷移しながらお遣いをこなすタスク Bamboo gel

    Googleの検索エンジンが間違えた問題のみを集めたデータセット StrategyQA 間接的な質問に対して戦略的な推論を用いて答えを見つける必要が あるデータセット AQuA 実際の数学の試験から取られた複数の選択肢を持つ算数の問題から なります ARC-C AIが中等教育レベルの科学の問題を解く能力を試すために設計 ELYZA Tasks 100 ELYZA社が人手で作成した多様で複雑なタスクを含むデータセッ トです。 The Ragusa Benchmark 日本の歴史、社会、政治、地理に関する日本語での40の質問で 構成 https://cohere.com/blog/command-r-plus-microsoft-azure AQuADの事例 コンテキスト In meteorology, precipitation is any product of the condensation of atmospheric water  vapor that falls under gravity. (気象学では、降水は重力によって大気中の水蒸気が凝縮したものが降ることです。) 質問文 What causes precipitation to fall? (降水の原因は何?) 正解の要素 gravity (重力) ベンチーマークにも使われる
  5. カスタムベンチマークの必要性 プロダクト内におけるLLMの評価は「特定のインプット + プロンプトテンプレートによってできるプロンプトがタスクをうまくこなせて いるか」を見るもので、自分たちのプロダクト独自要件に対する評価基準とデータセットは存在しない。 そのため、カスタマイズされたベンチマークを独自に作成する必要があります。 オフライン評価 … あらかじめ用意したデータセットを使った評価。 オンライン評価…実ユーザーの反応など、実際のトラフィックを使った評価。

    オフライン評価とオンライン評価の違い ビジネス上のKPIを踏まえた評価指標を作成することが重要。 時間の経過などでデータの傾向などが変化するデータドリフトと呼ばれる現象が発生することもあるため、実際のユーザーの傾向や反応を みながらデータセットを構築していく必要があり、そうした手法のことをオンライン評価と呼びます。 ゴールデンデータセットと、シルバーデータセット 「ゴールデンデータセット」は、LLM を活用した Copilot の品質保証を提供するために使用される、現実的なユーザーの質問と専門家の 回答を集めたものです。ゴールデンデータセットは、LLM から返される応答の品質を評価するためだけに使用されるデータです。これ は、LLM をトレーニングまたはファインチューニングしたり、プロンプトにコンテキストを挿入したりするためのソースデータとしては 使用できません。ゴールデンデータセットを使用すると、LLM がユーザーの質問にどの程度適切に応答しているかについてのインサイト を得ることができます。これは、コード内の単体テストで期待どおりに動作することを確認する方法と比較でき、動作が逸脱したり失敗 したりした場合に通知を受け取ることもできます。
  6. 富士山です エベレストです 高尾山です 犬が近くに座っている 日本一高い山はなんです か? a dog is sitting

    nearby 参照文 正答率(Accuracy)やF値(F1-Score)を計算 犬は近くで座っています 近くに座っているのは犬で す 犬がそばに座っている ルールベース評価と類似度評価の限界 BLEU (Bilingual Evaluation Understudy) > 翻訳 、 ROUGE (Recall-Oriented Understudy for Gisting Evaluation) > 要約 文字列 (n-gram) の類似度を計算する評価指標
  7. 面白いRPGを教えてくだ さい ドラクエや、FFなど です クロノトリガーは 198x年に発売されま した Undertaleは誰も倒 さなくてもクリア可 能です

    LLMが評価を行うことで、多様な答えを、正解とすることができる LLM-as-a-judge LLM as a Judge が可能にする評価
  8. 関連性とは、文脈に基づいて、答えが質問の主要な側面にどの程度対応している かを測るものです。関連性を評価する際には、重要な側面がすべて、あるいは重 要な側面だけが回答に含まれているかどうかを考慮してください。文脈と質問を 考慮し、以下の評価尺度を使用して、回答の関連性を星1つから5つの間で採点し ます: 星1つ: 関連性が完全に欠けている。 星2つ: 関連性がほとんどない 星3つ:

    部分的に関連性がある 星4つ: 回答はほとんど関連性がある 星5つ: 関連性が完全にあるこの評価値は常に1から5の間の整数でなければなり ません。つまり、生成される評価は1または2または3または4または5でなければ なりません。 コンテキスト: マリー・キュリーはポーランド生まれの物理学者・化学者で、放 射能研究のパイオニアであり、女性として初めてノーベル賞を受賞した。質問: キュリー夫人が得意とした分野は?答え: マリー・キュリーは、主に印象派のス タイルと技法に焦点を当てた有名な画家であった。…… 質問 (ユーザの質問。クエリ) コンテキスト (検索された文 書,チャンク) 回答 (モデルの回答。実際の 回答レスポンス) Ground Truth (模範回答。注 釈。リファレンス。期待する 回答,GT) PromptFLowを使ったLLM as a Judge
  9. Answer Relevance (回答の関連性) 面白いRPGゲームは、ドラ ゴンクエストです。 面白いRPGゲームを教えて ください オリジナルの質問 面白いRPGゲームは、FFで す。

    面白いRPGゲームは、 Motherです。 回答から質問を生成 面白いRPGゲームを教えて ください 面白いRPGゲームを教えて ください 回答から質問を生成 回答から質問を生成 面白いRPGゲームを教えて ください 生成された質問 オリジナルの質問と 生成された質問の類似度 オリジナルの質問と 生成された質問の類似度 オリジナルの質問と 生成された質問の類似度
  10. GoogleのGeneral Guidelineで語られている評価手法 正答率 = FullyMeeets + Highliy Meets / (質問数 -

    曖昧な質問数) Fully Meets(〇):LLMの回答が想定回答とほぼ完全に一致する場合 Highly Meets(▲):LLMの回答が想定回答とは異なるが、事実と相違がなく、かつ質問に対する回 答として不自然でない場合 Fails to Meet(✕):LLMの回答が明らかに不自然である、または想定外の挙動を示す場合 Ambiguous Question(ambiguous):想定質問自体が曖昧で、LLMが適切に答えられないのは仕方が ない場合 Googleの検索品質評価ガイドライン「General Guidelines」などを参考
  11. オンライン評価でPDCAをまわそう! LLM as a judge LLMベース判定+RAGAS Human in the loop

    ドメインエキスパートによる改善 Appに入力 応答の内容を分析 新しくナレッジに追加するデータを検討 ドキュメントなどをインポートする パラメーターを チューニング デプロイを行う ドメインエキスパートなど 議論を行いながら、調整を重ねる