RAGとは何か — AIに「自分のデータ」を知らせる方法

RAG(検索拡張生成)は、AIに自分のデータを知らせるための、いちばん現実的な方法。ChatGPT や Claude は、あなたの社内マニュアルも顧客データも知らない。RAG は「AI に覚えさせる」のではなく、「質問のたびに、関係する所だけを探して AI に渡して読ませる」仕組み。しまう→探す→渡す の3ステップ、埋め込み(embedding)とベクトルDB、覚えさせる(ファインチューニング)との違いまで、コード無しの比喩で解説。「AI検索」「社内ドキュメントに質問できるbot」の正体。

動画で見る

結論から

RAG(検索拡張生成、Retrieval-Augmented Generation)は、AIに自分のデータを「知らせる」ための、いちばん現実的な方法です。AI(ChatGPT や Claude)は、あなたの会社のマニュアルも、あなたのアプリの顧客データも知りません。学習した時点の、一般的な知識しか持っていないからです。RAG は、AI に丸暗記させるのではなく、質問が来たそのときに、関係する部分だけを探して、AI に手渡す仕組みです。

この記事で伝えたいのは、この一点だけです。RAG は「AI に覚えさせる」のではなく「質問のたびに、必要な資料だけを渡して読ませる」。だから、資料が変わってもすぐ反映され、AI が答えの根拠を示せる。 「AI 検索」「社内ドキュメントに質問できる bot」「うちのデータに詳しい ChatGPT」——これらの正体は、だいたい RAG です。

  • AI が知らないこと:あなたの社内マニュアル、契約書、昨日の売上、あなたのアプリのユーザー。学習後の情報も知らない
  • 知らせる方法は2つ:①毎回すべてを質問文に貼る(量に限界・毎回コストがかかる)、②RAG(質問に関係する所だけを探して渡す)
  • RAG の3ステップ:資料を小さく分けてしまっておく → 質問に似た所を探す → その所だけを AI に渡して答えさせる
  • 覚えさせる(ファインチューニング)との違い:RAG は「渡す」=資料が変わってもすぐ反映。ファインチューニングは「性格・話し方を仕込む」=内容の更新には向かない

動画版(約2分半)は本文の上に埋め込んであります。

① なぜ必要か:AIは、あなたのデータを知らない

ChatGPT や Claude は、インターネット上の膨大な文章を「学習」して作られています。でも、学習には終わりの時点があり、そこまでの、しかも公開されている情報しか入っていません。あなたの会社の就業規則も、あなたのアプリに登録された顧客の予約も、今朝の在庫数も、AI は知りません。

だから、「うちの返品ポリシーを教えて」と聞いても、AI は一般論を答えるか、それらしい嘘(ハルシネーション)を作ります。AI に、あなたのデータを踏まえて答えさせるには、そのデータを、質問と一緒に渡す必要があります。

渡し方には2つあります。

方法①:毎回、全部を質問文に貼る。 「以下のマニュアルを踏まえて答えて」と、マニュアル全文を貼り付ける。短い資料ならこれで十分です。でも、AI が一度に読める文章の量(コンテキストウィンドウ)には上限があり、就業規則100ページ・全顧客の履歴、となると入りきりません。入ったとしても、毎回その全部を読ませるので、時間もお金(トークン料金)もかかります。

方法②:RAG。 質問が来たときに、大量の資料の中からその質問に関係する所だけを探し出し、その数ページだけを AI に渡す。これが RAG です。100ページの就業規則があっても、「有給は何日?」という質問には、有給について書かれた段落だけを渡せばいい。

RAGとは:AIに覚えさせるのではなく、質問のたびに必要な資料だけを渡して読ませる仕組み

② どう動くか:しまう → 探す → 渡す

RAG は3ステップで動きます。図書館の司書を思い浮かべてください。

ステップ1:資料を小さく分けて、しまっておく(準備)。 マニュアルや契約書を、段落くらいの小さな断片に切り分けます。そして、それぞれの断片を「意味の近さで探せる形」にして、専用の棚(ベクトルデータベース)にしまいます。この「意味の近さで探せる形」を作る処理を埋め込み(embedding)と呼びます。難しく考えなくて大丈夫です。「言葉の意味を、近い物どうしが近くに並ぶ番号に変換して、後で『似た物』を探せるようにしておく」——それだけです。ここまでは、質問が来る前に済ませておきます。

ステップ2:質問に似た断片を探す(検索)。 ユーザーが「有給は何日もらえる?」と聞くと、その質問も同じ「番号」に変換し、棚の中から意味が近い断片を数個取り出します。キーワードが一字一句合わなくても、「有給」「年次休暇」「休みの日数」のように意味が近ければ見つかるのが、ふつうのキーワード検索との違いです。

ステップ3:その断片を渡して、答えさせる(生成)。 取り出した数個の断片を、質問と一緒に AI に渡し、「これを読んで答えて」と頼みます。AI は、その資料に書いてある内容だけを根拠に答えるので、一般論や嘘が減り、しかも「どの資料に基づいたか」を示せます。

この「探す(Retrieval)」で「答えを強化(Augmented)」して「文章を作る(Generation)」から、RAG です。名前は2020年に Meta(当時 Facebook)の研究者たちが付けました。

③ 「覚えさせる」との違い:RAGとファインチューニング

AI に自分のことを反映させる方法として、RAG とよく比べられるのがファインチューニング(追加学習)です。ひとことで言うと、役割が違います。

  • RAG は「資料を渡す」:AI の中身は変えず、質問のたびに外から資料を手渡す。知識を足すのに向く。
  • ファインチューニングは「性格を仕込む」:AI 自体を追加で訓練し、話し方・文体・専門用語の使い方を体に覚えさせる。振る舞いを変えるのに向く。

だから、こう使い分けます。「昨日更新した価格表に基づいて答えてほしい」——内容が頻繁に変わるものは、RAG。渡す資料を差し替えるだけで、すぐ反映されます。「常にこの会社らしい丁寧な口調で、専門用語を正しく使って答えてほしい」——振る舞いを固定したいものは、ファインチューニング。両方を組み合わせることもあります(口調はファインチューニング、中身は RAG)。

コストの感覚も違います。ファインチューニングは、最初に訓練の費用と手間がかかります。RAG は、始めるのは軽いですが、資料をしまう棚(ベクトル DB)の運用費と、質問のたびの検索・トークン費用が、使うほどかかります。個人開発や中小規模のアプリで「うちのデータに詳しい AI」を作るなら、まず RAG から考えるのが現実的です。

よくある質問

「AI 検索」や「社内ドキュメントに質問できる bot」は、RAG ですか。

多くはそうです。Notion AI、社内 FAQ bot、ヘルプセンターの AI 検索、「PDF をアップロードして質問」系のツール——裏側は、たいてい今日説明した3ステップです。仕組みを知っていると、うまく動かないとき(見当違いの資料が渡っている、など)に見当がつきます。

RAG を使えば、AI は嘘をつかなくなりますか。

減りますが、ゼロにはなりません。渡した資料に答えが書いてあれば、それに沿って答えます。書いていないことを聞かれると、やはり作文することがあります。「資料に無ければ『分かりません』と答えて」と指示するのが定石です。

自分で RAG を作るのは、難しいですか。

昔より、ずっと簡単になりました。Supabase(pgvector)、LangChain、各社の「アシスタント」機能など、3ステップを肩代わりしてくれる道具が揃っています。ただし、誰のデータを、誰に見せていいか(権限)は自分で設計する必要があります。ここを間違えると、他人の資料が答えに混ざります(→ RAGとデータ漏えいの記事)。

この記事の内容が分かれば、AI 機能は作れますか。

「何をしている仕組みか」は分かります。実際に作るときは、①権限(本人の資料だけ渡す)、②AI に渡す前の絞り込み、③AI にどこまで操作させるか、を別途固めます。RAG を安全に使う話は、セキュリティ知識カテゴリーの記事にまとめています。