LLMにドキュメントやコーパスを入力として与え、質問-回答ペアを自動生成するデータ拡張手法。RAGシステムの評価・訓練データ作成、ドメイン特化QAモデルの構築に不可欠な技術で、人手アノテーションの1/100以下のコストで大規模QAデータセットを構築できる。
Synthetic QA Generation は、大規模言語モデル(LLM)を活用してドキュメントから質問-回答(Question-Answer)ペアを自動的に生成する技術である。人手でQAペアを作成する従来のアプローチに比べ、1/100 以下のコストで大量の高品質なQAデータを生成でき、特にRAG(Retrieval-Augmented Generation)システムの評価データ作成やドメイン特化QAモデルの訓練に不可欠な技術となっている。
2024年以降、RAGシステムの爆発的な普及に伴い、ドメイン固有のQAデータセットの需要が急増している。医療・法律・金融等の専門分野では公開QAデータセットが不足しており、Synthetic QA Generation がこのギャップを埋める主要技術として定着した。
Synthetic QA の標準的な生成パイプラインは以下の通りである。
ドキュメント収集 → チャンク分割 → 質問生成 → 回答生成 → 品質フィルタ → QAデータセット
チャンクを LLM に入力し、そのチャンクから回答可能な質問を生成させる。
| 質問タイプ | 説明 | 生成プロンプトの例 |
|---|---|---|
| 事実型 | 特定の事実を問う | 「このテキストから、事実に関する質問を3つ生成してください」 |
| 推論型 | 情報の組み合わせが必要 | 「複数の情報を組み合わせて答える質問を生成してください」 |
| 比較型 | 2つ以上の要素の比較 | 「テキスト中の要素を比較する質問を生成してください」 |
| Why/How型 | 理由や方法を問う |
| 「なぜ/どのように という形式の質問を生成してください」 |
| マルチホップ | 複数チャンクの横断 | 「複数の段落の情報を統合して答える質問を生成してください」 |
生成された質問に対し、ソースチャンクを参照しながらLLMに回答を生成させる。回答には以下の要素を含める。
| フィルタ | 条件 | 目的 |
|---|---|---|
| 回答可能性 | 質問がソースチャンクから回答可能か | 無意味なQAペアの排除 |
| 多様性 | 同一チャンクからの質問間の ROUGE-L < 0.5 | 重複質問の排除 |
| 難易度 | パープレキシティに基づく難易度スコア | 難易度分布の均一化 |
| 事実整合性 | 回答とソースの NLI スコア > 0.8 | ハルシネーション回答の排除 |
| 流暢性 | 生成文のパープレキシティ < 閾値 | 不自然な生成文の排除 |
| ツール | 開発元 | 対応LLM | 特徴 | 価格帯 |
|---|---|---|---|---|
| RAGAS | Explodinggradients | GPT-4/Claude/ローカル | RAG評価に特化、8種の自動評価指標 | OSS(無料) |
| Giskard | Giskard AI | GPT-4/Claude | テスト生成 + 脆弱性検出 | OSS + Enterprise |
| LlamaIndex QA Generator | LlamaIndex | 任意のLLM | ドキュメントローダーと統合 | OSS(無料) |
| Promptfoo | Promptfoo | 任意のLLM | QA生成 + A/Bテスト + CI統合 | OSS + Cloud |
| Synthetic Data Vault | DataCebo | 表形式データ | 構造化データのQA生成 | OSS + Enterprise |
| Argilla | Argilla | 任意のLLM | アノテーション + QA生成ワークフロー | OSS(無料) |
| 設定 | SQuAD 2.0 (F1) | Natural Questions (F1) | コスト/1K QA | 生成速度 |
|---|---|---|---|---|
| 人手アノテーション | 89.2 | 85.4 | $500-1,000 | 50件/時 |
| GPT-4 Synthetic QA | 86.8 | 83.1 | $3-5 | 200件/分 |
| Claude 3.5 Synthetic QA | 86.2 | 82.7 | $2-4 | 200件/分 |
| Llama-3-70B Synthetic QA | 83.5 | 79.8 | $0 (ローカル) | 50件/分 |
| T5-XXL Synthetic QA | 81.2 | 77.3 | $0 (ローカル) | 100件/分 |
Q1: Synthetic QA のデータでファインチューニングしたモデルは人手QAに近い性能を出せますか? A: GPT-4 で生成した Synthetic QA を用いたファインチューニングでは、人手 QA の 95-97% の性能に達する。ただし、100% の置き換えではなく、合成80% + 人手20%のブレンドが最良の結果を示す研究が多い。
Q2: RAGシステムの評価にSynthetic QAはどの程度信頼できますか? A: RAGAS フレームワークの実験では、Synthetic QA ベースの評価と人手評価の相関(Kendall's tau)が 0.82-0.91 と高い一致を示している。ただし、回答の正確性評価(Faithfulness)は比較的高い相関を示す一方、回答の包括性(Answer Completeness)の評価はやや相関が低い傾向がある。
Q3: 1万件のQAデータセットを作るコストと時間は? A: GPT-4o で約 $30-50、所要時間は約 1-2時間。Llama-3-70B をローカル実行(A100 × 2台)なら電気代のみで約 4-6時間。人手アノテーションでは $50,000-100,000 かつ数ヶ月を要するため、コスト差は 1,000-3,000倍。