Upgrade to Pro — share decks privately, control downloads, hide ads and more …

今からでも間に合う! 生成AI「RAG」再入門 / Re-introduction to RA...

今からでも間に合う! 生成AI「RAG」再入門 / Re-introduction to RAG in Generative AI

2025/06/14「JAWS-UG熊本」で発表したLT資料です

Avatar for Hideaki Aoyagi

Hideaki Aoyagi

June 16, 2025
Tweet

More Decks by Hideaki Aoyagi

Other Decks in Technology

Transcript

  1. 自己紹介 氏名: 青柳 英明 所属: クラスメソッド 福岡オフィス 職種: AWS ソリューションアーキテクト/

    コアメンバーやってます くまモンファン歴: 15年 生成 AI エンジニア
  2. 参考: 大規模言語モデル (LLM) / 基盤モデル (FM) 大規模言語モデル (Large Language Model;

    LLM) ・膨大な量のテキスト情報を学習させたモデル 基盤モデル (Foundation Model; FM) ・テキストのみでなく「画像」「動画」「音声」にも対応したモデル つまり →「FM (基盤モデル)」は「LLM」を含む概念 (基盤モデルの一種が「LLM」) (AWS の Bedrock でも原則として「基盤モデル」という表現が使われています)
  3. 「最新の」「非公開の」情報に対応させる手法 手法 1: 独自データを使って独自のモデルを作成 (学習) する 基盤モデル開発ベンダー (OpenAI や Anthropic

    など) と同様の手法により、 自分で用意した最新の/非公開のデータを使って独自モデルを作成する → 膨大な時間とお金がかかる 手法 2:「Fine Tuning」手法を使って既存の基盤モデルを追加学習する 既存の基盤モデルに対して、用意したデータを使って「追加学習」を行う → 手法 1 よりは簡易に可能だが、 それでも、追加学習のたびに時間や手間がかかってしまう
  4. RAG で使われる検索技術: ベクトル検索 「ベクトル検索」 → 文章や単語を数値に変換して比較することで検索する その際、単一の数値では文章の多様な意味を表現できないため、 「多次元の数値データ」(=ベクトル) に変換したものを使う ・検索対象テキスト

    (候補) → ベクトルデータに変換 ・検索キーワード → ベクトルデータに変換 ・ベクトルデータ同士を比較して、より距離が近いものを検索結果とする 「りんご」と「パソコン」: あまり関係ない → 距離が遠い 「りんご」と「みかん」 : かなり似ている → 距離が近い
  5. RAG で使われる検索技術: チャンキング 検索対象データ (データソース) には、大小さまざまな規模のデータがある ・周知文書: 1枚のテキストで、一つの内容のみが書かれている ・取扱説明書: 何ページもある文書で、複数の章・節で構成されている

    (各部の説明、◯◯機能の操作方法、故障時の対応、etc.) サイズが大きく、複数の内容が含まれるデータの場合 → 文書全体をベクトルデータに変換しようとすると、 データに含まれるすべての要素が一つのベクトルデータになってしまう → 検索時に、探したい事項にピンポイントで情報をヒットさせることができない (知りたいのは「◯◯機能の操作方法」だけなのに、いらん情報までヒットする・・・)
  6. RAG で使われる検索技術: チャンキング 検索対象データをベクトルデータ化する前に、 検索に適した単位の情報 (=「チャンク」) に分割する 取扱説明書 → チャンクに分割

    ・各部の説明 ・◯◯機能の操作方法 → チャンク単位でベクトルデータ化 ・△△機能の操作方法 検索時にピンポイントで必要な情報にヒット ・故障時の対応 etc.
  7. 原因分析: どうして間違った回答をしてしまうのか データソース (Excel ファイル) を RAG に取り込む際の 「チャンキング」(チャンク分割) が上手くいっていない

    質問と回答のペアが 異なるチャンクに 別れてしまっている チャンキングは検索サービスが自動で行ってくれるが、 人間が認識する「情報の切れ目」の通りにチャンク分割してくれるとは限らない
  8. (実は) RAG が向いていないこと 例: データソースに格納したデータ全体を、横串で分析したい → RAG は次のように処理を行う ・データソースに対して検索を行い、関係のある情報を抽出する ・検索された情報を使って回答を生成する

    つまり、データ全体を使った回答生成は行えない データ全体の分析を行いたい場合は・・・ ・基盤モデルにファイルを直接添付して「分析して」と指示する ・外部ファイルを参照できる「生成 AI エージェント」を使う など