📎

RAG — モデルを再訓練せず「参考資料」を添付する方法

検索(Retrieval)+ 生成(Generation)— モデルの重みは変えず外部知識をプロンプトに添付

ファインチューニング vs RAG — 根本的な違い

ファインチューニング:モデルの重みを変える(頭の中の知識を変える)
RAG:重みは変えない(参考資料を渡すだけ)

例え:ファインチューニング=医者に新しい病気を教える。RAG=医者に患者カルテを渡す。

仕組み

ユーザーが質問→DBから関連文書を検索→プロンプトに添付→モデルが文書を参照して回答生成。

モデル重み変更:ゼロ。

最もシンプルなRAGコード

qa = pipeline("question-answering")
context = "年次休暇は15日。半休可能。"
result = qa(question="休暇は何日?", context=context)
# → {'answer': '15日', 'score': 0.98}

これがRAG。訓練なし。質問と一緒に参考資料を渡しただけ。

キーコンセプト

1

ユーザーが質問する

2

文書DBから関連文書を検索(Retrieval)— ベクトル類似度ベース

3

検索された文書をプロンプトに添付 — 「この参考資料をもとに答えて」

4

model(プロンプト+参考資料) → 回答生成(Generation)

5

モデル重みは1つも変わっていない — データ更新=文書を差し替えるだけ

ユースケース

社内文書QA — 社内マニュアル・ポリシー文書で質疑応答ボット構築 最新情報反映 — モデル再訓練なしで文書更新だけで最新回答 ハルシネーション防止 — 出典のある文書ベース回答で虚偽生成を削減