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

RAGの回答精度評価用のQAデータセットを生成AIに作らせた話

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Koreharu Koreharu
August 28, 2024

 RAGの回答精度評価用のQAデータセットを生成AIに作らせた話

Avatar for Koreharu

Koreharu

August 28, 2024
Tweet

More Decks by Koreharu

Other Decks in Programming

Transcript

  1. ⽬次 1. ⾃⼰紹介 2. 本⽇の概要 3. 背景 RAGについて 4. 問題意識

    5. 基本的な考え⽅ 6. 構築 1. Bedrock Prompt Manager 2. Bedrock Prompt Flow 7. 結果 8. RAG評価への応⽤ 9. まとめ 10. 課題 2
  2. ⾃⼰紹介 l ⽒名 l 藏原 これはる l ロール l NCDC株式会社

    ITコンサルタント l 略歴 l 2021/04 ゼネコンの情シス職に新卒⼊社 l 2023/11 NCDC⼊社 l 趣味など l 読書(百年の孤独が積読に追加されました) l ポケモンGO 3
  3. 背景 RAGについて l “Retrieval-Augmented Generation (RAG) は、⼤規模⾔語モデル(LLM)によ るテキスト⽣成に、外部情報の検索を組み合わせることで、回答精度を向 上させる技術のこと。検索拡張⽣成などと訳される”(NRIより引⽤) l

    LLMによる汎⽤的な⽂章⽣成機能に、ユーザー独⾃の知識(ナレッジベー ス)を組み込むことで、独⾃の知識を踏まえた回答を⽣成させている l LLM⾃⾝がナレッジベースを学習しているわけではない 5 アプリケーション +リトリーバー プログラム(LLMの時もある) ジェネレーター LLM ユーザー 主として⼈間 弊社の有給取 得ルールを教 えて︕ 弊社の有給取得 ルールの説明⽂を ⽣成せよ。ただし ⽂書A中の…、⽂ 書B中の…という 内容をもとに⽣成 すること はい。弊社の 有給取得ルー ルは[……]です 参考︓https://ncdc.co.jp/columns/8742/
  4. 問題意識 l 世は⼤RAG時代、だが…… 1. 開発者⾃⾝がRAGの性能を評価できない l 太宰治作品を読んだことがない⼈に、「⾛れメロスRAG」の性能評価はで きない l ⾃分が知っている(正誤を判断できる)内容の質問しか想定することができな

    いから 2. 返答が微妙だった時の、性能の評価が難しい l そもそもその返答は正しいのか︖ 誤りなのか︖(ハルシネーション) l ナレッジが⾜りないのか︖ l RAGの回答精度が低いのか︖ l モデル性能が低いのか︖ l ジェネレーター or リトリーバー︖ l プロンプトが邪魔をしているのか︖ 6
  5. (参考) Guardrails for Amazon Bedrock について l Guardrails for Amazon

    Bedrock で contextual grounding check を実⾏で きるようになりました(2024/08) l Grounding: モデルからの出⼒が、ナレッジベースの情報にどれだけ基づ いているかを0~1で評価した値 l Relevance: モデルからの出⼒が、ユーザーの質問内容とどれだけ関連し ているかを0~1で評価した値 l GroundingとRelevanceを両⽅評価することで、ハルシネーションを 起こしている可能性が⾼い回答をフィルターすることが可能 l 情報の正誤そのものの評価ではないことに注意 l https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/g uardrails-contextual-grounding-check.html 8
  6. 構築 Bedrock Prompt Manager l ブラウザ上で基盤モデルを調整し、プロンプトの開発・保存ができ るサービス l 試⾏錯誤()の末、以下のプロンプトを作成した l

    基盤モデルにはClaude3.5 Sonnetを使⽤ l ⾼性能だが、費⽤が⾼い l テストデータの作成にはSonnetを使い、RAG本体にはHaikuなどのよ り廉価なモデルを使うといったような運⽤の⼯夫が考えられる 9 以下の物語を読み、質問と回答のセットを5つ作成しなさい。テキストから作品名を明らかにしな さい。物語は{{topic}}です.
  7. 構築 Bedrock Prompt Flow l ノーコード・ローコードツールに近い感覚で、Bedrockの機能を⽤ いたアプリケーションを開発できるサービス l 使い勝⼿、メリット、デメリットは他のノーコード・ローコードツー ルと同様

    l 使⽤できるモジュールがまだ少ない l 簡単なルーチンの⾃動化などの処理はすぐに作成できる l S3に配置したテキストファイルを読み込み、Bedrockのプロンプトを 呼び出す処理をノーコードで作成した 10
  8. 結果 l 「⾛れメロス/太宰治」から、質問と回答のセットを⽣成させた l 後から⼈間がチェックし、問題ないことを確認 11 番号 質問 回答 内容チェッ

    ク 1 メロスはどんな職業の⼈物 ですか? メロスは村の牧⼈(⽺飼い)で す。 正 2 メロスが王城に⾏った理由 は何ですか? 暴君ディオニスを暗殺するた めです。 正 3 メロスの⾝代わりになった 友⼈の名前は? セリヌンティウスです。 正 4 メロスが約束の時間に遅れ そうになった原因は何です か? 豪⾬による川の氾濫、⼭賊の 襲撃、極度の疲労などです。 正 5 物語の最後で、暴君ディオ ニスはどのような態度を取 りましたか? メロスとセリヌンティウスの 友情に感動し、⾃分も仲間に ⼊れてほしいと頼みました。 正
  9. 課題 l QAデータセット⽣成処理の⾃動化 l ナレッジを追加したタイミングで処理が⾛り、QAデータがjsonなどで吐き出される形が 理想 l txtファイル以外への対応 l 現状対応しているのはutf-8エンコーディングされたプレーンテキストのみ

    l トークン数の上限対応 l ⼀度に20万⽂字程度が限界 l 評価指標の定量化・システム化 l 因果推論タスクとして解かせてみる︖ l Guardrailsよりも意味のある指標になる︖ l 性能向上のための打ち⼿の切り分け l QAデータセットのハルシネーション対策 l そもそも「正しい」って何 l 哲学 15