第1章 Snowflake AI Data Cloudの特徴とアーキテクチャ(Features & Architecture, 31%)
🎯 この節の学習目標
Snowflake Cortex は、Snowflake が提供する AI 機能群の総称です。共通する考え方は、「データを外部の AI サービスに持ち出すのではなく、データがある場所(Snowflake の中)で AI を動かす」ことです。これにより、次の利点が得られます。
📝 試験のポイント
Cortex のガバナンスに関しては、「データは Snowflake の境界内で処理される」「ロールベースのアクセス制御が適用される」という2点がそのまま問われやすい論点です。「AI 機能を使うとデータが外部サービスに送信される」という趣旨の選択肢は誤りと判断できます。
Cortex の最も基本的な使い方が、SQL 関数として LLM を呼び出すことです。この関数群は AISQL とも呼ばれ、追加のアプリケーションやインフラなしに、SELECT 文の中で LLM の処理をデータに適用できます。サーバーレスで動作し、処理したトークン量に応じた課金となります。
| 関数(代表例) | できること |
|---|---|
| AI_COMPLETE / SNOWFLAKE.CORTEX.COMPLETE | プロンプトを与えて LLM に自由なテキスト生成をさせる(汎用) |
| SUMMARIZE | テキストの要約 |
| TRANSLATE | テキストの翻訳 |
| SENTIMENT | テキストの感情(ポジティブ/ネガティブ)分析 |
| EXTRACT_ANSWER | テキストから質問への回答を抽出 |
| EMBED_TEXT | テキストの埋め込みベクトル(セマンティック検索などに利用)を生成 |
💡 具体例:SQLだけでレビューを要約・感情分析する
-- レビューテーブルの各行に LLM 処理を適用する
SELECT
review_id,
SNOWFLAKE.CORTEX.SUMMARIZE(review_text) AS summary,
SNOWFLAKE.CORTEX.SENTIMENT(review_text) AS sentiment_score
FROM product_reviews;
-- 汎用の COMPLETE 関数でモデルとプロンプトを指定する
SELECT AI_COMPLETE(
'モデル名',
'この問い合わせ内容を1文で分類してください: ' || inquiry_text
) FROM inquiries;
ポイントは、データを移動せずに、普段のクエリと同じ感覚で LLM 処理をテーブルの各行に適用できることです。
Cortex には、LLM 関数より一段高いレベルの「サービス」として、性格の異なる2つの検索・質問応答機能があります。両者の違いは試験でも問われやすいため、対比して覚えます。
| Cortex Search | Cortex Analyst | |
|---|---|---|
| 対象データ | 非構造化テキスト(ドキュメント・記事・ナレッジベースなど) | 構造化データ(テーブルの数値・属性) |
| 仕組み | セマンティック(ベクトル)検索+キーワード検索のハイブリッド検索サービス | セマンティックモデル定義に基づき、自然言語の質問を SQL に変換して回答 |
| 典型ユースケース | RAG(検索拡張生成)の検索基盤。チャットボットに社内文書を根拠として与える | 「先月の地域別売上は?」のような自然言語でのデータ分析 |
Cortex Search は、文書検索の精度を高めるためにセマンティック検索とキーワード検索を組み合わせたハイブリッド方式をとっており、LLM に「回答の根拠となる文書」を渡す RAG(Retrieval-Augmented Generation)の検索基盤として使われます。Cortex Analyst は、テーブルの意味(指標の定義や列の意味)をあらかじめセマンティックモデルとして定義しておくことで、自然言語の質問を正確な SQL に変換して構造化データに答えます。
| 機能 | 役割 |
|---|---|
| Document AI | PDF などの文書から構造化情報を抽出する。請求書や契約書から項目(金額・日付など)を取り出してテーブル化する、といった用途 |
| Snowflake Copilot | Snowsight 内の SQL 支援アシスタント。自然言語での指示から SQL の作成・改善を支援する |
Document AI は「ファイルの山からデータを取り出してデータパイプラインに乗せる」ための機能、Copilot は「Snowflake を操作するユーザー自身を支援する」機能、という位置づけの違いを押さえておきましょう。
また、LLM を使う Cortex とは別に、Snowflake は機械学習(ML)の機能群(Snowflake ML)も提供しています。代表例が ML Functions で、時系列予測(forecasting)・異常検知(anomaly detection)・分類(classification)などの分析を、モデル開発の専門知識がなくても SQL から実行できます。より本格的には、Snowpark を使ったモデルの学習や、学習済みモデルを登録・管理するモデルレジストリも利用できます。「生成 AI・LLM は Cortex、予測・異常検知などの機械学習は Snowflake ML(ML Functions)」という対応で整理しておきましょう。
試験では「この要件にはどの機能を使うべきか」という形式で問われることがあります。判断の流れを図にまとめます。
図:ユースケースから Cortex 機能を選ぶ対応関係
📝 試験のポイント
特に紛らわしいのは Cortex Search と Cortex Analyst です。「文書(非構造化テキスト)を検索する → Search」「自然言語を SQL に変換して構造化データに答える → Analyst」と、対象データと出力で切り分けましょう。「RAG」というキーワードが出たら Cortex Search、「セマンティックモデル」というキーワードが出たら Cortex Analyst が対応します。
✅ この節のまとめ
問1. Cortex LLM(AISQL)関数の説明として正しいものはどれか。
正解:B
Cortex LLM 関数はサーバーレスで提供され、SUMMARIZE や TRANSLATE などを SQL から直接呼び出せます。課金はトークン量ベースです。Aは誤りで、インフラ管理が不要な点が Cortex の利点です。Cは誤りで、データは Snowflake の境界内で処理されます。Dは誤りで、ロールベースのアクセス制御が適用されます。
問2. 社内ドキュメントを根拠として回答するチャットボット(RAG)を構築するにあたり、文書の検索基盤として最も適切な機能はどれか。
正解:A
Cortex Search はセマンティック検索とキーワード検索を組み合わせたハイブリッド検索サービスで、RAG の検索基盤として使われます。Bの Cortex Analyst は構造化データへの自然言語質問を SQL に変換する機能で、文書検索は対象外です。Cの Copilot は Snowsight 内で SQL 作成を支援するアシスタントです。Dの SENTIMENT は感情分析の関数であり、検索基盤にはなりません。
問3. 「業務部門のユーザーが『先月の製品カテゴリ別の売上合計は?』のように自然言語で質問すると、テーブルのデータに基づいて回答が返る」仕組みを実現したい。最も適切な機能はどれか。
正解:C
Cortex Analyst は、セマンティックモデル定義に基づいて自然言語の質問を SQL に変換し、構造化データに対して回答します。Aの Document AI は PDF などの文書からの情報抽出が役割です。Bの Cortex Search は非構造化テキストの検索が対象で、集計を伴う構造化データの質問応答には向きません。Dの EMBED_TEXT は埋め込みベクトルを生成する関数で、単体では質問応答を実現できません。
問4. Snowflake の AI 機能とガバナンスに関する説明として正しいものを2つ選べ。
正解:A・B
Cortex のデータ処理は Snowflake の境界内で行われ(A)、既存のロールベースのアクセス制御がそのまま適用されます(B)。CとDは機能の説明が入れ替わっており、SQL 支援アシスタントが Snowflake Copilot、文書からの構造化情報抽出が Document AI です。