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
MongoDB Atlas Vectorsearchではじめる生成AIアプリ開発
Search
chie8842
March 20, 2024
Technology
3
1.5k
MongoDB Atlas Vectorsearchではじめる生成AIアプリ開発
第39回 MLOps 勉強会の資料
https://mlops.connpass.com/event/312260/
#mlopsコミュニティ
chie8842
March 20, 2024
Tweet
Share
More Decks by chie8842
See All by chie8842
MongoDB Atlas Search のご紹介
chie8842
2
1.5k
AWS GlueとAWS Lake Formationではじめるデータマネジメント
chie8842
0
1k
Distributed Processing in Python
chie8842
2
680
クックパッドにおける推薦(と検索)の取り組み
chie8842
20
8k
Understanding distributed processing in Python
chie8842
2
2k
Performance Tuning Tips of TensorFlow Inference
chie8842
1
730
クックパッドにおけるCloud AutoML事例
chie8842
9
7.8k
Cookpad_Internship_MLOps_Lecture_2018
chie8842
35
16k
機械学習デプロイを支えるコンテナ技術(Machine Learning on Docker)
chie8842
14
8.3k
Other Decks in Technology
See All in Technology
AWSを活用したIoTにおけるセキュリティ対策のご紹介
kwskyk
0
260
Goで作って学ぶWebSocket
ryuichi1208
3
2.4k
役員・マネージャー・著者・エンジニアそれぞれの立場から見たAWS認定資格
nrinetcom
PRO
0
1.4k
LINE NEWSにおけるバックエンド開発
lycorptech_jp
PRO
0
120
2025-02-21 ゆるSRE勉強会 Enhancing SRE Using AI
yoshiiryo1
1
450
ビジネスモデリング道場 目的と背景
masuda220
PRO
9
690
ExaDB-XSで利用されているExadata Exascaleについて
oracle4engineer
PRO
3
150
ディスプレイ広告(Yahoo!広告・LINE広告)におけるバックエンド開発
lycorptech_jp
PRO
0
200
エンジニアリング価値を黒字化する バリューベース戦略を用いた 技術戦略策定の道のり
kzkmaeda
6
1.5k
Visualize, Visualize, Visualize and rclone
tomoaki0705
9
74k
Snowflakeの開発・運用コストをApache Icebergで効率化しよう!~機能と活用例のご紹介~
sagara
1
250
白金鉱業Meetup Vol.17_あるデータサイエンティストのデータマネジメントとの向き合い方
brainpadpr
7
990
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Into the Great Unknown - MozCon
thekraken
35
1.6k
Raft: Consensus for Rubyists
vanstee
137
6.8k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Building Applications with DynamoDB
mza
93
6.2k
Done Done
chrislema
182
16k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
640
Producing Creativity
orderedlist
PRO
344
40k
Transcript
MongoDB Atlas Vectorsearchで はじめる⽣成AIアプリ開発 Welcome 林⽥ 千瑛(Chie Hayashida) MongoDB Singapore
Solutions Architect
⾃⼰紹介 林⽥ 千瑛 MongoDB Sigapore のソリューションアーキテクト インフラエンジニア→ソフトウェアエンジニア→ソリューションアーキテクト Web企業にてデータ基盤・機械学習基盤・検索サービス開発に 従事した後、AWSのアナリティクススペシャリストソリューション アーキテクトを経て2023年11⽉からMongoDBに⼊社
お問い合わせ、技術質問等ありましたら、 画⾯右上のQRコードのGoogle Formから お問い合わせお願いします
このセッション・デモの内容は、期限なし 無料のMongoDB Atlas M0 クラスタで ご利⽤いただけます ※本番環境としては、課⾦が必要なM10以上の利⽤をおすすめします ※ M0クラスタでは、インデックス作成は3つまで等の制限があります ※
デモの内容は別途OpenAIのAPIが必要です
LLMによる質問応答 LLM アプリケーション 開発フレームワーク 質問 (プロンプト) ⽣成された回答 LLM プロバイダ ⽬⽟焼きの作り⽅を
教えて 卵を割ってフライパ ンに⼊れて、、、
LLM の課題 LLMモデルの学習データに含まれない内容について答えられない • 「今⽇の天気」などのリアルタイムな情報、組織や個⼈固有のデータに基づく質疑応答が できない Retrieval Augmented Generation (RAG)
LLMモデルのコンテキスト不⾜による問題を情報検索技術との融合に より解決 • 信頼性の低いデータに基づく回答が⾏われる場合がある • それっぽい嘘情報を答えてしまう(Hallucination)
Retrieval-Augmented Generation (RAG) ハリー、呪⽂の 書を使うんだ︕ えっと、えっと、 と、⾶べ︖ わかったぞ︕ “ウィンガーディアム・ レヴィオーサ!”
ハリー︕ものを浮かせる 呪⽂を答えよ︕ LLM RAG
Retrieval-Augmented Generation (RAG) ベクトル検索により 不⾜するコンテキストを 追加して回答を得る ハリー、呪⽂の 書を使うんだ︕ えっと、えっと、 と、⾶べ︖
わかったぞ︕ “ウィンガーディアム・ レヴィオーサ!” ハリー︕ものを浮かせる 呪⽂を答えよ︕ LLM RAG
ベクトル検索 データを数値配列で表し、距離の近いものを類似データとして抽出する Mozzarella [0.3, 0.9] Cheese [0.5, 0.7] Pizza [0.3,
0.4] Cheddar [0.9, 0.2] Added Mar 2023 ビーフ チキン ポーク ⿅⾁ ⾺⾁ ほうれん草 ネギ にんじん ピー マン じゃがいも ⾁ 野菜 [0.3, 0.4, 0.2, 0.1…] Vector
インデックス ベクトルデータの⽣成⽅法 LLMとは別の「Embeddingモデル」というタイプの機械学習モデルを利⽤ Embedding モデル OpenAI, Cohere, Anthropic, HuggingFace, Vertex
など ドキュメント 画像 ⾳声 動画 [0.4 0.7 0.9 … [0.2 0.3 0.8 … [0.1 0.6, 0.3 … [0.5 0.1 0.2 . . . [0.7 0.3 0.2 … [0.45 0.15 0.8 … Embeddings ベクターストア
LLMによる質問応答 LLM アプリケーション 開発フレームワーク 質問 (プロンプト) ⽣成された回答 LLM プロバイダ 今⽇の天気は︖
今⽇の天気はわかりません
RAGによる質問応答 LLM アプリケーション 開発フレームワーク 質問 (プロンプト) ⽣成された回答 LLM プロバイダ 今⽇の天気は︖
今⽇の天気は晴れです 質問︓今⽇の天気は︖ 関連⽂書︓3⽉20⽇の天気は… 天気予報ニュースの ベクトルデータ
RAGによる質問応答 LLM アプリケーション 開発フレームワーク 質問 (プロンプト) ⽣成された回答 LLM プロバイダ 今⽇の天気は︖
質問︓今⽇の天気は︖ 関連⽂書︓3⽉20⽇の天気は… 天気予報ニュースの ベクトルデータ 今⽇の天気は晴れです
Retool 社によるState of AI 2023 Surveyのベクトル データベースレビューにおいてダントツのNPS Linked
Atlas Vectorsearchの使いやすさ ベクトルデータとテーブル データを⼀緒に保存 統合的データプラットフォー ムとしての様々な機能を持つ フルマネージドサービス エンタープライズレベルの セキュリティや機能 マルチクラウド
検索とデータベースクエリ のリソースを分離 テーブルデータ、グラフデータ、地 理空間データ、時系列データなども 利⽤可能な柔軟なデータモデル
[0.3, 0.4, 0.2, 0.1…] Vector ベクトル検索と他のタイプのクエリを簡単に組み合わせる ことで、よりリッチな機能をより簡単に構築 "クエリ画像に似ている画像をすべて検索し、撮影者IDで グループ化する" "ユーザーのクエリに⼀致する、過去3ヶ⽉に公開された
コンテンツのみを検索する" "現在地から10マイル以内のレストランで、私の好みに 合うものを推薦する" メタデータを利⽤したフィルタリングとの統合 データベースのデータとの統合 地理空間検索との統合
Vector Operational アーキテクチャをシンプルに保つ • ドキュメントデータモデルに より、構造化データ、⾮構造 化データ、ベクトルデータを ⼀つのスキーマで管理可能 • データ同期不要
• ⼀つのAPIでデータベースクエ リとベクトル検索を組み合わ せた複雑なクエリを実現 MongoDB Atlas Document ベクトル専⽤データベースの導⼊→複雑なデータ同期 /API管理が必要となる RDBMSへのベクトル保存→ベクトル化対象データが 複数テーブルに散らばるので管理が難しい Operational data Vector data Newly added data as app requirements evolve
⽣成AIアプリ開発のためのツールやエコシステムとの統合 Developer Data Platform Atlas Any developer framework Any embedding
provider OpenAI, Cohere, AWS, Hugging Face, etc. Langchain, LlamaIndex, etc. Any foundation model OpenAI, Anthropic, Cohere, Hugging Face, AWS, Google あらゆるクラウド環境・地域で 利⽤可能 AWS, Azure, and Google Cloud の110以上のリージョンに対応
Vector Search GEN AI powered APP LLM Prompt Context Orchestration
Layer Single View _id: ObjectID(‘62f13a3fe7321ca47aecb216’) symbol: “ABMD” quarter: 4 year: 2021 Date: 2021-04-29T20:10:40.000+00:00 Content: “Operator: Ladies and gentleman, thank you for standing by, and welcome…” Content_embeddings: Array 0: 0.03898080065846443 1: -0.05879044905304909 2: 0.04323239979442215 3: -0.021337900310754776 4: -0.036346953362226486 5: 0.028689613565802574 6: -0.03514527902007103 7: -0.07414846867322922 8: -0.00993054173886776 9: 0.007234036456793547 10: -0.03197460621595383 ドキュメントに格納される埋め込みベクトルの例 ベクトル埋め込み
{ "mappings": { "fields": { "content_embedding": { "type": "knnVector", "dimensions":
1536, "similarity": "<euclidean | dotProduct | cosine>" }, "field1": { "type": "date" }, // optional "field2": { "type": "double" } // optional } } } Vector Search GEN AI powered APP LLM Prompt Context Orchestration Layer Single View Vector Search のインデックス ディメンション 類似度計算 アルゴリズム の選定 ベクトル埋め込みフィールド名
[{ "$vectorSearch": { "knnBeta": { "vector": [ 0.03898080065846443, ... ],
"path": "content_embedding", "k": 5 "filter": { // traditional point & range queries }, } } }] Vector Search GEN AI powered APP LLM Prompt Context Orchestration Layer Single View Vector Search のクエリとフィルタ _id: ObjectID(‘62f13a3fe7321ca4 symbol: “ABMD” quarter: 4 year: 2021 date: 2021-04-29T20:10:40.000+0 content: “Operator: Ladies and g content_embeddings: Array 0: 0.03898080065846443 1: -0.05879044905304909 2: 0.04323239979442215 3: -0.021337900310754776 4: -0.036346953362226486 5: 0.028689613565802574 6: -0.03514527902007103 7: -0.07414846867322922 8: -0.00993054173886776 9: 0.007234036456793547 10: -0.03197460621595383 Document Algorithm: HNSW
ベクトル検索とデータベースクエリを⼀つのクエリで 実⾏ 1. ʻfilterʼによりメタデータでフィルタリング 2. ʻ$vectorSearchʼ でフィルタ後のデータに 対してベクトル検索で類似データを10個抽出 3. ʻ$projectʼでベクトルフィールドを抽出対
象から排除
Demo https://github.com/chie8842/atlas-vector-search-rag/
Thank you!