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
1
790
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
新卒3年目の後悔〜機械学習モデルジョブの運用を頑張った話〜
kameitomohiro
0
410
SPCSでMLflow~初心者によるMLOps事始め~
kameitomohiro
0
140
Other Decks in Technology
See All in Technology
Welcome to the LLM Club
koic
0
160
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 完全版 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming - Expanded
tomzoh
4
3.1k
Wasm元年
askua
0
130
Model Mondays S2E02: Model Context Protocol
nitya
0
210
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
250
Amazon ECS & AWS Fargate 運用アーキテクチャ2025 / Amazon ECS and AWS Fargate Ops Architecture 2025
iselegant
16
5.3k
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
1
500
エンジニア向け技術スタック情報
kauche
1
230
20250623 Findy Lunch LT Brown
3150
0
840
Azure AI Foundryでマルチエージェントワークフロー
seosoft
0
170
A2Aのクライアントを自作する
rynsuke
1
170
AIの最新技術&テーマをつまんで紹介&フリートークするシリーズ #1 量子機械学習の入門
tkhresk
0
130
Featured
See All Featured
Building an army of robots
kneath
306
45k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
How GitHub (no longer) Works
holman
314
140k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
930
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Git: the NoSQL Database
bkeepers
PRO
430
65k
GraphQLとの向き合い方2022年版
quramy
47
14k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Site-Speed That Sticks
csswizardry
10
660
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
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のみ