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
SnowflakeとDatabricks両方でRAGを構築してみた
Search
camay
April 23, 2025
Technology
2
1.5k
SnowflakeとDatabricks両方でRAGを構築してみた
Cross Data Platforms Meetup #1(
https://cdpm.connpass.com/event/348713/
) の登壇資料です
camay
April 23, 2025
Tweet
Share
More Decks by camay
See All by camay
Databricks (と気合い)で頑張るAI Agent 運用
kameitomohiro
0
290
Databricks Lakebaseで見る、ML/LLMシステムでのPostgreSQLの使いどころ
kameitomohiro
0
500
Databricks AI/BI Genie の「値ディクショナリー」をAmazonの奥地(S3)まで見に行く
kameitomohiro
1
550
Lakebaseを使ったAIエージェントを実装してみる
kameitomohiro
0
430
新卒3年目の後悔〜機械学習モデルジョブの運用を頑張った話〜
kameitomohiro
0
560
SPCSでMLflow~初心者によるMLOps事始め~
kameitomohiro
0
190
Other Decks in Technology
See All in Technology
プロダクト開発の品質を守るAIコードレビュー:事例に見る導入ポイント
moongift
PRO
1
500
Interop Tokyo 2025 ShowNet Team Memberで学んだSRv6を基礎から丁寧に
miyukichi_ospf
0
200
Amazon Bedrock AgentCoreでブラウザ拡張型AI調査エージェントを開発した話 (シングルエージェント編)
nasuvitz
2
120
AWSが推進するAI駆動開発ライフサイクル入門 〜 AI駆動開発時代に必要な人材とは 〜/ introduction_to_aidlc_and_skills
fatsushi
7
4.9k
サンタコンペ2025完全攻略 ~お前らの焼きなましは遅すぎる~
terryu16
1
480
生成AI素人でも玄人でもない私がセイセイAIチョットワカルために勉強したこと
wkm2
2
320
Agent Payments Protocolで実装するAIエージェント間取引
tokio007
0
170
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
71k
Lookerの最新バージョンv26.2がやばい話
waiwai2111
1
130
AWS Bedrock Guardrails / 機密情報の入力・出力をブロックする — Blocking Sensitive Information Input/Output
kazuhitonakayama
2
180
器用貧乏が強みになるまで ~「なんでもやる」が導いたエンジニアとしての現在地~
kakehashi
PRO
5
580
マイグレーションガイドに書いてないRiverpod 3移行話
taiju59
0
260
Featured
See All Featured
How to Ace a Technical Interview
jacobian
281
24k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
81
[SF Ruby Conf 2025] Rails X
palkan
2
790
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Balancing Empowerment & Direction
lara
5
920
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Bash Introduction
62gerente
615
210k
Building Adaptive Systems
keathley
44
2.9k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
340
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Transcript
SnowflakeとDatabricks両方でRAGを構築 してみた DATUM STUDIO株式会社 亀井友裕 Cross Data Platforms Meetup #1
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 1
自己紹介 #大阪 #RADWIMPS #ライブ #カラオケ #服 #ビール #スノボ #YouTube #オモコロ #vtuber 亀井 友裕 会社 DATUM STUDIO 株式会社 主な 業務経験 データパイプラインの構築(Databricks) 需要予測モデルの運用(Databricks) RAGの精度改善(AWS) 資格 SnowPro Advanced: Data Scientist Databricks Certified Data Engineer Associate
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 2
アジェンダ 1. RAGって何? 2. 実際に作ってみよう! 1. Snowflake編 2. Databricks編 3. 比較してみる 1. 開発体験 2. デフォルトで使用できるモデル 3. コスト *事例ベースの話はないです!
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. RAGって何?
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 4
RAG(Retrieval Augmented Generation)とは RAGとは、LLMへの問い合わせの際、外部のドキュメントやデータベースから関連情報を検索し、LLMの回答 に反映させる技術です。 稟議申請の やり方を教えて ①関連情報の検索 ②LLMへのプロンプト生成 稟議申請の手順書.pdf 稟議申請の手順書.pdfによると、、、 ③回答
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 5
ベーシックなRAGのパイプライン(1/2):ベクトルインデックスの作成 1. 保存:ソースとなるドキュメントを保存します。 2. 分割:大きなドキュメントたちを小さなチャンクに分割します。 3. ベクトル化(埋め込み):チャンクをそれぞれベクトルに変換します。 4. 保存:後で検索できるように、ベクトルをストレージに保存しておきます。 https://python.langchain.com/docs/tutorials/rag/#indexing
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 6
ベーシックなRAGのパイプライン(2/2):取得と生成 5. 質問: ユーザーが質問を入力します。 6. 取得: ユーザー入力の質問に対して、関連するチャンクをベクトルインデックスから取得します。 7. プロンプト作成: 取得したチャンクと質問の両方を含むプロンプトを作成します。 8. 回答生成: プロンプトからを回答を生成します。 https://python.langchain.com/docs/tutorials/rag/#retrieval-and-generation
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 7
RAG構築に必要なコンポーネント RAGパイプラインの構築のためには、さまざまなコンポーネント(部品)が必要です。 コンテキスト・リポジトリ チャンク分割関数 埋め込みモデル ベクトルDB クライアント/アプリ UI PDFなどのドキュメントを格納するストレージ ドキュメントをチャンクに分割するpythonの関数など チャンクをベクトルに変換する機械学習モデル ベクトルデータを格納するストレージ ユーザーからの質問を受け取り、 RAGパイプラインをからの返答を返すアプリUI ベクトル検索機能 質問をベクトルデータに変換し、 ベクトルDBから類似ドキュメントを検索する機能 LLM API 生成されたプロンプトを受けとって、回答を生成するLLMのAPI コンポーネント 概要
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 8
それぞれの製品で使用する機能 Snowflake, Databricksはそれぞれ、RAGパイプラインの構築に必要な機能を揃えています。 コンテキスト・リポジトリ チャンク分割関数 埋め込みモデル ベクトルDB クライアント/アプリ UI ベクトル検索機能 LLM API コンポーネント Stage cortex.SPLIT_TEXT_RECURSIVE_CHARACTER Snowflake Cortex Search Streamlit in Snowflake Snowflake Cortex LLM(complete関数) Snowflakeの機能 Volumes Langchain の Text Splitters関数など Mosaic AI Vector Search Databricks Apps(PuPr) Databricks Model Serving Endpoint Databricksの機能 Databricks Model Serving Endpoint
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 実際に作ってみよう!
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 10
実際に作ってみよう! どちらでもRAGアプリを作ってみて、開発体験や各種機能の使用感を比べてみようと思います。 Snowflakeで作るRAGアプリ Databricksので作るRAGアプリ
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 11
実際に作ってみよう!Snowflake編(1/7) ステージの作成 & pdfファイルのアップロード Snowflake コンテキスト・リポジトリ チャンク分割関数 埋め込みモデル ベクトルDB クライアント/アプリ UI ベクトル検索機能 LLM API コンポーネント
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 12
実際に作ってみよう!Snowflake編(2/7) pdfファイルをパースし、チャンクに分割する Snowflake チャンク分割関数 埋め込みモデル ベクトルDB クライアント/アプリ UI ベクトル検索機能 LLM API コンポーネント コンテキスト・リポジトリ
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 13
実際に作ってみよう!Snowflake編(3/7) Cortex Searchオブジェクトを作成 Snowflake クライアント/アプリ UI LLM API コンポーネント コンテキスト・リポジトリ チャンク分割関数 埋め込みモデル ベクトルDB ベクトル検索機能
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 14
実際に作ってみよう!Snowflake編(4/7) 新規Streamlit Appを作成 Snowflake コンテキスト・リポジトリ チャンク分割関数 埋め込みモデル ベクトルDB ベクトル検索機能 LLM API コンポーネント クライアント/アプリ UI
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 15
実際に作ってみよう!Snowflake編(5/7) ベクトル検索の処理を記述 Snowflake クライアント/アプリ UI LLM API コンポーネント コンテキスト・リポジトリ チャンク分割関数 埋め込みモデル ベクトルDB ベクトル検索機能
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 16
実際に作ってみよう!Snowflake編(6/7) LLM推論の処理を記述 Snowflake コンテキスト・リポジトリ チャンク分割関数 埋め込みモデル ベクトルDB クライアント/アプリ UI ベクトル検索機能 コンポーネント LLM API
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 17
実際に作ってみよう!Snowflake編(7/7) 残りのUI部分を記述 Snowflake コンテキスト・リポジトリ チャンク分割関数 埋め込みモデル ベクトルDB ベクトル検索機能 LLM API コンポーネント クライアント/アプリ UI
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 18
実際に作ってみよう!Snowflake編 完成!ちゃんとDatabricksの質問にも答えてくれます! Snowflake
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 19
実際に作ってみよう!Databricks編(1/7) ボリュームの作成 & pdfファイルのアップロード コンテキスト・リポジトリ チャンク分割関数 埋め込みモデル ベクトルDB クライアント/アプリ UI ベクトル検索機能 LLM API コンポーネント Databricks
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 20
実際に作ってみよう!Databricks編(2/7) pdfファイルをパースし、チャンクに分割する snowflake チャンク分割関数 埋め込みモデル ベクトルDB クライアント/アプリ UI ベクトル検索機能 LLM API コンポーネント コンテキスト・リポジトリ Databricks
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 21
実際に作ってみよう!Databricks編(3/7) Mosaic AI Vecoter Search Index オブジェクトを作成(埋め込みモデルは、デフォルトでホストされてい るモデル(GTE (En))を使用) snowflake クライアント/アプリ UI LLM API コンポーネント コンテキスト・リポジトリ チャンク分割関数 埋め込みモデル ベクトルDB ベクトル検索機能 databricks Databricks
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 22
実際に作ってみよう!Databricks編(4/7) Databricks App(Streamlit)を作成 snowflake コンテキスト・リポジトリ チャンク分割関数 埋め込みモデル ベクトルDB ベクトル検索機能 LLM API コンポーネント クライアント/アプリ UI Databricks
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 23
実際に作ってみよう!Databricks編(5/7) ベクトル検索の処理を記述 snowflake クライアント/アプリ UI LLM API コンポーネント コンテキスト・リポジトリ チャンク分割関数 埋め込みモデル ベクトルDB ベクトル検索機能 Databricks
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 24
実際に作ってみよう!Databricks編(6/7) LLM推論の処理を記述 snowflake コンテキスト・リポジトリ チャンク分割関数 埋め込みモデル ベクトルDB クライアント/アプリ UI ベクトル検索機能 コンポーネント LLM API Databricks
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 25
実際に作ってみよう!Databricks編(7/7) 残りのUI部分を記述し、デプロイ snowflake コンテキスト・リポジトリ チャンク分割関数 埋め込みモデル ベクトルDB ベクトル検索機能 LLM API コンポーネント クライアント/アプリ UI Databricks
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 26
実際に作ってみよう!Databricks編 完成!Snowflakeの質問にもちゃんと答えてくれます! snowflake Databricks
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 比較してみる
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 28
比較観点1:開発体験 総括 Snowflakeの 便利ポイント Databricksの 便利ポイント ベーシックなRAGの構築するなら、総コード量はそんなに変わらない パース、チャンク分割をSQLで完結させられるので楽 Stageに配置しているドキュメントのリンク作成がサクッとできるのも嬉しい Streamlitアプリの作成がめっちゃスムーズ Pythonライブラリのインストールに対するハードルが低いのが嬉しい Mlflowによるロギング周りの機能が充実している
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 29
比較観点2: デフォルトで使用できるLLMモデル デフォルトで使用できるモデル群は以下です。Snowflakeでは、日本語に対応した埋め込みモデルが使えるの が強みと言えそうです。 埋め込みモデル 埋め込みモデル snowflake-arctic-embed-m-v1.5 snowflake-arctic-embed-m e5-base-v2 snowflake-arctic-embed-l-v2.0 nv-embed-qa-4 multilingual-e5-large voyage-multilingual-2 GTE Large (En) BGE Large (En) GTE v1.5(En) BGE v1.5(En) Llama-3.1-8b Llama-3.1-70b Llama-3.1-405b Llama-3.2-1b Llama-3.2-3b Llama-3-8b Llama-3-70b Llama-4-Maverick Mistral-7b Mixtral-8x7b Deep Seek-R1 Claude-3.5-Sonnet mistral-large mistral-large2 reka-flash reka-core jamba-instruct jamba-1.5-mini jamba-1.5-large Claude-3.7-Sonnet DBRX MPT Databricks Snowflake ※太字は日本語対応 (と、公式で謳われている)モデル
© 2025 DATUM STUDIO Co. Ltd. PROPRIETARY & CONFIDENTIAL. 30
比較観点3: コスト ベクトル検索のサービングはSnowflakeが安く、アプリのホストはDatabricksが安そうでした。 LLM API (Llama-3.3-70B) ベクトル検索の サービング クライアント/アプリ UI 機能 $1.25 / M tokens $220.59/unit, Month $4.3/hour Snowflake (東京リージョン & Enterprise Edition) $0.64 / M input tokens $1.93 / M output tokens $259.2/unit, Month $0.415/hour Databricks (東京リージョン & Premium plan) *1unit = 2M vectors with 768 dim *XSクラスタのアタッチを想定 *1unit = 2M vectors with 768 dim *アタッチできるクラスタは 2vCPU, 6 GB RAMのみ