質問に関係する文書を検索して LLM に渡し、根拠のある回答をさせる。検索の質が答えの質を決める。
RAG(Retrieval-Augmented Generation、検索拡張生成)は、質問に関係する文書を先に検索し、それを LLM に「この資料をもとに答えて」と渡す方法です。LLM が学習していない社内の情報や新しい情報でも答えられ、根拠の文書を示せます。逆に言えば、正しい文書が検索で見つからなければ、どんなに良い LLM でも正しく答えられません。
基本の流れ:
[準備] 文書 → チャンクに分割 → 埋め込み(ベクトル化)→ ベクトル DB に保存
[質問] 質問 → 埋め込み → 似たチャンクを検索 → 再ランキング → 上位を LLM に渡して回答| 段階 | 詳しくは |
|---|---|
| 文書をチャンクに分ける | チャンク分割 |
| 埋め込みとベクトル検索 | 埋め込みとベクトル検索 |
| キーワード検索との組み合わせ・並べ直し | ハイブリッド検索と再ランキング |
| 評価 | LLM アプリの評価 |
生成の側:プロンプトで「資料にないことは分からないと答える」「根拠の文書を示す」と指示し、引用元を画面に出します。これでハルシネーション(もっともらしい作り話)を減らし、利用者が確かめられるようにします。
よくある失敗:表や PDF の段組みが崩れたまま取り込んでいる、古い版と新しい版の文書が両方ヒットする、質問が短すぎて検索が外れる。回答を直す前に、まず「正しいチャンクが上位に入っているか」を確かめます。
面接ではこう答える
RAG は、質問に関係する文書を先に検索して、それを LLM に渡して答えさせる方法です。LLM が知らない社内の情報や新しい情報でも答えられ、根拠の文書を示せるのが利点です。流れは、文書をチャンクに分けて埋め込みにしてベクトル DB に入れておき、質問が来たら似たチャンクを検索し、再ランキングして上位を LLM に渡します。正しい文書が検索で見つからなければ正しく答えられないので、改善はまず検索の質から見ます。
MLとの関わり社内文書の質問応答や問い合わせ対応など、ML エンジニアが今いちばん多く作る LLM アプリの基本形です。
DBラボを読み込んでいます…