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
LLMを組み合わせたRAGの実装
Search
Yuto Kimura
January 18, 2024
Technology
2.2k
11
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LLMを組み合わせたRAGの実装
2024/01/18 に開催された【StudyCo with Momento】LLMに独自知識で回答させる「RAG」の理解を深めようのLT資料です。
Yuto Kimura
January 18, 2024
More Decks by Yuto Kimura
See All by Yuto Kimura
kubernetesクラスターと同期するマイクロサービスのためのローカル開発環境
biosugar0
0
260
Other Decks in Technology
See All in Technology
SRE Lounge Hiroshimaへの招待
grimoh
0
640
オブザーバビリティ、本当に活用できてる? 〜API連携×生成AIで成熟度を自動評価〜
dmmsre
1
3.1k
依頼文化をやめる日 EM視点で語るPlatform EngineeringとInclusive SRE / Discussing Platform Engineering and Inclusive SRE from an EM's Perspective
shin1988
4
5.3k
キャリアの中で本を作る / Making a Book During Your Career
ak1210
0
130
AI Driven AI Governance
pict3
0
330
非定型なドキュメントを効率よくリファクタする 〜えぇ!?仕様書27本の移行が1日で終わったって!?〜
subroh0508
1
300
あなたの『Site』はどこですか? — xREという考え方
miyamu
0
1.2k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
ポストモーテム! DDoSからサイトは守れた。 でもビジネスは守れなかった。
bengo4com
0
2.8k
AI駆動開発におけるQAエンジニアの役割事例 〜AI駆動開発の現場から〜
kobayashiyorimitsu
0
500
「ちゃんとやっている」は独りよがりだった ― 不安に寄り添うインシデント対応へ / Towards incident response that addresses anxieties
chmikata
1
5k
ゼロをイチにする仕事が終わったあと
smasato
0
340
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
690
Designing Powerful Visuals for Engaging Learning
tmiket
1
450
The Cost Of JavaScript in 2023
addyosmani
55
10k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
230
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
150
Thoughts on Productivity
jonyablonski
76
5.2k
Technical Leadership for Architectural Decision Making
baasie
3
440
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
2
320
Transcript
LLMを組み合わせた RAGの実装 株式会社スマートショッピング 木村 優斗 2024.01.18
自己紹介 木村 優斗 (X: @biosugar0) 株式会社スマートショッピング SRE 信頼性= 高頻度な価値提供 +
システムの安定性 というポリシーでサービスの信頼性の維持、向上のために何でもやっ ています。 会社全体の生産性向上がサービスの信頼性を向上させるという理屈 で最近はLLM部を立ち上げて社内活用を模索しています。
スマートマットクラウド マットの上にモノを置くだけで、数をカウント。 IoT×クラウドで、在庫を24時間監視します。
スマートマットクラウド 4 マットで計測し、在庫数を常に把握。 在庫がしきい値を超えたら、自動で発注します。
今日話すこと 弊社の社内Slack Botに実装した ヘルプページを参照するRAGの事例紹介 ブログ版: Slack Botによるヘルプページの情報参照:LLMを組み合わせたRAGの実装
RAG(Retrieval-Augmented Generation)について 外部のデータベースや文書と連携して LLMに精度の高い回答を生成させるためのテクニック RAGを使うと何が嬉しいか? • LLMが知らない知識に対応できる → 弊社のヘルプページの知識に対応させた
技術スタックと利用イメージ インフラ • AWS Lambda ドキュメントのデータストア • Momento Vector Index
ドキュメントの保存コード • Python LLM API • OpenAIのGPT-4 • AnthropicのClaude2.1(Amazon Bedrock経 由) RAG実装 • TypeScript • 参照したドキュメントへのリンク付きで回答してくれる • ハルシネーション(幻覚)対策。人間が確認できるように
事前準備 • LlamaIndex,LangChainを使ってヘルプサイトの内 容を取得し、Momento Vector Indexへの保存を 行う • 様々なローダーがLlamaHubに用意されている •
弊社はヘルプページにZendeskを使っているので ZendeskReaderが使えた これだけで弊社のヘルプページが全て保存される
今回作ったRAGの構成 検索クエリをLLMに生成させる構成
今回作ったRAGの構成 GPT-4 Claude2.1 • 検索実行の判断と検索クエリ生成用 • 定義したJSON構造を返してくれるFunction Callingが優秀 • 質のいいクエリを生成してくれる
• インプットの制限: 8K token • gpt-4 turboは128Kだが安定しない(1/14現在) • ドキュメントに沿った回答の生成用 • インプットの制限: 200K token • 大体のドキュメントが入ったプロンプトを使 える
今回作ったRAGの構成 Momento Vector Index • サーバーレスなベクトルストア • ベクトル化したヘルプサイト全体を事前に保存し、 外部知識をLLMに与えるために利用 •
検索時にはベクトル化したクエリを用いてベクトル 間の距離メトリクスを計算して関連文書を取得 • 検索にはコサイン類似度を利用。ベクトルの方向 を重視。文書の長さによる影響を比較的受けにく い
今回作ったRAGの構成 1. ユーザーの質問からGPT-4が検索するかどうかを 判断 2. 検索する場合検索クエリを生成 3. 生成された検索クエリでMomento Vector Index
に保存されたドキュメントを検索 4. 取得したドキュメントをプロンプトに埋め込み Claude2.1で回答を生成
精度向上のために: クエリ拡張 ユーザーの質問が必ずしも検索クエリとして適切とは限らない スマートマットの最小計測単位は下記のとおりです。 1個あたり重量が最小計測単位より小さいと誤差の原因とな ります。 ・A3サイズ:100g ・A4サイズ:10g ・A5・A6サイズ:1g 検索対象の文書
A4 最小計測単位 スマートマットのA4サ イズの最小計測単位 はどのくらいか教え てください 0.877 0.924 コサイン類似度 (1が完全な類似性) クエリ1 クエリ2
精度向上のために: GPT-4 Function Callingプロンプト description:関数自体の説明。弊社のサービス以外の質問に検索が走らないように • 弊社のサービスの概要とそのドキュメントの資料を取得するためのものであることを明 記 • (ヘルプページが日本語なので)日本語の質問に最適化されていることを記載
parameters.query: 適切な検索クエリを生成するための定義 • 200文字以下のSmartMat Cloudに関連する質問 • 質問例を記載(A3マットで計測できる商品の最大重量は何gですか?) • ユーザーが知りたいことを推察しながら明確で具体的なクエリに書き換えることを指示 • 日本語を使うように再度強調
今後の展望 • MVIのデータの定期更新 • 検索対象のヘルプページ以外への拡大 ◦ インターネット検索結果の参照 ◦ Salesforce ◦
ミーティング録画 ◦ 社内ドキュメント • RAG機能を分離して社内ChatGPTで使う