RAGを使ったチャットボットの成功を見極める評価手法を解説
1. はじめに
RAGとは?
RAG (Retrieval Augmented Generative)は文章検索で関連文章を抽出してLLMにプロンプトとして渡す手法で、検索拡張生成ともいいます。
情報を外部のベクトルデータベースに保存しておき、ユーザーの質問あった際に、質問に関係しそうな文書データを検索して、その参考情報(Context)を追加したデータをもとにLLMが回答を生成する仕組みとなっています。
RAGはLLMに参考情報として文書データを渡すため、データの品質が悪い場合やそもそも情報がない場合には適切な回答が得られません。
精度が下がるにことに加えて、事実に基づかない情報を生成する幻覚(Hallucination)と呼ばれる現象を起こす可能性があります。
このため、RAGの利用時には正しい回答を生成してくれるかの客観的な評価が必要となります。
2. RAGの評価手法について
RAGの利用を開始する場合に、RAGが正しい回答を生成してくれるかの客観的な評価が必要となります。
人を使って評価も出来ますが、人的コストや評価者によるばらつきが多くなります。
このため、GPT-4などのLLMにLLMの評価そのものをやらせようという自動評価(LLM-as-a-judge)の考え方があります。
3. RAGの評価の流れ
LLMを活用してRAG評価を行う場合の流れです。
自動評価の具体的な方法論についてはいくつかの流派がありますが、おおむね以下の流れで行われる場合が多いです。
-
評価データの作成
事前に質問(Prompt)と参考情報(Context)のペアを作成し、LLMを評価するための質問を準備しておきます。 -
回答用紙の作成
質問を投げかけ、さまざまな言語モデルからそれぞれの出力を記録します。
評価データの質問(Prompt)と参考情報(Context)をもとにLLMを使って回答を作成します。 -
評価
LLM がプロンプトをもとに出力を比較し、最も良い出力を判断させます。
正確性、網羅性、可読性の評価と理由の説明を行ってもらいます。
自動評価では、人間とほぼ同等の評価ができ、人間が比べた場合とGPT-4が比べた場合の評価の一致は 80%以上です。
4. RAG評価ベストプラクティス
Databricksが公開しているRAGの評価に対するベストプラクティスを参考にすると、LLMの評価を用いる際には以下をお勧めしています。
- 1-5の評価スケールを用いる
- LLMの審査員としてGPT-4を使用し、採点ルールを理解するために採点例を用いない
- スコアごとに一つの採点例を用いてGPT-3.5に切り替える
RAGの評価では、事前準備として100の質問とドキュメントのコンテキストからデータセットの評価データ生成し、さまざまな言語モデルに解答を生成させ、評価では正確性 (加重: 60%)、包括性 (加重: 20%)、および読みやすさ (加重: 20%) の複合スコアとしています。
また、RAG アプリケーションには独自のベンチマークが必要と述べています。
特定タスクでは良好なパフォーマンスを示す可能性がありますが、他のタスクで良好なパフォーマンスが保証されるわけではないとのことなので注意が必要です。
その他参考RAG評価
コンポーネントごとに評価するアプローチ
5. RAG評価ツール
最後にRAGの評価ができるツールを紹介します。
MLflow
MLflowを使用すると、機械学習の実験結果を追跡して整理し、他の機械学習エンジニアに説明したり、機械学習モデルをパッケージ化し、デプロイしたりすることができます。
MLflowはLLM-as-a-judge メトリクスをサポートしています。
ragas
Ragas は、検索拡張生成 (RAG) パイプラインの評価に役立つフレームワークです。
ragas」はこのパイプラインを評価して、パフォーマンスを定量化します。
もちろん、株式会社piponでも技術でお困りのことがある方はオンライン相談が可能です。
こちらから会社概要資料をDLできます!
お問い合わせ内容に「オンライン相談希望」とご記載ください。
株式会社piponでは定期的に技術勉強会を開催しています。
ChatGPT・AI・データサイエンスについてご興味がある方は是非、ご参加ください。
株式会社piponではChatGPT・AI・データサイエンスについて業界ごとの事例を紹介しています。ご興味ある方はこちらのオウンドメディアをご覧ください。
株式会社piponのテックブログです。 ChatGPTやAzureをメインに情報発信していきます! お問い合わせはフォームへお願いします。 会社HP pipon.co.jp/ フォーム share.hsforms.com/19XNce4U5TZuPebGH_BB9Igegfgt
Discussion