【比較】RAGとファインチューニングの違い¶
概要¶
「LLM に自社の知識を持たせたい」と考えたとき、最初に突き当たる方式選択が RAG(Retrieval-Augmented Generation:検索拡張生成) と ファインチューニング(fine-tuning) です。どちらも「モデルを賢くする」ように見えますが、効かせている場所が違います。
RAG は推論時に外部の文書を検索して文脈として渡す手法で、知識はモデルの外(非パラメトリックなインデックス)に置かれます。ファインチューニングは追加学習でモデルのパラメータ(重み)そのものを更新する手法で、知識や振る舞いをモデルの内側(パラメトリックメモリ)に焼き込みます。RAG 提案論文(Lewis et al., 2020)が「パラメトリックメモリと非パラメトリックメモリの組み合わせ」と定義した通り、両者は対立ではなく補完関係にあり、選択を誤ると「最新情報を答えさせたいのに高コストで再学習を繰り返す」「口調を整えたいだけなのに検索基盤を作り込む」といった的外れな投資につながります。
例えるなら:試験対策¶
- RAG … 持ち込み可の試験。頭の中の知識は変えず、その場で参考資料を引いて答える。資料を差し替えれば答えも即更新される。
- ファインチューニング … 試験前に問題傾向に合わせて勉強し直し、解答の型・言い回し・得意分野を体に染み込ませる。一度仕上げると毎回その「型」で答えられるが、内容を変えるには勉強し直しが必要。
詳細比較¶
| 比較軸 | RAG(検索拡張生成) | ファインチューニング |
|---|---|---|
| 知識の置き場所 | モデルの外(外部インデックス=非パラメトリックメモリ) | モデルの中(重み=パラメトリックメモリ) |
| 効かせる工程 | 推論時(検索して文脈に注入) | 学習時(パラメータを追加学習で更新) |
| 得意なこと | 最新・社内固有の事実知識を答えさせる、出典提示 | 出力の型・口調・フォーマット・タスク特化の振る舞い |
| 知識の更新 | 索引を入れ替えるだけで即時反映 | 再学習が必要(コスト・時間がかかる) |
| 出典・根拠 | 検索元を提示でき、根拠の追跡が容易 | 重みに溶けるため出典提示は不得手 |
| 初期コスト/運用 | ベクトルDB・検索品質の作り込みと運用 | 学習データ整備と学習コスト。推論側は素のまま軽い |
| ハルシネーション | 適切な文脈注入で抑制しやすい | 知識付与目的だと不正確記憶のリスク |
着手順の目安: まず RAG(や プロンプト改善)で要件を満たせるか試し、形式・口調・ドメイン適応など RAG で埋まらない差分にファインチューニングを検討する。
よくある誤解¶
- 誤解1:「ファインチューニングすればモデルが新しい事実知識を覚える」 — 主目的としては不向きです。OpenAI の公式ガイダンスは、ファインチューニングは出力の一貫性・振る舞い・型を整えるのに向き、不足しているのが「文脈・知識」なら検索(RAG)側で対処すべきとしています。事実知識を重みに詰め込もうとすると不正確な記憶(ハルシネーション)を招きやすく、更新のたびに再学習が必要になります。
- 誤解2:「RAG とファインチューニングはどちらか一方を選ぶ二者択一」 — 補完関係です。RAG の原典(Lewis et al., 2020)は、事前学習済みのパラメトリックメモリに非パラメトリックメモリ(Wikipedia の密ベクトル索引)を組み合わせる枠組みとして RAG を定義しています。実務でも「振る舞いはファインチューニング、最新知識は RAG」と併用するのが定石です。
- 誤解3:「精度を上げたいならまずファインチューニング」 — 順序が逆になりがちです。OpenAI はプロンプトエンジニアリングを最初の出発点とし、評価セットでベースラインを取り、不足を検索チューニングで補い、それでも一貫性・振る舞いの問題が残る場合に初めてファインチューニングへ進むことを推奨しています。
実務での選び分け¶
- 答えさせたい内容が「最新/社内固有の事実」で、更新頻度が高い → RAG。索引差し替えで即反映でき、出典も出せる。
- 求めるのが「出力の型・口調・フォーマット・特定タスクの安定挙動」 → ファインチューニング。プロンプトで揺れる挙動を固定したいとき。
- 根拠・出典の提示が要件(監査・コンプラ) → RAG が有利(検索元を示せる)。
- 着手順 → ①プロンプト改善で評価ベースライン → ②不足が「知識・文脈」なら RAG → ③残るのが「一貫性・振る舞い」ならファインチューニング、の順で投資する。
- 両取り → 振る舞いをファインチューニングで固め、可変の知識は RAG で供給するハイブリッドが多くの実務で最適。
ひとことまとめ¶
RAG は「知識をモデルの外に置き推論時に検索して渡す(更新が速く出典が出せる)」、ファインチューニングは「振る舞い・型を重みに焼き込む(一貫性は出るが知識更新は再学習)」。事実知識は RAG、振る舞いはファインチューニング、まずプロンプト――が選び分けの軸です。
出典・参考¶
- Lewis et al., 2020「Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks」(パラメトリックメモリ+非パラメトリックメモリの定義、知識の精密な操作・更新の容易さ・出典提示): https://arxiv.org/abs/2005.11401
- OpenAI「Model optimization」(プロンプト→検索チューニング→ファインチューニングの順、ファインチューニングは一貫性・振る舞い向け): https://platform.openai.com/docs/guides/model-optimization
- OpenAI「Optimizing LLM Accuracy」(不足が文脈・知識なら RAG、振る舞いの安定ならファインチューニング): https://platform.openai.com/docs/guides/optimizing-llm-accuracy