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
RAGの仕組みとよくある課題
Search
SATOH Kiyoshi
June 22, 2024
Technology
3.2k
1
Share
RAGの仕組みとよくある課題
SATOH Kiyoshi
June 22, 2024
More Decks by SATOH Kiyoshi
See All by SATOH Kiyoshi
生成AIの「現在地」だけでなく「速度」も見よう
stealthinu
0
1.4k
MCPとエージェント
stealthinu
1
1.6k
意外に詐欺師がいるという教訓
stealthinu
0
170
音声変換と生成AI:開発者視点からの1.5年の振り返り
stealthinu
0
2.5k
リアルタイムボイスチェンジャーMMVCとVITSの紹介
stealthinu
0
2.8k
ディープラーニングブームは続くのか
stealthinu
0
140
スパム対策お焚き上げ
stealthinu
0
110
えせソアリンを作る
stealthinu
0
150
milter-managerが便利な話
stealthinu
0
230
Other Decks in Technology
See All in Technology
Snowflake Intelligence導入で 分かった活用のコツ
wonohe
0
130
AWS Agent Registry の基礎・概要を理解する/aws-agent-registry-intro
ren8k
3
360
自分のハンドルは自分で握れ! ― 自分のケイパビリティを増やし、メンバーのケイパビリティ獲得を支援する ― / Take the wheel yourself
takaking22
1
870
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.4k
こんなアーキテクチャ図はいやだ / Anti-pattern in AWS Architecture Diagrams
naospon
1
430
EarthCopilotに学ぶマルチエージェントオーケストレーション
nakasho
0
280
Azure Lifecycle with Copilot CLI
torumakabe
3
1k
AI時代にデータ基盤が持つべきCapabilityを考える + Snowflake Data Superheroやっていき宣言 / Considering the Capabilities Data Platforms Should Have in the AI Era + Declaration of Commitment as a Snowflake Data Superhero
civitaspo
0
130
60分で学ぶ最新Webフロントエンド
mizdra
PRO
34
18k
LLM時代の検索アーキテクチャと技術的意思決定
shibuiwilliam
3
1.1k
Claude Code を安全に使おう勉強会 / Claude Code Security Basics
masahirokawahara
8
26k
AzureのIaC管理からログ調査まで、随所に役立つSkillsとCustom-Instructions / Boosting IaC and Log Analysis with Skills
aeonpeople
0
200
Featured
See All Featured
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
510
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
130
Visualization
eitanlees
150
17k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Test your architecture with Archunit
thirion
1
2.2k
Darren the Foodie - Storyboard
khoart
PRO
3
3.3k
Claude Code のすすめ
schroneko
67
220k
The Spectacular Lies of Maps
axbom
PRO
1
700
WENDY [Excerpt]
tessaabrams
10
37k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
My Coaching Mixtape
mlcsv
0
98
Transcript
RAGの仕組みとよくある課題 NSEG #109 2024/6/22 さとうきよし @stealthinu
ここ1年近くやってたこと LLM(ChatGPT等)を使って社内文書などに対する回答する → 最近雨後の筍のように出ている LLM+RAG のシステム 2
RAGとは? RAG = Retrieval-Augmented Generation LLMに知識を外挿する手法 → LLMは「ステートレス人間」で毎回「新しい人」になる 外部知識や暗黙の知識を毎回与えないと、ずっと初出勤したバイトと同じ 3
LLMに知識を外挿する法の比較 RAG ファインチューニング 超ロングコンテキスト 4
RAG 方法:外部知識ベースから情報を検索しプロンプトへ埋め込む 特徴: 精度が高い 工夫で精度を上げやすい → 最終的にプロンプトへ埋め込むデータの精度によるので ドメイン依存、システムの制約依存で工夫可能だから 5
ファインチューニング 方法:モデルを知識ベースのデータで追加学習 特徴: スタイルを変更するなどに向く 新規情報はあまり学習してくれない →ファインチューニングは追加で学習出来るというより 元からあるものを「彫り出す」イメージに近い 6
超ロングコンテキストモデル 方法:知識ベース全体をプロンプトへ埋め込んでしまう 特徴: 想像以上にちゃんと見つける 文脈理解力が高い 計算コスト大 → 現状では遅くてコスト高 7
現在はRAGが一番おすすめ ファインチューニングは物覚えが悪い → 論文での比較でもだいたいRAGのほうがよいとなる 超ロングコンテキストはすごいけど遅い → 思いのほか情報を見つけられる が現状だとすごく遅い Geminiがキャッシュを開始したのでこれで活用が進む? 8
RAGの基本的な仕組み 知識外挿方法 文書の分割 内容を意味ベクトル化 ベクトルデータベース 問い合わせの検索 9
知識外挿方法 関連情報をプロンプトに埋め込み LLMの文脈理解能力を利用する → 「以下の"---"で区切られた情報を参照して答えてください」 で情報を貼り付けて参照させるだけ 10
文書の分割 大きな文書を小さな断片(チャンク)に分割 語句の全文検索ではなく意味検索したいので断片に分ける必要がある チャンク分けの仕方でも性能がかわる 11
内容を意味ベクトル化 チャンクごとに意味をベクトルに変換 Transformerのエンコーダーを使ったembeddingエンジンが使われる ベクトルは固定長(単語の表現ベクトルと同サイズ)になる 12
ベクトルデータベース チャンク化された文書 チャンク毎の意味ベクトル メタ情報(元ファイル名、ページ番号など) 13
問い合わせの検索 問い合わせ内容をベクトル化 ベクトルの近さ(コサイン類似度)で検索 コサイン類似度 → 高校で習ったベクトルの内積を使う 14
現在のRAGの主要な課題 テキスト化の問題 テキストデータの構造化問題 非テキストデータのテキスト化問題 ベクトル化(文章の意味理解)の問題 検索時の問題 15
テキストデータの構造化問題 そもそもテキストを正しく取得できない TextBoxで任意の位置に文書を置く 画像を上から貼り付けて修正… PDFやDoc文書はたいてい構造化されていない タイトルは大きな文字で太字になってる 見た目での構造化 16
非テキストデータのテキスト化問題 画像、表、グラフの意味抽出 レイアウト情報の損失 OCRでの読み取りしても意味化の限界 17
ベクトル化の問題 チャンク化の失敗で文脈理解が不足する バックグラウンド知識が必要 業界用語 資料の前提条件 文章の意味理解の失敗 → 実はこの問題は少なくてそれ以前の問題が多い 18
検索時の問題 資料のベクトルと質問のベクトルでは本質的にベクトルが違う 意味的類似が遠いため単語が入っていても検索されない 検索失敗したハズレのノイズによる回答品質低下 19
テキスト化の問題解決 人間にとって「見た目」で理解しやすいデータになってること 「画像」からテキスト化 マルチモーダルモデルで直接意味理解 「人間」という超高性能LLMを利用 20
ベクトル化の問題解決 チャンク分けが意味を考慮してない 構造を意識したチャンク分け → そもそも構造化が必要 ツリー上に全体を理解させた中から検索など → 多種多様な〇〇RAGが考案されては発表されてる 21
検索時の問題解決 想定質問でのベクトル化 ベクトルと語句のハイブリッド検索 検索後のリランキング 22
RAGは意外と本質的な技術 最初、すごく取って付けた感がある手法に感じた でもRAGでやってることって、実は人間も同じ手法では? 「あの資料のあたりにこんなこと書いてあったような…」 → 資料を探してそれを参照しながら正確な答えを書く RAG使うと通常のLLMではできない問題も解決出来るのでさわってみよう! 23