RAFTとは
Retrieval-Augmented Fine-Tuning
検索した正解文書と無関係な文書(ディストラクタ)を含めてファインチューニングし、RAG利用時の頑健性を高める手法
ひとことで言うと
本番のRAGと同じように、正しい資料とまぎらわしい資料を混ぜた状態で練習させ、実運用に強くするやり方。
概要
RAFT(Retrieval-Augmented Fine-Tuning)は、RAGシステムで実際に想定される状況を学習データとして再現するファインチューニング手法。 検索結果に質問の答えを含む正解文書と、答えに関係のない紛らわしい文書(ディストラクタ)が混在した状態を再現し、その中から正解文書の内容を根拠に正しく回答するようモデルを学習させる。 通常のファインチューニングや、検索なしで質問と正解だけを学習させる方法では、実際の検索結果に含まれるノイズ(無関係な文書)への耐性が身につきにくい。 RAFTはあえてディストラクタを混ぜた状態で学習させ、本番運用時に近い条件での頑健性を高める。 正解文書がどれかを明示せず、モデル自身に文書群の中から根拠となる箇所を見極めさせながら回答を組み立てる訓練をするため、単純に検索結果を鵜呑みにするのではなく関連性を選別する能力も同時に養われる。 特定ドメイン(社内文書や専門分野の資料など)向けにRAGシステムを構築する際、汎用の埋め込みモデルやLLMだけでは対応しきれない、そのドメイン特有の文書の書き方や紛らわしい表現への適応策として提案された。
背景
通常のRAGはLLM自体を追加学習せず、検索した文書をプロンプトに含めるだけで回答させるため、ドメイン特有の紛らわしい文書や表現への対応力は事前学習・指示チューニングの範囲に依存していた。 RAFTは、実際の検索結果に近いノイズ混じりの状況を学習データとして与えることで、特定ドメインのRAGシステムにおける回答の頑健性を高める目的で考案された。
歴史
2024年: ZhangらがRAFTを提案する論文「RAFT: Adapting Language Model to Domain Specific RAG」を発表。
ワークフロー
質問に対して、正解の根拠となる文書とともに、関係のない複数のディストラクタ文書を用意する。 これらの文書群と質問をまとめてモデルへ入力し、正解文書の内容を根拠にした回答を生成するよう教師あり学習する。 学習後のモデルは、実際のRAG運用時に検索結果へノイズが混じっていても、根拠となる文書を選別しながら回答できるようになる。
利点
- 本番のRAG運用に近い、ノイズを含む検索結果への耐性を学習時から養える
- 特定ドメインの文書の書き方や紛らわしい表現に対し、汎用モデルより高い回答精度が期待できる
- 検索結果を鵜呑みにせず、根拠となる文書を選別する能力も同時に学習できる
欠点
- 正解文書とディストラクタを組み合わせた学習データの準備に手間がかかる
- 通常のファインチューニングと同様、追加の学習コストと計算資源が必要になる
- 特定ドメインに特化して学習させるため、他ドメインへの汎用性はやや低下する可能性がある
比較
- RAG — RAFTは通常のRAGにファインチューニングを組み合わせ、ノイズを含む検索結果への頑健性を高めた発展形
- ファインチューニング — RAFTは検索結果を模したノイズ入りの文書群を使う点が、通常のファインチューニングと異なる
- 指示チューニング — RAFTは指示チューニング済みモデルに対して、RAG向けの追加適応として行われることが多い
関連用語
よくある質問
RAFTと通常のRAGの違いは?
通常のRAGはLLM自体を追加学習せず検索結果をプロンプトに含めるだけだが、RAFTはノイズを含む検索結果を模した状況でモデル自体をファインチューニングし、特定ドメインでの頑健性を高める。
ディストラクタ文書とは?
質問の答えとは関係のない、検索結果に紛れ込みうる文書のこと。RAFTでは学習データにあえてディストラクタを含め、モデルが正解文書を見極める能力を養う。
参考文献
- Research PaperRAFT: Adapting Language Model to Domain Specific RAG