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
11
1.9k
LLMを組み合わせたRAGの実装
2024/01/18 に開催された【StudyCo with Momento】LLMに独自知識で回答させる「RAG」の理解を深めようのLT資料です。
Yuto Kimura
January 18, 2024
Tweet
Share
More Decks by Yuto Kimura
See All by Yuto Kimura
kubernetesクラスターと同期するマイクロサービスのためのローカル開発環境
biosugar0
0
200
Other Decks in Technology
See All in Technology
新卒1年目が向き合う生成AI事業の開発を加速させる技術選定 / ai-web-launcher
cyberagentdevelopers
PRO
3
1.2k
Emacs x Nostr
hakkadaikon
1
130
Comparing Apache Flink and Spark for Modern Stream Data Processing
sharonx
0
190
30万人が利用するチャットをFirebase Realtime DatabaseからActionCableへ移行する方法
ryosk7
2
300
APIテスト自動化の勘所
yokawasa
6
3.1k
Java x Spring Boot Warm up
kazu_kichi_67
2
440
話題のGraphRAG、その可能性と課題を理解する
hide212131
2
440
[PyCon Korea 2024] Lightning Talk: PyPI패키지를 의심하세요
studioego
PRO
0
130
Capybara+生成AIでどこまで本当に自然言語のテストを書けるか?
yusukeiwaki
6
1.3k
AWSコンテナ本出版から3年経った今、もし改めて執筆し直すなら / If I revise our container book
iselegant
7
1.8k
Databricksワークショップ - 生成AIとDWH
taka_aki
2
4.5k
リファクタリングへの耐性が高いモデルベースの統合テストの紹介 / Model-Base Integration Test for Refactoring
yuitosato
5
1.5k
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
73
9k
Writing Fast Ruby
sferik
626
60k
Fontdeck: Realign not Redesign
paulrobertlloyd
81
5.2k
Speed Design
sergeychernyshev
24
560
The Pragmatic Product Professional
lauravandoore
31
6.3k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
5
140
Agile that works and the tools we love
rasmusluckow
327
21k
How GitHub (no longer) Works
holman
311
140k
A Philosophy of Restraint
colly
203
16k
Measuring & Analyzing Core Web Vitals
bluesmoon
0
34
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で使う