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
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
250
Other Decks in Technology
See All in Technology
サイボウズ、プラットフォームエンジニアリング始めるってよ ― プラットフォームチームの事業貢献と組織アラインメントの強化
ueokande
0
100
小さいVue.jsを30分で作る
hal_spidernight
0
150
Every Conversation Counts
kawaguti
PRO
0
210
サンプリングは「作る」のか「使う」のか? 分散トレースのコストと運用を両立する実践的戦略 / Why you need the tail sampling and why you don't want it
ymotongpoo
4
170
AI時代の品質はテストプロセスの作り直し #scrumniigata
kyonmm
PRO
4
1.5k
Tachikawa.any 運営挨拶
daitasu
0
150
生成AIはソフトウェア開発の革命か、ソフトウェア工学の宿題再提出なのか -ソフトウェア品質特性の追加提案-
kyonmm
PRO
2
880
ボトムアップ限界を越える - 20チームを束る "Drive Map" / Beyond Bottom-Up: A 'Drive Map' for 20 Teams
kaonavi
0
190
鹿野さんに聞く!CSSの最新トレンド Ver.2026
tonkotsuboy_com
6
2.9k
データモデリング通り #5オンライン勉強会: AIに『ビジネスの文脈』を教え込むデータモデリング
datayokocho
0
250
「背中を見て育て」からの卒業 〜専門技術としてのテスト設計を軸に、品質保証のバトンを繋ぐ〜 #genda_tech_talk
nihonbuson
PRO
3
1.3k
『生成AI時代のクレデンシャルとパーミッション設計 — Claude Code を起点に』の執筆企画
takuros
3
2.3k
Featured
See All Featured
Designing for Timeless Needs
cassininazir
0
220
Darren the Foodie - Storyboard
khoart
PRO
3
3.3k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
180
SEO for Brand Visibility & Recognition
aleyda
0
4.5k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
180
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
140
Art, The Web, and Tiny UX
lynnandtonic
304
21k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
ラッコキーワード サービス紹介資料
rakko
1
3.3M
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で使う