Slide 1

Slide 1 text

検索&レコメンド社内勉強会 Cortex Searchとは 2025.2.28 田代 学 © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL.

Slide 2

Slide 2 text

• Snowflakeが提供するフルマネージド型ハイブリッ ド検索サービス • 色々自動化 • ニアゼロメンテナンス © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. Cortex Searchとは①

Slide 3

Slide 3 text

• キーワード検索(=全文検索?) • ベクトル検索 • リランキング を実現 © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. Cortex Searchとは① 〜フルマネージドなハイブリッド検索

Slide 4

Slide 4 text

• 入力キーワードで完全一致 or 部分一致 • めっちゃ高速 • 同義語や文脈を理解しない • 見逃しが発生 • 一応、あいまい検索などはあるか • tf-idf、n-gramとか © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. Cortex Searchとは① :キーワード検索の特徴

Slide 5

Slide 5 text

• 文脈や意味など類似性を評価 • →同義語や関連概念を拾い上げる • 精度高い • →意図しないものが入り込む可能性も • 計算コスト高い • →高次元ベクトル計算 • 学習必要 © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. Cortex Searchとは① :ベクトル検索の特徴

Slide 6

Slide 6 text

• キーワード検索&ベクトル検索が初期検索 • 関連度などを再評価して、表示順を決定 © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. Cortex Searchとは① :補足:リランキング

Slide 7

Slide 7 text

• データの取り込み • 埋め込み • インデックス作成 • 検索、 • リランキング などが全自動化 • ただし、画像内のテキスト抽出やPDFは前処理としてテ キスト抽出処理が必要 © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. Cortex Searchとは②色々自動化

Slide 8

Slide 8 text

• インフラのメンテナンス不要 • 検索品質パラメータの調整不要 • 継続的なインデックスの更新→勝手にやるので考 慮不要 © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. Cortex Searchとは③ ニアゼロメンテナンス

Slide 9

Slide 9 text

• 画像内のテキスト抽出やPDFの内容検索を行う際に は、事前に適切なテキスト抽出処理を行い、デー タベースに取り込む必要がある © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. Cortex Searchとは

Slide 10

Slide 10 text

© 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. RAG(検索拡張生成)なCortex Search

Slide 11

Slide 11 text

Cortex Searchのチュートリアルを3つやってみた https://zenn.dev/churadata/articles/da7eae290b6ae4 大まかな流れ 1. データをStageにPut 2. TableにLoad 3. CORTEX SEARCH SERVICEをCreate 4. Streamlit in Snowflakeで検索アプリを実装 5. 検索してみる © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 検索アプリを作ってみる

Slide 12

Slide 12 text

1. (内部)Stageを作る 2. Stageに取り込みファイルを置く 1. json形式 2. csv形式 3. pdf形式 など © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 検索アプリを作ってみる:データをStageにPut

Slide 13

Slide 13 text

1. ファイルを解析するFunctionの作成 1. PDF→Text(PyPDF2など) 2. (OPTION)CHUNKに分割 © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 検索アプリを作ってみる:TableにLoad① chunkerの作成

Slide 14

Slide 14 text

3. テーブルへロード 1. FUNCTION:pdf_text_chunkerを使用 © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 検索アプリを作ってみる:TableにLoad② Tableへ

Slide 15

Slide 15 text

© 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 検索アプリを作ってみる:取り込みデータを確認

Slide 16

Slide 16 text

1. CREATE CORTEX SEARCH SERVICE © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 検索アプリを作ってみる:CORTEX SEARCH SERVICEをCreate

Slide 17

Slide 17 text

© 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 検索アプリを作ってみる:CORTEX SEARCH SERVICEをCreate オプション 説明 ON chunk 検索対象のカラム ATTRIBUTES 検索結果のフィルタリングに使える WAREHOUSE 検索サービスを更新するのWAREHOUSE TARGET_LAG ソースクエリで指定されたベーステーブル の更新から遅れる最大時間 EMBEDDING_M ODEL multilingual-e5-large, nv-embed-qa-4, snowflake-arctic-embed- l-v2.0, voyage-multilingual-2, e5-base-v2, snowflake-arctic- embed-m, snowflake-arctic-embed-m-v1.5 AS サービスが作成されるベース・テーブルを 定義するクエリを指定

Slide 18

Slide 18 text

• 検索列のトークンは512以下を推奨 • 英単語で385 • 1トークン=約3/4=約4文字 • 文字列内のトークン数をカウントする関数あり • コスト:100万トークンあたり 0.03 〜 0.07 Credit © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 追加情報:トークン制限とテキスト分割

Slide 19

Slide 19 text

voyage-multilingual-2 だけ 32,000 参考:Snowflake のベクトル化は何を使えばいいのか? (Cortex LLM Embedding) © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 追加情報:トークン制限とテキスト分割

Slide 20

Slide 20 text

Credit Consumption Table • AI Services - Serving costs • 6.3 Credits per GB/mo of indexed data • AI Services - Embedding costs(100万トークン毎) • Cortex Embed Text 1024 – multilingual-e5-large 0.05 • Cortex Embed Text 1024 – nv-embed-qa-4 0.05 • Cortex Embed Text 1024 – snowflake-arctic-embed-l-v2.0 0.05 • Cortex Embed Text 1024 – voyage-multilingual-2 0.07 • Cortex Embed Text 768 – e5-base-v2 0.03 • Cortex Embed Text 768 – snowflake-arctic-embed-m 0.03 • Cortex Embed Text 768 – snowflake-arctic-embed-m-v1.5 0.03 © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 追加情報:コスト①

Slide 21

Slide 21 text

• Virtual warehouse • SERVICE作成時、更新時 • → TARGET_LAG しだい • Storage • テーブルの容量(TBあたり) • Cloud Service • ソースオブジェクトに対して変更があった際のト リガーの料金 © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 追加情報:コスト②

Slide 22

Slide 22 text

• Cortex Search ServiceにはMEDIUM 以下のサイズを推奨 • ウェアハウスを大きくしてもパフォーマンスが向上しない • Snowflake Cortex LLM 関数では、処理されるトークン の数に基づいて計算コストが発生 © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 追加情報:利用ウェアハウス

Slide 23

Slide 23 text

• 設定事項が少なくとてもシンプル • ニアゼロメンテナンスで楽 • 検索対象に検索したいカラムを文字列連結必要 • いにしえの全文検索の技法(?) • カラムごとの重み付けって難しそう • PDFやPPXからの抽出は、日本語で最適化されてない • ここは実装を待つか、外部関数を使う © 2025 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. まとめ