RAGをもっと信頼できるものにする方法~QA生成編~【第2回】

2026.01.21
RAGをもっと信頼できるものにする方法~QA生成編~【第2回】

はじめに

MS開発部の松坂です。

最近、専門分野向けの質問・回答を効率よく作りたい場面が増えています。
例えば「社内マニュアルの内容を理解した人向けのテスト問題」や「特定技術のFAQ集」などです。

そこで注目されるのが ExpertGenQA というプロトコルです。
少数の専門家による良問・良答の例(few-shot)を参考にしつつ、文章から主要トピックを抽出して、スタイルごとの質問を自動生成できるのが特徴です。
論文ではトピック網羅率94.4%、retriever精度も大きく改善したという結果が報告されています。
https://arxiv.org/abs/2503.02948

第2回では、ExpertGenQAの考え方を整理したうえで、C#を使った最小構成の実装例を示します。
「専門家の知識をそのままQ&Aに変換したい」と考えている方に向けて、トピック抽出→質問生成→JSON出力までの流れを実践できます。

ExpertGenQAの概要

ExpertGenQAは、大学研究発のQA自動生成手法で、
RAGのソースドキュメントを直接入力としてQAを生成する点が特徴です。

一般的な流れは以下の通りです。
  • ドキュメント解析・チャンク分割
  • トピック・概念の抽出
  • 複数パターン(定義・手順・シナリオ等)のQA生成
ニュース記事、マニュアル、規程文書など、
構造化されていない自然文にも適用しやすいのが強みです。

C#による自動QA生成の実装イメージ

ExpertGenQA風の自動QA生成フローをC#で表現します。
上記の概要で説明した一般的な流れに沿って各項目を説明していきます。

ドキュメント解析・チャンク分割

多様なフォーマットを正規化して、意味が破綻しない粒度でオーバーラップ付きに分割し、後段(トピック抽出・QA生成)の精度を安定させます。 ※あくまでチャンク分割の一例です。すでに分割されているデータや分割するほど多いデータでない場合は不要になります。

トピック抽出

チャンク集合から冗長性の少ない概念リストを作成し、後段のQA生成を網羅的かつ重複少なく誘導します。 出力スキーマを明示し、JSON以外を返さないガードを入れると後処理が安定します。 representative_chunk_ids をつけておくと、QA生成の根拠範囲を指示しやすいです。

QA生成(定義・ルール・シナリオ)

トピックごとに**問の型(定義、手順、比較、シナリオ、制約/例外、否定確認 等)**を意図的に混ぜ、引用(citations)必須で外部知識混入を抑制します。 パターン分布を制御(例:均等/重み付き)することでデータセットの偏りを回避します。 引用必須+根拠限定の明示で、外部知識の混入を抑えます。

結果例

カレーに関するWikipediaのデータを用意し、こちらを読み込んでQAを生成してもらいました。

結果として、さまざまな方向によるQAが生成されることが確認できました。

まとめ

* 手動QA作成はスケールしにくく、RAG評価のボトルネックになりがち
* ExpertGenQAのような自動QA生成は、評価データ整備を高速化
* C#環境でも十分に実装可能である

RAGを「作って終わり」にせず、
継続的に改善・検証できる体制づくりの一手として、自動QA生成は非常に有効です。

参考

以上、最後までご愛読いただき
ありがとうございました。

お問い合わせは、
以下のフォームへご連絡ください。

お問い合わせ

PAGETOP