Snowflake Cortex AIは、SQL文から直接LLM推論・翻訳・要約・データ抽出・時系列予測を実行できるマネージドAI基盤です。 外部APIキーの管理やインフラ構築は不要で、Snowflakeのガバナンスとアクセス制御の中でAI機能を利用できます。 本記事では、LLM関数・ML Functions・Cortex Search・Document AIの4つの柱を、SQL実行例とともに解説します。
Cortex AIはSnowflakeのネイティブAI/MLプラットフォームで、以下の4つの主要機能群で構成されています。
| 機能群 | 用途 | 呼び出し方式 |
|---|---|---|
| LLM Functions | テキスト生成・翻訳・要約・抽出 | SQL関数 |
| ML Functions | 時系列予測・異常検知・分類 | SQL関数 |
| Cortex Search | ハイブリッド検索(キーワード+セマンティック) | サービスオブジェクト |
| Document AI | 非構造化ドキュメントからのデータ抽出 | モデルオブジェクト |
LLM FunctionsはSQLのSELECT文から呼び出せるビルトイン関数です。すべてSNOWFLAKE.CORTEX スキーマに属し、ウェアハウスではなくSnowflakeのサーバーレスコンピュートで実行されます。
指定したLLMモデルでプロンプトに基づくテキスト生成を行います。チャット形式(メッセージ配列)とシンプルなテキスト入力の2つの呼び出し方法があります。
-- シンプルなテキスト生成
SELECT SNOWFLAKE.CORTEX.COMPLETE(
'llama3.1-70b',
'Snowflakeのマイクロパーティションの利点を3つ挙げてください'
) AS response;
-- チャット形式(system / user ロール)
SELECT SNOWFLAKE.CORTEX.COMPLETE(
'mistral-large2',
[
{'role': 'system', 'content': 'あなたはSnowflakeエキスパートです。'},
{'role': 'user', 'content': 'クラスタリングキーの選定基準を教えてください'}
],
{'temperature': 0.3, 'max_tokens': 1024}
) AS response;テキストを指定言語に翻訳します。ソース言語は省略すると自動検出されます。
SELECT SNOWFLAKE.CORTEX.TRANSLATE(
'Snowflake decouples storage and compute for elastic scaling.',
'en', 'ja'
) AS translated;
-- → Snowflakeは弾力的なスケーリングのためにストレージとコンピュートを分離しています。長文テキストを自動的に要約します。テーブル内のドキュメントカラムに対してバッチ要約が可能です。
SELECT
doc_id,
SNOWFLAKE.CORTEX.SUMMARIZE(content) AS summary
FROM support_tickets
WHERE created_at >= DATEADD(day, -7, CURRENT_DATE());テキストから特定の質問に対する回答を抽出します。RAGパイプラインの後処理やFAQ自動生成に有効です。
SELECT SNOWFLAKE.CORTEX.EXTRACT_ANSWER(
'Snowflake was founded in 2012 by Benoit Dageville, Thierry Cruanes, and Marcin Zukowski.',
'Who founded Snowflake?'
) AS answer;
-- → [{"answer": "Benoit Dageville, Thierry Cruanes, and Marcin Zukowski", "score": 0.95}]テキストの感情スコアを-1(ネガティブ)から1(ポジティブ)の範囲で返します。
SELECT
review_text,
SNOWFLAKE.CORTEX.SENTIMENT(review_text) AS score
FROM product_reviews
ORDER BY score ASC
LIMIT 10; -- 最もネガティブなレビュー上位10件Cortex AI LLM Functionsで利用できる主要モデルの比較です。リージョンによって利用可否が異なります。
| モデル名 | 提供元 | パラメータ規模 | 主な用途 |
|---|---|---|---|
| llama3.1-405b | Meta | 405B | 高精度な推論・複雑なタスク |
| llama3.1-70b | Meta | 70B | 汎用テキスト生成・分析 |
| llama3.1-8b | Meta | 8B | 低レイテンシ処理・分類 |
| mistral-large2 | Mistral AI | 123B | 多言語・コード生成 |
| mistral-7b | Mistral AI | 7B | 軽量タスク・リアルタイム |
| snowflake-arctic | Snowflake | MoE 480B | SQL生成・エンタープライズ向け |
| jamba-1.5-large | AI21 Labs | 398B | 長文コンテキスト処理 |
| gemma-7b | 7B | 軽量推論・研究用途 |
ML FunctionsはSQLだけで時系列予測や異常検知を実行できるビルトイン機能です。モデル訓練・推論がすべてSnowflake内で完結し、外部ツールは不要です。
-- 予測モデルの作成
CREATE OR REPLACE SNOWFLAKE.ML.FORECAST sales_forecast(
INPUT_DATA => SYSTEM$REFERENCE('TABLE', 'daily_sales'),
TIMESTAMP_COLNAME => 'sale_date',
TARGET_COLNAME => 'revenue'
);
-- 30日先の予測を実行
CALL sales_forecast!FORECAST(
FORECASTING_PERIODS => 30,
CONFIG_OBJECT => {'prediction_interval': 0.95}
);-- 異常検知モデルの作成
CREATE OR REPLACE SNOWFLAKE.ML.ANOMALY_DETECTION sensor_anomaly(
INPUT_DATA => SYSTEM$REFERENCE('TABLE', 'sensor_readings'),
TIMESTAMP_COLNAME => 'reading_time',
TARGET_COLNAME => 'temperature',
LABEL_COLNAME => '' -- 教師なし
);
-- 新しいデータに対して異常判定
CALL sensor_anomaly!DETECT_ANOMALIES(
INPUT_DATA => SYSTEM$REFERENCE('TABLE', 'new_sensor_readings'),
TIMESTAMP_COLNAME => 'reading_time',
TARGET_COLNAME => 'temperature'
);Cortex Searchはキーワード検索とセマンティック検索を組み合わせたハイブリッド検索サービスです。CREATE CORTEX SEARCH SERVICEで検索インデックスを作成し、REST APIまたはPythonクライアントからクエリを実行します。RAGパイプラインのリトリーバとして利用するのが主要なユースケースです。
Document AIは請求書・契約書・フォームなどの非構造化ドキュメントから構造化データを抽出する機能です。Snowsight UIでモデルを作成し、抽出する値(フィールド)を定義します。内部的にはOCRとLLMを組み合わせて解析しており、Snowflake内でデータが処理されるためセキュリティ要件を満たしやすい点が特徴です。
-- Document AIモデルの利用例
SELECT
invoice!PREDICT(
GET_PRESIGNED_URL(@docs_stage, 'invoice_001.pdf')
):vendor_name::STRING AS vendor,
invoice!PREDICT(
GET_PRESIGNED_URL(@docs_stage, 'invoice_001.pdf')
):total_amount::NUMBER(10,2) AS amount
FROM DUAL;Cortex AI関連の権限設計は以下のように整理されます。
| 操作 | 必要な権限 | 備考 |
|---|---|---|
| LLM関数の呼び出し | SNOWFLAKE.CORTEX_USERデータベースロール | SNOWFLAKE共有DBへのアクセスが必要 |
| ML Functionsモデル作成 | CREATE SNOWFLAKE.ML.FORECAST等 | スキーマ上のCREATE権限 |
| Cortex Searchサービス作成 | CREATE CORTEX SEARCH SERVICE | スキーマ上のCREATE権限 |
| Document AIモデル作成 | CREATE SNOWFLAKE.ML.DOCUMENT_INTELLIGENCE | Snowsight UIで管理 |
Cortex AI機能はすべてSnowflakeのサービスレイヤーまたはサーバーレスコンピュートで実行されます。ユーザーのウェアハウスリソースを消費しないLLM関数と、ウェアハウスが必要なML Functionsの違いを理解することが試験対策上重要です。
クエリ実行フロー:
[ユーザーSQL]
│
├─ LLM Functions ──→ サーバーレスコンピュート(WH不要)
│ └─ 課金: トークン数ベース
│
├─ ML Functions ───→ ユーザーウェアハウス(WH必要)
│ └─ 課金: クレジット消費
│
└─ Cortex Search ──→ サーバーレスコンピュート(WH不要)
└─ 課金: サーバーレスクレジットCortex AI
問題 1
SnowflakeのCortex AI LLM関数について正しい記述はどれか?
正解: C
Cortex AIのLLM関数(COMPLETE、TRANSLATE、SUMMARIZE等)はすべてSNOWFLAKE.CORTEX名前空間に属し、ユーザーのウェアハウスではなくSnowflakeのサーバーレスコンピュートで実行されます。Aは誤りでウェアハウス不要、Bは誤りでソース言語は省略可(自動検出)、Dは誤りでSENTIMENTは-1〜1の連続値スコアを返します。
Cortex AIのLLM関数を使うとき、Snowflake外にデータが送信されますか?
いいえ。SNOWFLAKE.CORTEX名前空間のLLM関数(COMPLETE、TRANSLATE、SUMMARIZEなど)はすべてSnowflakeのインフラ内で処理されます。データが外部サービスに送信されることはなく、Snowflakeのデータガバナンスとアクセス制御がそのまま適用されます。ただし、モデルの選択によって利用可能なリージョンが異なる点には注意が必要です。
ML Functions(FORECAST / ANOMALY_DETECTION)の利用にML経験は必要ですか?
不要です。ML FunctionsはSQLインターフェースで呼び出すため、モデルのハイパーパラメータ調整やフレームワークの知識は不要です。時系列データを含むテーブルを指定するだけで、Snowflakeが自動的にモデルを訓練・推論します。必要なのはCREATE SNOWFLAKE.ML.*権限とウェアハウスのコンピュートリソースのみです。
Cortex AIで利用可能なLLMモデルはどう選べばよいですか?
用途とコストのバランスで選択します。高精度な推論や複雑なタスクにはLlama 3.1 405BやMistral Largeが適しています。低レイテンシが求められるリアルタイム処理にはLlama 3.1 8BやMistral 7Bが向いています。Snowflake Arcticはテキスト生成のコストパフォーマンスに優れ、エンタープライズ向けのSQL生成やコード生成で強みがあります。SHOW CORTEX SEARCH MODELS で利用可能モデルを確認できます。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Snowflake資格一覧|全11試験(SnowPro)の難易度・費用
Snowflake認定資格(SnowPro)全11試験の一覧・難易度・費用・出題範囲を徹底解説。...
Snowflake試験の難易度ランキング|全11資格を徹底比較
Snowflake(SnowPro)認定全11試験の難易度をランキング形式で比較。学習時間・合格に必要なスキルから分析。...
Snowflake資格の勉強方法|効率的な学習ルートと合格のコツ
Snowflake認定資格(SnowPro)に最短で合格するための勉強方法。公式リソース・学習スケジュールを徹底ガイド。...
SnowPro Core試験完全解説|出題範囲・問題例・合格戦略
SnowPro Core Certification(COF-C03)を徹底解説。出題範囲・100問の試験形式・合格ライ...
SnowPro Platform Associate完全解説|入門試験の攻略
SnowPro Associate: Platform Certification(SOL-C01)を徹底解説。最も簡単...