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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
chie8842
March 20, 2024
Technology
2.1k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MongoDB Atlas Vectorsearchではじめる生成AIアプリ開発
第39回 MLOps 勉強会の資料
https://mlops.connpass.com/event/312260/
#mlopsコミュニティ
chie8842
March 20, 2024
More Decks by chie8842
See All by chie8842
MongoDB Atlas:モダンなアプリ開発を支えるデータプラットフォームのご紹介
chie8842
0
57
MongoDB Vectorsearchではじめるカスタマイズ可能な生成AIアプリ開発
chie8842
0
61
MongoDB Atlas Search のご紹介
chie8842
2
2.4k
AWS GlueとAWS Lake Formationではじめるデータマネジメント
chie8842
0
1.2k
Distributed Processing in Python
chie8842
2
880
クックパッドにおける推薦(と検索)の取り組み
chie8842
20
8.3k
Understanding distributed processing in Python
chie8842
2
2.3k
Performance Tuning Tips of TensorFlow Inference
chie8842
1
800
クックパッドにおけるCloud AutoML事例
chie8842
9
8.2k
Other Decks in Technology
See All in Technology
プロダクトエンジニアに必要な「いい感じ」に作る能力 〜たくさん作れる時代に、どこまで作るかの決め方〜
jnishime_dresscode
2
1.2k
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
6
6.7k
Webとヘルスデータ
yukukotani
0
170
Redmine 7.0で私が開発した新機能の狙いと背景
vividtone
1
100
Bet AI Day 2026丨Agentは、「金融」という巨大産業の何を変えられるのか
layerx
PRO
0
710
Benchmarking Vector Databases: pgvector vs. LanceDB
tsho
0
130
PM領域でのAI Agentの活用
lycorptech_jp
PRO
0
260
Jetpack Compose で挑む新聞紙面UI ─ 複合ジェスチャー・ポリゴン記事領域・適応的ページ構成という3つの壁/droidkaigi2026
nikkei_engineer_recruiting
0
190
Nav2、Nav3 ... はたまた自作?〜 作って理解する Nav3 の設計意図 〜 / Nav2, Nav3 ... or Build Your Own? — Understanding Nav3's design intent by building it from scratch
yanzm
0
200
PdMをやめて、 "プロダクトビルダー"という 働き方に変えました / PdM to Product Builder
shikichee
2
680
最新技術に積極チャレンジ!EKS共通基盤のこれまでとこれから
daitak
0
300
Does an AI Watermark Survive Translation?
machinetranslation
0
520
Featured
See All Featured
New Earth Scene 8
popppiees
3
2.5k
How STYLIGHT went responsive
nonsquared
100
6.3k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
Paper Plane (Part 1)
katiecoart
PRO
1
10k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.5k
Building Applications with DynamoDB
mza
96
7.2k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
The Limits of Empathy - UXLibs8
cassininazir
1
630
The Cost Of JavaScript in 2023
addyosmani
55
10k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
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!