Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
RAGにベクトルDBは必要ない!DBも不要で運用めちゃ楽な RAG Chatbot を作った話
Search
forrep
August 20, 2024
Programming
18k
38
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RAGにベクトルDBは必要ない!DBも不要で運用めちゃ楽な RAG Chatbot を作った話
forrep
August 20, 2024
More Decks by forrep
See All by forrep
サービスに組み込むAIのパターン/アンチパターン
forrep
0
160
Linux && Docker 研修/Linux && Docker training
forrep
28
5.9k
Google Analytics でサイト速度を計測する / Measure site speed with Google Analytics
forrep
2
460
最近コードレビューで指摘したこと
forrep
4
650
「プログラマーのためのCPU入門」は入り口として丁度よい!
forrep
54
38k
DevTools でパフォーマンスチューニング入門 / Introduction to Performance Tuning with DevTools
forrep
2
560
技術的負債に対する視力を得る / How to View Technical Debt
forrep
0
980
しくじり先生 - NFS+sqliteで苦労した話から学ぶ、問題解決の考え方 / problem-solving approach
forrep
1
1.4k
理屈で考える、データベースのチューニング / Database tuning How-To
forrep
28
9.9k
Other Decks in Programming
See All in Programming
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
akkeylab
0
110
AHC070解法紹介
eijirou
0
150
mrbgem 三角測量 開発
ogom
0
170
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
9.4k
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
520
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
470
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
270
AWSに止められる覚悟してますか?
morizo_1984
2
490
Simple Storage Service(S3) is not simple
iwatsukayura
0
120
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
520
iOSDCのペンライトを自動制御したい!
akkeylab
0
340
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
370
Featured
See All Featured
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
240
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
560
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
380
The Language of Interfaces
destraynor
162
27k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
270
Transcript
RAGにベクトルDBは必要ない! DBすら不要で運用の楽な RAG Chatbot を作った話 1 株式会社ラクーンホールディングス 技術戦略部 羽山純
自己紹介 • 名前 ◦ 羽山 純(Jun Hayama) ◦ @forrep •
所属 ◦ 株式会社ラクーンホールディングス • 技術領域 ◦ バックエンド・インフラ ◦ パフォーマンス改善 ▪ MySQLでプライマリキーをUUIDにする前に知っておいて欲しいこと ◦ AI(企業審査AI) • 個人活動 ◦ アプリ開発 2
はじめに 本日伝えたいことはたったの一つ RAG にベクトルDBは必要ない! それだけです 3
やりたかったこと 社内の知見を持つチャットボットがほしい (工数を掛けずに簡単に) 4
できたもの 5
できたもの 6 (1) 社内の知見を持っている (2) 詳しい人にパスしてくれる (3) 参考情報を引用してくれる
実現方法 社内の知見を蓄えたチャットボットの実現には以下が候補です • RAG(Retrieval-Augmented Generation) • ファインチューニング • RAG +
ファインチューニング 今回は RAG を利用します 7
LLM + RAG の標準的な構成 8 LLM 社内情報 ベクトルDB 先月発生したインシデントを教えて インシデント
以下は先月発生したインシデントのいくつかです。 1. ◦◦システム全体の動作不安定 (2024-07-22) • 発生期間: 2024/7/22 6:44~ • 詳細: ◦◦チェックAPIで扱うテーブルのデータが膨大になりDBのリソースをひっ迫して いることが原因でした。 • リンク: 詳細はこちら 2. sitemap.xmlが表示されない件 (2024-07-18) • 発生期間: 2024-7-16 14:00 ~ • 詳細: クローラーが見に行くsitemap.xmlがNginxの設定不足で表示されませんでした。 • リンク: 詳細はこちら その他のインシデント情報もありますので、詳細が必要であればお知らせください。
ベクトルDB が必要 RAG にはベクトルDBが必要らしい・・・ 9
ベクトルDB とは ベクトルDBは意味の 近いワードを検索できて、 RAG に最適です 10 社内情報ベクトルDB 「インシデント」で検索 問題
インシデント 事故 incident report 障害 不具合 トラブル システム障害 システムトラブル エラー issue ログ 異常 対立 不調 争い 妨害 支障 欠陥 短所 アクシデント 異変 problem
ベクトルDBはめんどくさい ベクトルDBを用意して、必要な情報を精査して、 常に最新情報を同期するのが・・・ めんどくさい データも膨大で無理 できればベクトルDBを使いたくない 11
たいていの情報は Slack にある Slack って社内情報の宝庫では? しかし Slack API の検索機能は単純な全文検索 12
検索ワードを ベクトルライクな方法で多 重化して、 何度か検索すれば、 Slack API の貧弱な検索で もベクトルDBと同等の結 果を得られます 逆ベクトル検索(仮)を採用
13 Slack ワークスペース 問題 インシデント 事故 incident report 不具合 システム障害 エラー issue ログ システムトラブル トラブル 障害 対立 不調 異常 争い 妨害 支障 欠陥 アクシデント 異変 短所 problem
検索ワードの多重化は LLM にやってもらう 14 先月発生したインシデントを教えて ユーザーの質問に答えるため、私が Slack を検索して調べます 私の代わりに検索ワードをたくさん考えてください 幅広い結果を得るために、似た意味のワードも出力してください
after:yyyy-mm-dd before:yyyy-mm-dd で日付絞り込みできます • インシデント after:2024-07-01 before:2024-08-01 • システム 障害 after:2024-07-01 before:2024-08-01 • インシデントレポート after:2024-07-01 before:2024-08-01 • 障害報告 after:2024-07-01 before:2024-08-01 • 不具合 after:2024-07-01 before:2024-08-01 • 障害 after:2024-07-01 before:2024-08-01 システムプロンプト LLM ユーザープロンプト ※ Function Calling を利用せず、手動で RAG を実施してます (理由は時間の関係で省略)
LLM に回答を生成してもらう LLM が生成してくれたワードを Slack API で検索して、 その結果を再度 LLM に入力して回答を生成します
15
そうすると、これくらいの精度で回答できる 16
まとめ RAG にベクトルDBは必要ない! それだけです 今回紹介した Chatbot は以下の TechBlog 記事で詳しく紹介しています 社内用AIアシスタント「おっさんずナビ」を作った話、そして人間らしく振る舞う重要性を認識した話
https://techblog.raccoon.ne.jp/archives/1719796918.html 17