AIエージェント・ストラテジスト › Web参考書 › 第3章

RAGの仕組み:保存と検索・生成の2フェーズ、チャンクサイズ、精度の切り分け

第3章 AIデータリテラシーとマネジメント / 節 3

シラバスのキーワード: RAGチャンク分割チャンクサイズベクトル化セマンティック検索検索の精度生成の精度原因切り分けナレッジベースパラメータ

本文を読んだあと、覚えているか確認してください。

試験前に教科書を開くのと同じこと

「有給休暇の繰り越しは何日までですか」と AI に聞いて、それらしい嘘を返されたことはないでしょうか。AI は就業規則を読んだことがないのに、確率的に自然な文を作ってしまうからです。

RAG(Retrieval-Augmented Generation、検索拡張生成) は、答えさせる前に、関係する文書を検索して AI に読ませる仕組みです。試験で分からない問題が出たとき、教科書の該当ページを開いてから答えるのと同じです。カンペ方式、と言ってもいいでしょう。重要なのは、モデル自体は何も変わらないことです。RAG はモデルのパラメータを更新しません。事前学習したデータが書き換わるわけでもありません。ただ、答えるときに参照する資料を渡しているだけです。

保存フェーズ:資料を探せる形にしておく

カンペ方式が成り立つには、教科書に付箋と目次が要ります。RAG でそれにあたるのが保存フェーズで、事前に3つの処理をします。

  1. チャンク分割: 長い文書を数百字程度のまとまりに切る。切られた1つ1つがチャンク。
  2. ベクトル化: 各チャンクの文章を数値の列に変換し、意味が近い文章どうしが近い位置に来るようにする。
  3. インデックス化: データベースに格納し、速く探せる索引を作る。

チャンクの大きさは重要な設計判断です。

目安は 「1つのトピックが1つのチャンクに収まる」 大きさで、マニュアルなら見出しの単位が一般的です。最初から完璧を目指す必要はなく、運用しながら「OS の版ごとに分けた方がよい」「この手順は全体で1チャンクにまとめた方がよい」と調整していきます。完璧な設計を待ち続けて始められないことが、最も避けるべき状態です。

検索・生成フェーズ:質問が来たら

  1. 質問をベクトル化する。
  2. 意味の近さで関連チャンクを検索する。
  3. 関連性の高い順に並べ替え、上位のチャンクを LLM への入力に含める。
  4. LLM がそのチャンクを根拠にして回答を作る。

ここで使われるのが セマンティック検索(意味での検索)です。キーワードが一致していなくても、意味が近ければ見つかります。「年休」と「有給休暇」、「パスワードを忘れた」と「ログインできない」が結びつくのはこのためです。試験では、表現が違っていても意味が近いチャンクが最も類似度が高くなる、という理解が問われます。回答を外部の文書に基づかせることをグラウンディングとも呼びます。

答えが変なとき:検索の問題か、生成の問題か

RAG の精度は 2段階に分けて 見ます。

誤回答が出たら、まず「どのチャンクが検索されたか」を確認します。関係ないチャンクが返っていれば検索の問題で、チャンクの粒度、メタデータの不足、質問の言葉とナレッジベースの用語のずれを疑います。正しいチャンクが返っているのに答えが違うなら生成の問題で、プロンプトの指示や LLM の設定を見直します。この切り分けが改善の出発点です。

精度を上げる観点は4つあります。①質問の変換(曖昧な質問を検索に向く形に直す、複数の質問に分ける)、②検索先の振り分け(マニュアルはベクトルデータベース、社員情報はリレーショナルデータベース、と質問内容で分ける)、③検索結果の並べ替えと絞り込み(リランキング、フィルタリング)、④チャンクの設計と構造化(粒度、メタデータ、要約の併用)。

ストラテジストが押さえる原則は、ナレッジベースの品質が RAG の精度を直接決める、チャンク設計は最初から完璧を目指さない、メタデータが検索精度を大きく左右する、精度の問題は検索と生成に分けて原因を特定する、の4つです。導入初期は、回答を担当者がレビューしてから利用者に返す運用が基本です。

試験で問われる観点

この節の練習問題(5問)

答えを見る前に選んでから開いてください。同じ問題は章別演習でランダム出題されます。

  1. 問1
    RAG(検索拡張生成)に関する記述として、最も適切なものはどれか。
    1. 1ナレッジベースの内容をモデルに追加学習させる仕組みで、検索のたびにモデルの重みが更新されて賢くなる
    2. 2LLMの事前学習データを自社データで書き換える仕組みで、ナレッジベースを別途用意する必要がない
    3. 3質問文のキーワードと完全に一致する文書だけを取り出す仕組みで、表現が異なる文書は検索できない
    4. 4回答生成時にナレッジベースから関連情報を検索してプロンプトに組み込む仕組みで、モデルのパラメータは更新しない
    答えと解説

    正解: 4

    RAGはLLMが知らない情報を必要なときに検索して与える仕組みで、検索結果をプロンプトに組み込んで回答を生成します。モデルのパラメータは更新されず、事前学習データも書き換わりません。検索は意味の近さで行うセマンティック検索が用いられるため、表現が異なっても意味が近い文書を取り出せます。ナレッジベースの品質がRAGの精度を直接左右する点が重要です。

  2. 問2
    RAGのチャンク分割において、チャンクが大きすぎる場合と小さすぎる場合に起きる問題の組み合わせとして最も適切なものはどれか。
    1. 1大きすぎると複数のトピックが混在して検索ノイズが増え、小さすぎると文脈が失われて回答が不正確になる
    2. 2大きすぎるとベクトル化ができなくなり、小さすぎるとインデックスの作成に失敗する
    3. 3大きすぎると回答が短くなりすぎ、小さすぎると回答が冗長になる
    4. 4大きすぎるとモデルのパラメータが増え、小さすぎるとパラメータが減って推論能力が落ちる
    答えと解説

    正解: 1

    チャンクが大きすぎると1つのチャンクに複数のトピックが混在し、無関係な情報が検索されるノイズになります。小さすぎると前後の文脈が失われ、断片的な情報からの回答になります。目安は「1つのトピックが1つのチャンクに収まる」サイズで、マニュアルなら見出し単位が一般的です。最初から完璧を目指さず、実運用で問題を発見して段階的に調整します。

  3. 問3
    RAGを組み込んだヘルプデスクAIが、古いOS向けの手順を最新OSの質問に対して回答した。改善の進め方として最も適切なものはどれか。
    1. 1古いOS向けの手順を含む文書をナレッジベースからすべて削除し、最新OSの文書だけを残すことで古い情報が検索されないようにする
    2. 2まず検索されたチャンクを確認し、検索段階の問題ならメタデータの付与やチャンク分割の見直しを、生成段階の問題ならプロンプトの指示を改善する
    3. 3原因を特定する前に、より高性能なLLMに切り替えて回答の質を全体的に底上げし、それでも改善しなければ検索の設定を見直す
    4. 4ナレッジベース全体をより小さなチャンクに一律に分割し直し、どのOSの質問にも細かい単位で対応できるようにしてから再度検証する
    答えと解説

    正解: 2

    RAGの精度は、関連チャンクを適切に取得できているかという検索の精度と、取得したチャンクに忠実に回答できているかという生成の精度の2段階で測り、どちらに原因があるかの切り分けが改善の出発点です。検索段階の問題ならOSごとの分割やメタデータ付与、生成段階の問題ならプロンプトの改善が対策になります。原因を見ずにモデルを替えたり、旧OSの文書を全削除したりするのは適切ではありません。

  4. 問4
    社員が「パソコンの動きが重い」と質問したとき、ナレッジベースに「PCの動作が遅い場合の対処」という見出しのチャンクがある。セマンティック検索の動作として最も適切なものはどれか。
    1. 1質問に含まれる単語がチャンクの本文に何回出現するかを数え、出現回数が0であるこのチャンクはスコアが付かず取得されない
    2. 2質問の文字数とチャンクの文字数を比較し、文字数が近い順にチャンクを並べて取得するため、見出しの長さによって結果が決まる
    3. 3質問とチャンクをそれぞれベクトル化し、表現が異なっても意味が近いため、このチャンクの類似度が高く評価されて取得される
    4. 4「重い」と「遅い」は文字列として一致しないため、キーワードの一致がないこのチャンクは検索対象から除外されて取得されない
    答えと解説

    正解: 3

    セマンティック検索はキーワードの完全一致ではなく意味の近さで検索します。テキストをベクトル化すると意味が近いもの同士が近い位置に配置されるため、「重い」と「遅い」のように表現が違っても意味が近いチャンクの類似度は高くなります。文字列の一致回数や文字数の比較で検索するわけではありません。

  5. 問5
    全社員向けのRAG(検索拡張生成)で、経営企画部だけが閲覧できる役員会議事録が、閲覧権限のない社員への回答生成に使われるおそれが見つかった。この情報混入を防ぐ設計として最も適切なものはどれか。
    1. 1役員会議事録のチャンクに機密の区分を付けて検索結果には含め、回答生成時にAIエージェントへ「権限のない情報は出力しない」と指示する。
    2. 2役員会議事録は検索対象に含めたまま回答し、回答に権限外の情報が含まれた場合に、その文書を検索対象から外す運用にする。
    3. 3検索の前に、ログインしている社員の権限に応じて検索対象の文書を絞り、閲覧できる文書だけを回答生成に使う。
    4. 4回答の前に、役員名や未公開の数値などの機微な情報を検知してマスキングし、照会の記録を経営企画部が後から確認する。
    答えと解説

    正解: 3

    RAGに権限外の文書が混入する問題は、生成の段階ではなく検索の段階で防ぎます。利用者の権限に応じて検索対象を絞り、閲覧できる文書だけをプロンプトに渡せば、LLMが権限外の情報を見ること自体がなくなります。プロンプトの指示で出力を抑える方法はプロンプトインジェクションや指示の取りこぼしで漏れることがあり、回答後のマスキングは検知できない表現で漏れ、混入してから外す運用は漏れた後の対処です。「AIに何を見せるか」を制御するアクセス制御が基本で、出力側の制御はその補助として重ねます。