昨日、RAGの精度評価用データセットを自動生成する手法に関する論文を読んだので、簡単に紹介したいと思います。
論文へのリンクはこちら:
RAG精度評価の課題
RAGは、LLM(大規模言語モデル)と情報検索を組み合わせたアプローチで、最新の文書やドメイン固有情報に対しても比較的正確な回答を生成できると期待されています。ただし、RAGの精度を評価する指標やデータセットはまだ確立されていない部分が多く、さまざまな課題が存在します。
評価用データセットについて、私の理解では、とくに以下の2点が大きな問題だと考えています。
-
難易度のバランス
あまりに難しすぎる問題ばかりだと、関連文書を正しく検索しても回答が生成されない可能性があり、評価としては微妙です。逆に簡単すぎる問題、もしくはLLMがすでに学習済みの知識だけで答えられる問題だと、RAGの“検索”をテストできず、有用な評価が得られなくなります。 -
質問の種類の幅
「What is 〇〇?」「How does 〇〇?」のような問いは典型例で、RAGのテストとしては分かりやすいですが、一方で、こうした質問形式しかないデータセットだと単調になってしまう恐れがあります。既存の自動生成ツール(例:RAGAsなど)を見ると、生成される問題が似たような形式に偏っていることも多いようです。
論文で提案されているアプローチ: DataMorgana
そこで今回読んだ論文では、"DataMorgana"という新しい方法が紹介されていました。ポイントは「複数の質問タイプとユーザタイプを定義し、それらの分布を自由にカスタマイズできる」というアイデアです。
-
ユーザタイプ
ユーザ(End-user)の分類としては、たとえば医療分野のRAGなら以下のようなカテゴリを想定できます。- 患者 (patient)
- 医師 (medical-doctor)
- 研究者 (clinical-researcher)
- 公共衛生当局 (public-health-authority)
想定するユーザの立場によって、必要な質問の切り口や内容が変わるはずなので、こうした分類を確率分布付きで設定する仕組みです。汎用的なシナリオであれば、「専門家 (expert)」「初心者 (novice)」などにも応用できます。⇩
-
質問のタイプ
同様に、質問(Question)についても以下のような分類が用意されています。- ファクト系 (factoid) / 非ファクト系 (non-factoid)
- ユーザ前提あり (with-premise) / 直接的 (direct)
- 短い検索クエリ風 (short-search-query) / 長めの自然文 (verbose-and-natural)
下記のような表が論文中では例示されています。
これらの分類を確率的に組み合わせて多様な形式のQ&Aを自動生成し、さらに生成結果をLLMでフィルタリングして「文脈に合っているか」「設定した形式を満たしているか」をチェックし、最終的なデータセットを完成させるという流れです。
多様性重視の評価指標
この論文で特に注目しているのが多様性 (Diversity) の評価です。GPT-4やClaudeなどの先進的なLLMなら、1問1答の品質(流暢さ・正確性など)は比較的高いレベルに達しがちです。しかし、その一方で同じような単語や形式ばかりが並ぶリスクもあるため、いかに多様な文脈・構造・文体で質問が生成されるかが重要になります。
論文では、下図のように5つほどの指標を使い、生成されたQAデータセットの「語彙」「文法構造」「意味」などの多様性を分析しているとのことです(数式の詳細はまだ見ていませんが)。
また、個人的にはここに難易度の評価を加えるとより良いのではと感じました。ただし、何をもって難易度を評価するかはやはり大きな課題ですね。
感想
RAGの精度評価用データセットをどうやって作るかは、私自身も今取り組んでいるテーマです。今回の論文を読んで、多様性をコントロールしながら自動生成するという発想はとても参考になりました。実運用のシーンに合わせてユーザ像や質問タイプを細かく指定できるので、「想定する本番環境でどんな質問が飛んでくるのか?」をよりリアルに反映できそうです。
興味ある方: