$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SnowflakeとDatabricks両方でRAGを構築してみた
Search
camay
April 23, 2025
Technology
1
1.2k
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 Lakebaseで見る、ML/LLMシステムでのPostgreSQLの使いどころ
kameitomohiro
0
350
Databricks AI/BI Genie の「値ディクショナリー」をAmazonの奥地(S3)まで見に行く
kameitomohiro
1
480
Lakebaseを使ったAIエージェントを実装してみる
kameitomohiro
0
350
新卒3年目の後悔〜機械学習モデルジョブの運用を頑張った話〜
kameitomohiro
0
540
SPCSでMLflow~初心者によるMLOps事始め~
kameitomohiro
0
190
Other Decks in Technology
See All in Technology
Agentic AI Patterns and Anti-Patterns
glaforge
1
100
オープンデータの内製化から分かったGISデータを巡る行政の課題
naokim84
2
1.4k
あなたの知らないDateのひみつ / The Secret of "Date" You Haven't known #tqrk16
expajp
0
120
Modern Data Stack大好きマンが語るSnowflakeの魅力
sagara
0
280
著者と読み解くAIエージェント現場導入の勘所 Lancers TechBook#2
smiyawaki0820
10
3.7k
私も懇親会は苦手でした ~苦手だからこそ懇親会を楽しむ方法~ / 20251127 Masaki Okuda
shift_evolve
PRO
4
570
AIにおける自由の追求
shujisado
3
470
Claude Code はじめてガイド -1時間で学べるAI駆動開発の基本と実践-
oikon48
43
26k
Capture Checking / Separation Checking 入門
tanishiking
0
120
Playwrightのソースコードに見る、自動テストを自動で書く技術
yusukeiwaki
10
3.6k
履歴テーブル、今回はこう作りました 〜 Delegated Types編 〜 / How We Built Our History Table This Time — With Delegated Types
moznion
16
9.5k
事業部のプロジェクト進行と開発チームの改善の “時間軸" のすり合わせ
konifar
9
3.1k
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
The Invisible Side of Design
smashingmag
302
51k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
GitHub's CSS Performance
jonrohan
1032
470k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.8k
GraphQLとの向き合い方2022年版
quramy
50
14k
4 Signs Your Business is Dying
shpigford
186
22k
Context Engineering - Making Every Token Count
addyosmani
9
470
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Fireside Chat
paigeccino
41
3.7k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Code Reviewing Like a Champion
maltzj
527
40k
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のみ