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
大堀遼介
June 26, 2024
Programming
1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ビッグデータにおける、RAGデザインパターン詳解
ビッグデータにおける、RAGデザインパターン詳解
大堀遼介
June 26, 2024
More Decks by 大堀遼介
See All by 大堀遼介
ビックデータにおける、RAG性能向上戦略
randoryo
1
1.6k
Other Decks in Programming
See All in Programming
AIが無かった頃の素敵な出会いの話
codmoninc
1
400
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
130
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
250
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
180
What's New in Android 2026
veronikapj
0
250
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
470
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
460
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
300
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
870
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
4
1.9k
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
260
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
380
Featured
See All Featured
Technical Leadership for Architectural Decision Making
baasie
3
470
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.7k
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Faster Mobile Websites
deanohume
310
32k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Making Projects Easy
brettharned
120
6.7k
Deep Space Network (abreviated)
tonyrice
0
250
Abbi's Birthday
coloredviolet
3
9.3k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
290
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Transcript
ビッグデータにおける、RAGデザインパターン詳解 株式会社ulusage 大堀遼介
自己紹介 • 大堀 遼介(36) • Webアプリエンジニア/データサイエンティスト • 理工学部情報理工学科卒 • 経歴概要
• 経歴紹介 • バックエンド中心の開発( KADOKAWA ) • エンタープライズ向けシステム統合コンサルティング • データパイプライン基盤(TOYOTA, HONDA, ベルフェイス) • コンシューマ向けデータプロバイダー(MaaS関連企業) • 小売・メーカー向け、AIアプリケーション開発(某大手宅配) • データエンジニア、データサイエンティスト(ABEJA, GRID, DATAFLUCT ...etc) • 株式会社ulusage CEO http://PlagIn-AI.com
RAGの課題おさらい
今回の発表のスコープ • 話すこと ◦ あくまでRAG関連 ◦ スケーラビリティなベクトル検索エンジン構築手法 ◦ デモコード ◦
一部エージェント ▪ マルチエージェントなどは次回あれば • 話さないこと ◦ プロンプトエンジニアリング ◦ データパイプライン ◦ LLMOpsの詳細 ▪ 評価までは話します。
ビックデータへのRAGの課題【再 掲】 RAGは学習していないデータに対してLLMに知識を付加するのに非常に有効です が、特に、データボリュームが多くなるほど、劇的に性能低下、ハルシネーショ ンが増加してきます。さらにLangChainやLlama-Indexであっても、導入に対する の技術的障壁、性能の壁が存在します。
一般的なRAGプロセス概要 ※ ベクターDBへ「埋め込み」と「検索」イメージ チャンク LLM インデックス 検索 ベクトルDB xxxxxx xxxxxx
xxxxxx xxxxxx チャンク & ベクトル埋め込み ドキュメント 0.1,0.3, -0.1.. 0.4,0.2, 0.6.. 検索 埋め込み
RAGプロセス 以下のプロセスは、一般的なRAGシステムのプロセスです。 ケースによりますが、このプロセスにて、「データのロード」と「クエリ」を切 り離すだけでも、性能は向上します。今回のデザインパターンは以下のプロセス に従います。 加工 ロード インデッ クス作成 ストア
非同期 クエリ 評価
デザインパターン詳解
デザインパターン概要 今回は多段インデックスという手法に、フォーカスします。 チャンク 子インデックス LLM 親インデックス ベクトルDB 0.1,0.3, -0.1.. 0.4,0.2,
0.6.. 0.1,0.3, -0.1.. 0.4,0.2, 0.6.. ベクトルDB
どういうユースケースに強みがある? • RAGパイプラインの一部、ベクトル検索のインデックス のスケーリング ここ!
デザインパターン詳解 Step 1
データの、粒度を決める。 • 特徴の分類を実施する。 • 時系列単位 • コーパス単位 • トピック単位 •
画像の特徴単位 STEP1: データの粒度を決めよう。 特徴の分類 (親インデックス) 特徴のサブ分類 (子インデックス) チャンクの粒度 (検索対象) デー タ セッ ト 分類 ⅰ 分類 ⅱ 分類 ⅲ サブ 分類 ⅰ サブ 分類 ⅱ サブ 分類 ⅱ 加 工 ロー ド イン デッ クス 作成 スト ア 非同 期 クエ リ 評 価
データの粒度を決めよう。 粒度は、データへの特性への知識が必要です。 私自身まずは、通常のAI開発やデータサイエ ンスの重要なプロセス、EDAから入ります。 今回はLiveDoor コーパスデータを使います。 次のようなカテゴリ分類がなされています。 加 工 ロー
ド イン デッ クス 作成 スト ア 非同 期 クエ リ 評 価
データの粒度を決めよう。 カテゴリまでを、綺麗に分類できたので、次 は、サブ分類です。今回はLDAによって、タ イトルをサブ分類としてそれらしく分かれて いそうなので、こちらを使います。 加 工 ロー ド イン
デッ クス 作成 スト ア 非同 期 クエ リ 評 価 デー タ セッ ト cate gory ⅰ cate gory ⅱ cate gory ⅲ title ⅰ title ⅱ title ⅱ
データを埋め込みエンコードしよう。 分類によって、親子間のインデックスが決定 できました。 次は、埋め込みエンコード化しましょう。 いわゆる「embedding」です。 加 工 ロー ド イン
デッ クス 作成 スト ア 非同 期 クエ リ 評 価
デザインパターン詳解 Step 2
子インデックスを登録しよう。 データの埋め込みが完了したので、いよいよ インデックス化です。 マッピングという、どのフィールドに対して ベクトル検索を行うことを可能にするかを定 義します。 加 工 ロー ド
イン デッ クス 作成 スト ア 非同 期 クエ リ 評 価
子インデックスを登録しよう。 マッピングが完了したので、カテゴリごとの インデックスを作成します。 加 工 ロー ド イン デッ クス
作成 スト ア 非同 期 クエ リ 評 価 インデックスを作成したら、インデックスへ データのロードを実施します。
テストクエリ(標準検索)しよう。 データのロードができたので、いよいよ検索 を行ってみましょう! 以下は一般的な、マッチクエリです。 加 工 ロー ド イン デッ
クス 作成 スト ア 非同 期 クエ リ 評 価
テストクエリを評価しよう。 検索結果を以下の指標を使い、評価しましし ょう。 検索評価指標は、多様にありますが、標準検 索の場合には以下の指標を利用するといいで しょう。 加 工 ロー ド
イン デッ クス 作成 スト ア 非同 期 クエ リ 評 価 指標 説明 結果 MRR (平均逆順位) 一連のクエリに対する結果の逆順位の平均。値が1.0の場 合、完全な順位を示します。 1.0 Recall@5 上位5件の結果に含まれる関連項目の割合。値が1の場合、 関連する全ての項目が上位5件に含まれることを示しま す。 1
デザインパターン詳解 Step 3
親インデックスを登録しよう。 次は親インデックス化です。 マッピングにて、子インデックスのエンドポ イントは カテゴリ名でしたので、フィールドに含めま す。 あとは、子インデックスの概要などの特徴を なるべく詳しく記載し、埋め込みエンコード します。 加
工 ロー ド イン デッ クス 作成 スト ア 非同 期 クエ リ 評 価
親インデックスを登録しよう。 子インデックスに対する、特徴は今回幾つか のサンプルデータの要約に決定します。 加 工 ロー ド イン デッ クス
作成 スト ア 非同 期 クエ リ 評 価
親インデックスを登録しよう。 マッピングが完了したので、カテゴリごとの インデックスを作成します。 加 工 ロー ド イン デッ クス
作成 スト ア 非同 期 クエ リ 評 価
テストクエリ(セマンティック検索)しよう。 いよいよ、多段セマンティック検索です! 評価は、入力と出力のコサイン類似度にて評 価。 加 工 ロー ド イン デッ
クス 作成 スト ア 非同 期 クエ リ 評 価
テストクエリ(セマンティック検索)しよう。 評価結果としてはまずまずですね! 今後こちらは、各子インデックスの説明をよ り、簡潔に記載するか、Rerankなどの技術に より精度を高めていくといいです。 加 工 ロー ド イン
デッ クス 作成 スト ア 非同 期 クエ リ 評 価
デザインパターン詳解 Step 4
検索拡張生成しよう。 いよいよ、LLMに検索エンジンによって知識 会得を実施し、会話をしてみましょう。 検索エンジンへのコネクタはLangchainを使い ます。 加 工 ロー ド イン
デッ クス 作成 スト ア 非同 期 クエ リ 評 価
検索拡張生成しよう。 LangChainのAgentとToolsを定義し ますAgentは、ユーザーの指示を 達成するために「思考→行動→ 観察」を行うロボットのような 機能です。入力テキストの内容 に応じて、適切なToolを選択しま す。 Toolには、nameとdescriptionを指 定します。これにより、Agentは
どのToolを使うべきかを判断しま す。指定は英語で行う方が誤作 動が少なく、LLMの精度が上がれ ば改善されるかもしれません。 加 工 ロー ド イン デッ クス 作成 スト ア 非同 期 クエ リ 評 価
検索拡張生成しよう。 LangChainのAgentとToolsをにより、 検索エンジンから知識会得をし、回答 を得ることができました! 加 工 ロー ド イン デッ
クス 作成 スト ア 非同 期 クエ リ 評 価
Appendix
今回のソースコード • https://github.com/engkimo/mlops_webiner_code/blob/main/MLOps_41Times_KNN_RAG_by_Uls ageInc.ipynb
ありがとうございました!