+ 作るログイン
図を読み込んでいます…
1 / 12
RAG のすべて ― 基礎から現在の形、そして難しさまで / 全15章

RAG 00:はじめに ― LLM は何を知らないのか

発行
アニメモ公式
版
第1版
改訂
コマ
全12

LLM が答えられない3種類の知識(非公開・新しい・細かい)と、それを「学習し直す」代わりに「調べてから答えさせる」RAG の考え方を説明します。探す・集める・読ませて答えさせる、の流れと、作るのは簡単なのにうまく動かすのが難しい理由、この本の地図まで。

「うちの会社の休暇規程を教えて」に、LLM は答えられるか

ChatGPT や Claude のような LLM(大規模言語モデル)は、驚くほど賢く見えます。文章を書き、コードを書き、難しい質問にも答えます。

では、社内のチャットで「うちの会社の休暇規程を教えて」と聞いたら、どうなるでしょうか。

LLM は、インターネット上の膨大な文章を読み込んで、言葉のつながり方を身につけています。これを学習と呼びます。でも、あなたの会社の休暇規程は読んだことがありません。社内の文書は公開されていないからです。

この本は、この問題を解くための仕組み RAG(ラグ)について、基礎から、いま実際に使われている形、そして難しさまでを順に説明します。前提知識はほとんど要りません。

この第0章では、「なぜ RAG が必要なのか」と、全体の流れをつかみます。

※この本は 2026年9月時点の情報をもとにしています。RAG の周辺は動きが速い分野なので、特定の製品やモデルの名前、数字は変わることがあります。考え方は長く使えるように書いています。

  • RAG のすべて 00 ― はじめに
  • 1 / 12
  • 「うちの会社の休暇規程を教えて」に、LLM は答えられるか
  • 休暇規程は?
  • 質問
  • LLM
  • 答え
  • ChatGPT や Claude は賢い。でも、あなたの会社の規程は読んだことがない。

知らないことを聞かれると、それらしく作ってしまう

知らないことを聞かれた LLM は、「知りません」と言ってくれるとは限りません。多くの場合、それらしい答えを作ってしまいます。

「有給休暇は年20日です」。一般的な会社の話としてはありそうな答えです。でも、あなたの会社の規程を見て言ったわけではありません。根拠はどこにもありません。

このように、LLM が事実ではない内容をもっともらしく話してしまうことを、ハルシネーション(幻覚)と呼びます。

なぜこんなことが起きるのかは、次の第1章で詳しく見ます。先に一言でいうと、LLM は「文章の続きとして、いちばんありそうな言葉を選ぶ」仕組みだからです。「知っているかどうか」を確かめてから話しているわけではありません。

厄介なのは、正しい答えも間違った答えも、同じくらい自信のある口調で出てくることです。読む人は、どちらなのか見分けられません。

  • RAG のすべて 00 ― はじめに
  • 2 / 12
  • 知らないことを聞かれると、それらしく作ってしまう
  • 年20日です
  • 質問
  • LLM
  • 答え
  • LLM は「知っていること」と「それらしいこと」を区別して話すのが苦手
  • しかも自信満々に言うので、間違いに気づきにくい
  • 「有給は年20日です」。もっともらしいが、根拠はどこにもない(ハルシネーション)。

LLM が知らないことは3種類ある

LLM が正しく答えられない知識は、大きく3種類に分けられます。

種類例なぜ知らないか
非公開の情報社内規程、顧客とのやりとり、自分のメモ学習に使われた公開データに入っていない
新しい情報今週決まった方針、最新の価格、新製品学習データには締め切り(カットオフ)があり、それより後のことは知らない
細かすぎる情報製品の型番、条文の番号、正確な数字学習データに入っていても、正確には覚えていない

3つ目は見落とされがちです。LLM は大量の文章を読んでいますが、それを本棚のように保存しているわけではありません。読んだ内容は、モデルの中にある何十億個以上もの数字(パラメータ。学習で少しずつ調整される、LLM の「記憶のつまみ」のようなもの)にぼんやりと染み込んでいるだけです。だから、ふんわりした一般論は得意でも、正確な数字や固有名詞は間違えやすいのです。

  • RAG のすべて 00 ― はじめに
  • 3 / 12
  • LLM が知らないことは3種類ある
  • 非公開の情報
  • 新しい情報
  • 細かすぎる情報
  • 社内規程・顧客データ・自分のメモ
  • 学習の締め切り(カットオフ)より後
  • 型番・条文番号・数字の正確な値
  • 3つとも、学習データに入っていないか、入っていても正確に覚えていない
  • 非公開の情報・学習より新しい情報・細かすぎる情報。どれも「覚えさせる」のは難しい。

では、自分の資料で学習させ直せばいいのか

自然な発想は、「それなら、自分の資料で LLM を学習させ直せばいい」です。すでにできあがった LLM に自分の資料を読ませて、中の数字(パラメータ)を調整し直すことを、追加学習(ファインチューニング)と呼びます。

できなくはありません。でも、知識を足す目的には、多くの弱点があります。

追加学習RAG
資料が変わったら学習し直し(時間とお金がかかる)資料を差し替えるだけ
根拠どの資料を見て答えたか示せない使った資料を一緒に示せる
消したいとき一度覚えた内容を消すのは難しい資料を消すだけ
正確さ細かい数字はやはり間違えうる資料を読んで答えるので正確にしやすい
見せる範囲学習した内容は誰に聞かれても出てしまいうる人ごとに見せる資料を変えられる(第13章)

追加学習が向いているのは、知識を足すことより、話し方や作業のやり方を身につけさせることです。「毎日変わる社内の資料を答えられるようにしたい」という目的には、ほとんどの場合、RAG のほうが向いています。

  • RAG のすべて 00 ― はじめに
  • 4 / 12
  • では、自分の資料で学習させ直せばいいのか
  • 追加学習(ファインチューニング)
  • RAG
  • モデルの中身そのものを変える
  • 答える直前に、資料を探して読ませる
  • 資料が変わるたびに学習し直し
  • 資料を差し替えればすぐ反映
  • どの資料を見て答えたか示せない
  • 根拠の資料を一緒に示せる
  • 間違って覚えた内容を消しにくい
  • 消したい資料は消すだけ
  • できなくはない。でも高く・遅く・消せず・根拠も示せない。毎日変わる資料には向かない。

RAG は「持ち込み可の試験」

RAG を一言でたとえるなら、「持ち込み可の試験」です。

普通の LLM は、暗記だけで答える試験を受けているようなものです。覚えていないことは、それらしく書くしかありません。RAG では、答える前に資料を開いて、関係するところを探して、そこを読んで答えます。

RAG は Retrieval-Augmented Generation の略で、日本語にすると「検索(Retrieval)で補強した(Augmented)生成(Generation)」です。2020年に発表された研究論文で、この名前が付けられました。

名前は新しそうですが、考え方そのものは、人間が普段やっている「調べてから答える」と同じです。図では、質問と LLM の間に「検索」と「資料庫」が差し込まれました。これが RAG の骨組みです。

  • RAG のすべて 00 ― はじめに
  • 5 / 12
  • RAG は「持ち込み可の試験」
  • 質問
  • 検索
  • LLM
  • 答え
  • 資料庫
  • RAG = Retrieval-Augmented Generation(検索で補強した生成)
  • 2020年の論文で名付けられた。考え方そのものは「調べてから答える」
  • 暗記で答える(普通の LLM)のではなく、答える前に資料を開いて、そこを読んで答える。

RAG の流れ:質問 → 探す → 集める → 読ませる → 答える

RAG の流れを、図の左から順に見ます。

順番やること
1利用者が質問する(「休暇規程は?」)
2探す:資料庫から、質問に関係ありそうな資料を探す
3集める:見つけた資料の一部を、質問と一緒に並べる
4読ませる:LLM に「この資料をもとに答えて」と頼む
5答えを返す(どの資料を使ったかも添える)

大事なのは、LLM そのものは何も変えていないことです。LLM の「文章を読んで理解し、まとめる力」はそのまま使い、足りない「知識」だけを、その場で資料から補っています。

次の3ページで、2〜4を1つずつ見ます。

  • RAG のすべて 00 ― はじめに
  • 6 / 12
  • RAG の流れ:質問 → 探す → 集める → 読ませる → 答える
  • 休暇規程は?
  • 集めた資料
  • 休暇規程 第3条
  • 質問
  • 検索
  • 有給休暇の日数表
  • LLM
  • 答え
  • 申請の手順
  • 資料庫
  • LLM の賢さはそのまま使い、足りない知識だけを、その場で資料から補う。

① 探す:質問に関係ありそうな資料を、資料庫から探す

最初の段階は検索です。英語では Retrieval(取り出し)と呼びます。

会社の資料庫には、就業規則、経費の手引き、製品マニュアル、議事録…と、何万ページもの文章があるかもしれません。その中から、「休暇規程は?」という質問に効きそうな数か所だけを選び出します。

これが RAG の心臓部です。ここで正しい資料を見つけられなければ、後でどれだけ賢い LLM を使っても、正しい答えは出てきません。この本の中盤(第4〜7章)は、ほとんどこの「探す」の話です。

どうやって探すのか。単純には、質問の言葉が含まれている資料を探す(キーワード検索)方法があります。いまの RAG の主流は、それに加えて、言葉の意味が近い資料を探す方法も使います。文章を数字の並びに変えておき、数字の近さで意味の近さを測るやり方で、埋め込み・ベクトル検索と呼びます(第4・5章)。「休み」と聞かれて「有給休暇」の資料を見つけられるのは、こちらの方法です。

  • RAG のすべて 00 ― はじめに
  • 7 / 12
  • ① 探す:質問に関係ありそうな資料を、資料庫から探す
  • 休暇規程は?
  • 集めた資料
  • 質問
  • 検索
  • LLM
  • 答え
  • 資料庫
  • 何万ページの資料から、この質問に効きそうな数か所だけを選ぶ。RAG の心臓部。

② 集める:見つけた資料を、質問と一緒に並べる

次に、見つけた資料を質問と一緒に並べて、LLM に渡す文章を作ります。

なぜ全部の資料を渡さないのでしょうか。LLM が一度に読める量には限りがあるからです。人が一度に机に広げられる資料の量に限りがあるのと似ています。この量をコンテキスト窓と呼びます(第1章)。最近は一度にかなりの量を読めるようになりましたが、それでも会社の資料全部は入りません。入ったとしても、読ませる量が多いほどお金と時間がかかり、しかも大事なところを見落としやすくなります(第8章)。

そこで、資料はあらかじめ、数百文字〜千文字くらいの小さな塊(チャンク) に切っておきます(第3章)。検索で選んだ数個のチャンクだけを渡すのです。

図の真ん中の「集めた資料」に並んでいる3つの札が、そのチャンクです。

  • RAG のすべて 00 ― はじめに
  • 8 / 12
  • ② 集める:見つけた資料を、質問と一緒に並べる
  • 資料+質問
  • 集めた資料
  • 休暇規程 第3条
  • 質問
  • 検索
  • 有給休暇の日数表
  • LLM
  • 答え
  • 申請の手順
  • 資料庫
  • LLM が一度に読める量には限りがある。全部ではなく、選んだ数か所だけを渡す。

③ 読ませて答えさせる:「この資料だけを根拠に答えて」

最後に、LLM に次のようなお願いをします。

次の資料だけを根拠に、質問に答えてください。
資料に書かれていないことは「資料には書かれていません」と答えてください。
答えには、使った資料の番号を [1] のように付けてください。

[1] 休暇規程 第3条 …
[2] 有給休暇の日数表 …
[3] 申請の手順 …

質問:休暇規程を教えて

LLM は資料を読み、質問に合わせてまとめ直して答えます。「入社6か月で10日、以後勤続に応じて最大20日です [2]」のように、根拠の番号を添えて答えることもできます。

根拠が付いていれば、読む人は元の資料を開いて確かめられます。これは、ハルシネーションの対策としても、利用者の信頼のためにも、とても大事です。このように LLM に渡す指示や文章のことをプロンプトと呼びます。プロンプトの書き方の工夫は、第8章で詳しく見ます。

  • RAG のすべて 00 ― はじめに
  • 9 / 12
  • ③ 読ませて答えさせる:「この資料だけを根拠に答えて」
  • 集めた資料
  • 最大20日 [2]
  • 休暇規程 第3条
  • 質問
  • 検索
  • 有給休暇の日数表
  • LLM
  • 答え
  • 申請の手順
  • 資料庫
  • 「入社6か月で10日、以後勤続に応じて最大20日です(有給休暇の日数表)」
  • 根拠を添えるので、人が確かめられる
  • LLM は資料を読んで、質問に合わせてまとめ直す。どの資料を使ったかも示せる。

作るのは簡単。うまく動かすのが難しい

ここまでの流れだけなら、実は数十行のコードで作れます(第2章で実際に書きます)。部品になるライブラリも充実しているので、「PDF を読み込ませて質問できるチャットを作る」だけなら、1日もかかりません。

ところが、実際に社内で使い始めると、次々に問題が出てきます。

失敗の種類例
検索の失敗答えの載った資料があるのに、見つけられない。関係ない資料を拾ってくる
生成の失敗正しい資料を渡したのに、読み違える・無視する・資料にないことを足す
運用の失敗資料が古い。資料どうしが矛盾している。見せてはいけない人に社外秘の資料を見せてしまう
評価の難しさ改善したつもりが、本当に良くなったのか測れない

「デモでは動くのに、本番ではうまくいかない」。これが、RAG で最もよく聞く悩みです。この本では、それぞれの失敗がなぜ起きるのか、どう対処するのかを、1章ずつ見ていきます。

  • RAG のすべて 00 ― はじめに
  • 10 / 12
  • 作るのは簡単。うまく動かすのが難しい
  • 探したのに、答えの載った資料が見つからない(検索の失敗)
  • 資料は見つけたのに、読み違える・無視する(生成の失敗)
  • 資料が古い・矛盾している・見てはいけない人の資料だった(運用の失敗)
  • うまくいっているのか、そもそも測れない(評価の難しさ)
  • 最小の RAG は数十行で作れる。でも「正しい資料を探す」「正しく答えさせる」が奥深い。

この本の地図

この本は、次の順に進みます。

まとまり章内容
基礎01・02LLM の性質と、いちばん小さな RAG の全体
資料を用意する03文書の読み込み、前処理、チャンク分割
探す04〜07埋め込み、ベクトル検索、キーワード検索との組み合わせ、並べ直し
答えさせる08・09プロンプトの組み立て、根拠の示し方、質問の書き換え
いまの RAG10・11索引の工夫(親子チャンク、GraphRAG、画像や表)、エージェント型 RAG
難しさと向き合う12〜14評価、運用とセキュリティ、失敗の地図

表の中の見慣れない言葉(GraphRAG、エージェント型など)は、今は覚えなくてかまいません。それぞれの章で、はじめから説明します。

前半で「いちばん小さな RAG」を作り、中盤でその部品を1つずつ強くし、後半で現在の形と、実務での難しさに向き合う、という流れです。

どの章も単独で読めるように書いていますが、初めての人は順に読むのがおすすめです。

  • RAG のすべて 00 ― はじめに
  • 11 / 12
  • この本の地図
  • 基礎
  • 資料を用意する
  • 01 LLM の基礎・02 いちばん小さな RAG
  • 03 文書の準備とチャンク分割
  • 探す
  • 答えさせる
  • 04 埋め込み・05 ベクトル検索・06 ハイブリッド・07 リランキング
  • 08 プロンプトと生成・09 質問を直す
  • いまの RAG
  • 難しさと向き合う
  • 10 索引の工夫(GraphRAG ほか)・11 エージェント型 RAG
  • 12 評価・13 運用とセキュリティ・14 なぜ難しいのか
  • 前半で最小の形を作り、中盤で部品を1つずつ深め、後半で現在の形と難しさを見る。

まとめ:RAG は「調べてから答える」仕組み

この章で見たことをまとめます。

項目内容
LLM の弱点非公開・新しい・細かい情報を知らない。知らないとそれらしく作る
追加学習の限界更新が大変、根拠を示せない、消せない
RAG答える直前に資料を探して読ませる(持ち込み可の試験)
流れ質問 → 探す → 集める → 読ませる → 答える
利点資料を差し替えればすぐ反映。根拠を示せる
難しさ探す・答えさせる・運用する・測る、のどれも奥が深い

RAG の2本の柱は「探す(検索)」と「読ませる(生成)」です。どちらかが崩れると、答えは崩れます。

次の第1章では、「読ませる」側の主役である LLM が、どんな仕組みで、何が得意で何が苦手なのかを見ていきます。

  • RAG のすべて 00 ― はじめに
  • 12 / 12
  • まとめ:RAG は「調べてから答える」仕組み
  • 集めた資料
  • 根拠つき
  • 休暇規程 第3条
  • 質問
  • 検索
  • 有給休暇の日数表
  • LLM
  • 答え
  • 資料庫
  • 探す(検索)× 読ませる(生成)。どちらが崩れても答えは崩れる
  • この本では、その両方と、測り方・守り方までを順に見ていく
  • LLM の知らないことを、その場で資料から補う。次章では、まず LLM そのものを知る。

0 件のコメント

読み込み中…

権利侵害・不適切な内容の連絡: [email protected]