Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
今からでも間に合う! 生成AI「RAG」再入門 / Re-introduction to RA...
Search
Hideaki Aoyagi
June 16, 2025
Technology
1
360
今からでも間に合う! 生成AI「RAG」再入門 / Re-introduction to RAG in Generative AI
2025/06/14「JAWS-UG熊本」で発表したLT資料です
Hideaki Aoyagi
June 16, 2025
Tweet
Share
More Decks by Hideaki Aoyagi
See All by Hideaki Aoyagi
初めてのAzure FunctionsをClaude Codeで作ってみた / My first Azure Functions using Claude Code
hideakiaoyagi
1
610
10分で紹介するAmazon Bedrock利用時のセキュリティ対策 / 10-minutes introduction to security measures when using Amazon Bedrock
hideakiaoyagi
1
1k
5分で紹介する生成AIエージェントとAmazon Bedrock Agents / 5-minutes introduction to generative AI agents and Amazon Bedrock Agents
hideakiaoyagi
0
730
「AI-Starter」と「らくらくRAG導入パック」で始める生成AI利活用 / Introducing Generative AI Solutions
hideakiaoyagi
0
1.3k
生成AIシステムのセキュリティ対策 〜 ベストプラクティスと実践 〜 / Security measures for generative AI systems
hideakiaoyagi
0
1.1k
コールセンターだけじゃない!Amazon Connectを使ってできる課題解決いろいろ / Automation Solutions using Amazon Connect
hideakiaoyagi
0
2.3k
Other Decks in Technology
See All in Technology
MCPサーバーを活用したAWSコスト管理
arie0703
0
130
2025新卒研修・Webアプリケーションセキュリティ #弁護士ドットコム
bengo4com
3
9.3k
意志の力が9割。アニメから学ぶAI時代のこれから。
endohizumi
1
110
形式手法特論:位相空間としての並行プログラミング #kernelvm / Kernel VM Study Tokyo 18th
ytaka23
3
1.5k
九州の人に知ってもらいたいGISスポット / gis spot in kyushu 2025
sakaik
0
200
Amazon Q と『音楽』-ゲーム音楽もAmazonQで作成してみた感想-
senseofunity129
0
170
文字列の並び順 / String Collation
tmtms
1
110
Kiro と Q Dev で 同じゲームを作らせてみた
r3_yamauchi
PRO
1
120
薬屋のひとりごとにみるトラブルシューティング
tomokusaba
0
390
オブザーバビリティ文化を組織に浸透させるには / install observability culture
mackerelio
0
310
夏休みWebアプリパフォーマンス相談室/web-app-performance-on-radio
hachi_eiji
1
270
20250807_Kiroと私の反省会
riz3f7
0
270
Featured
See All Featured
Bash Introduction
62gerente
614
210k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Why Our Code Smells
bkeepers
PRO
338
57k
GitHub's CSS Performance
jonrohan
1031
460k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Side Projects
sachag
455
43k
For a Future-Friendly Web
brad_frost
179
9.9k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Transcript
今からでも間に合う! 生成 AI「RAG」再入門 青柳 英明 2025/06/14 JAWS-UGくまもと#16 AWSで生成AIにふれてみよう! くまもと
自己紹介 氏名: 青柳 英明 所属: クラスメソッド 福岡オフィス 職種: AWS ソリューションアーキテクト/
コアメンバーやってます くまモンファン歴: 15年 生成 AI エンジニア
生成 AI の基礎知識
「生成 AI」とは 従来からある「機械学習」の応用の一つ (Machine Learning: ML) 従来の機械学習: 画像認識や、分析・予測などに使われることが多かった 生成 AI:
文章や画像などを作り出すことができる
生成 AI のステップ: 「学習」と「推論」 学習 推論 一般的に「生成 AI の利用」と言えば こちら
(推論) を指す
参考: 大規模言語モデル (LLM) / 基盤モデル (FM) 大規模言語モデル (Large Language Model;
LLM) ・膨大な量のテキスト情報を学習させたモデル 基盤モデル (Foundation Model; FM) ・テキストのみでなく「画像」「動画」「音声」にも対応したモデル つまり →「FM (基盤モデル)」は「LLM」を含む概念 (基盤モデルの一種が「LLM」) (AWS の Bedrock でも原則として「基盤モデル」という表現が使われています)
「RAG」が生まれた経緯
基盤モデルが対応できない質問 (その1) 基盤モデルは、一般的に モデルがリリースされる少し前の時点の最新情報を使って学習される 例:「Claude Sonnet 4」の学習に使用されたデータ →「2024年11月」時点のインターネット上の情報 質問「2025年の九州地方の梅雨入りはいつでしたか?」 回答「申し訳ありませんが、私の知識は2024年までの情報に基づいており、
2025年の気象情報については把握しておりません」 (「知らない」と言われたり、場合によってはウソの回答=ハルシネーションをする)
基盤モデルが対応できない質問 (その2) 基盤モデルはインターネットに公開されている膨大な情報を使って学習される ↓ モデル開発ベンダーがアクセス可能な情報に限定される 企業内で使われる非公開の社内情報は、当然、学習には使われない 質問「出張時にモバイルルーターを借りる時、どこに申請すればよいですか?」 回答「出張時のモバイルルーター申請先はお勤めの会社によって異なりますが、 一般的には総務部や情報システム部に申請することが多いです」 (一般的な情報に基づいた回答しかしてくれない)
「最新の」「非公開の」情報に対応させる手法 手法 1: 独自データを使って独自のモデルを作成 (学習) する 基盤モデル開発ベンダー (OpenAI や Anthropic
など) と同様の手法により、 自分で用意した最新の/非公開のデータを使って独自モデルを作成する → 膨大な時間とお金がかかる 手法 2:「Fine Tuning」手法を使って既存の基盤モデルを追加学習する 既存の基盤モデルに対して、用意したデータを使って「追加学習」を行う → 手法 1 よりは簡易に可能だが、 それでも、追加学習のたびに時間や手間がかかってしまう
第3の手法「RAG」 そこで考案された画期的な手法「RAG」 RAG = Retrieval-Augmented Generation (検索拡張生成) 基盤モデル自体には手を加えず、 「検索」と基盤モデルを組み合わせることで 最新の/非公開の情報を使って質問に回答できるようにする手法
検索拡張生成 → 検索によって拡張された回答生成
RAG の仕組み
シンプルな生成 AI アプリケーション (チャットボット)
RAG を使った生成 AI アプリケーション
RAG の仕組み (1)
RAG の仕組み (2)
RAG の仕組み (3)
RAG の仕組み (4)
RAG で使われる検索技術: ベクトル検索 一般的に使われる「検索」方式:「キーワード検索」 →「検索対象テキスト」の中から「検索キーワード」に一致する部分を探す (文字列同士の比較) デメリット ・同義語や類似表現を検索できない (「パソコン」と「PC」) ・表記揺れに弱い
(「休暇取得を申請」「休暇の取得申請」) ・文脈や意味を理解しない
RAG で使われる検索技術: ベクトル検索 「ベクトル検索」 → 文章や単語を数値に変換して比較することで検索する その際、単一の数値では文章の多様な意味を表現できないため、 「多次元の数値データ」(=ベクトル) に変換したものを使う ・検索対象テキスト
(候補) → ベクトルデータに変換 ・検索キーワード → ベクトルデータに変換 ・ベクトルデータ同士を比較して、より距離が近いものを検索結果とする 「りんご」と「パソコン」: あまり関係ない → 距離が遠い 「りんご」と「みかん」 : かなり似ている → 距離が近い
RAG で使われる検索技術: チャンキング 検索対象データ (データソース) には、大小さまざまな規模のデータがある ・周知文書: 1枚のテキストで、一つの内容のみが書かれている ・取扱説明書: 何ページもある文書で、複数の章・節で構成されている
(各部の説明、◯◯機能の操作方法、故障時の対応、etc.) サイズが大きく、複数の内容が含まれるデータの場合 → 文書全体をベクトルデータに変換しようとすると、 データに含まれるすべての要素が一つのベクトルデータになってしまう → 検索時に、探したい事項にピンポイントで情報をヒットさせることができない (知りたいのは「◯◯機能の操作方法」だけなのに、いらん情報までヒットする・・・)
RAG で使われる検索技術: チャンキング 検索対象データをベクトルデータ化する前に、 検索に適した単位の情報 (=「チャンク」) に分割する 取扱説明書 → チャンクに分割
・各部の説明 ・◯◯機能の操作方法 → チャンク単位でベクトルデータ化 ・△△機能の操作方法 検索時にピンポイントで必要な情報にヒット ・故障時の対応 etc.
応用編
RAG の回答がイマイチな場合、どうすればよい? 例: 社内の「FAQ」(質問 & 回答) を集めた Excel ファイルを使って 「質問に答えてくれる
RAG チャットボット」を作る
精度評価: 想定される質問を行い、回答の精度を評価 作成した RAG 環境を使って、実際に質問してみる 質問「出張費を精算する時、どこに申請すればよいですか?」 回答「情報システム部に申請してください」 → 出張費申請は「経理部」のはずだけど・・・ 回答が間違っている!
原因分析: どうして間違った回答をしてしまうのか データソース (Excel ファイル) を RAG に取り込む際の 「チャンキング」(チャンク分割) が上手くいっていない
質問と回答のペアが 異なるチャンクに 別れてしまっている チャンキングは検索サービスが自動で行ってくれるが、 人間が認識する「情報の切れ目」の通りにチャンク分割してくれるとは限らない
精度改善: 考えられる原因に応じた対応を行う 改善策: 質問と回答のペアを 1 組ずつ、別々のファイルに分割してしまう → 確実に、ペアとなる質問と回答が 1 つのチャンクに収めることができる
(実は) RAG が向いていないこと 例: データソースに格納したデータ全体を、横串で分析したい → RAG は次のように処理を行う ・データソースに対して検索を行い、関係のある情報を抽出する ・検索された情報を使って回答を生成する
つまり、データ全体を使った回答生成は行えない データ全体の分析を行いたい場合は・・・ ・基盤モデルにファイルを直接添付して「分析して」と指示する ・外部ファイルを参照できる「生成 AI エージェント」を使う など
まとめ
まとめ ・基盤モデル自体は「最新の情報」や「非公開の情報」に関する質問に 回答することができない ・「RAG」は、基盤モデルに「検索システム」を組み合わせることによって 「最新の情報」や「非公開の情報」にも回答できるようにする仕組み ・RAG の回答がイマイチな時には「回答精度改善」の手法を試みる → 「精度の評価」〜「原因の分析」〜「精度改善の適用」 ・RAG
にも「向き」「不向き」がある → 「外部データを扱う = RAG」と思わずに、適切な手法を選ぶ