Snowflake Cortex AISQL (LLM 関数を含む)¶
Snowflake の Cortex AISQL を使用して、 OpenAI、Anthropic、Meta、Mistral AI、 DeepSeek の業界をリードする LLMs を使用して、テキストと画像に対して非構造化分析を実行します。Cortex AISQL は、以下のような場合をサポートします。
メタデータとストリームラインを充実させ、検証を合理化するためのエンティティの抽出
顧客チケット全体のインサイトを集約
自然言語によるコンテンツのフィルターと分類
サービス改善のためのセンチメントとアスペクトに基づく分析
多言語コンテンツの翻訳とローカライズ
アナリティクスと RAG パイプラインのためのドキュメントの解析
すべてのモデルはSnowflakeで完全にホスティングされ、パフォーマンス、スケーラビリティ、セキュリティガバナンスを確保しながら、データを安全に保持します。
利用可能な関数¶
Snowflake Cortexの特徴量は SQL 関数として提供され、 Python でも利用可能です。Cortex AISQL 関数は以下のカテゴリーに分類できます。
AISQL 関数¶
これらのタスク固有の関数は、カスタマイズを必要としない、簡単な要約やクィック翻訳などのルーチンタスクを自動化するために、目的に応じて構築され管理される関数です。
AI_COMPLETE: 選択された LLM を使用して、指定された文字列または画像の補完を生成します。生成的な AI タスクのほとんどにこの関数を使用します。
AI_COMPLETE は COMPLETE (SNOWFLAKE.CORTEX) の更新されたバージョンです。
AI_CLASSIFY: テキストや画像をユーザー定義のカテゴリに分類します。
AI_CLASSIFY はマルチラベルと画像分類をサポートする CLASSIFY_TEXT (SNOWFLAKE.CORTEX) の更新されたバージョンです。
AI_FILTER: イメージやテキストの入力に対してTrueかFalseを返し、
SELECT
,WHERE
,JOIN ... ON
句で結果をフィルターできます。AI_AGG: テキスト列を集約し、ユーザー定義のプロンプトに基づいて複数の行にわたる洞察を返します。この関数はコンテキストウィンドウの制限を受けません。
AI_EMBED:テキストまたは画像入力の埋め込みベクトルを生成します。これは、類似性検索、クラスタリング、分類タスクに使用できます。
AI_EMBED は EMBED_TEXT_1024 (SNOWFLAKE.CORTEX) の更新されたバージョンです。
AI_EXTRACT:入力文字列やファイル(テキスト、画像、ドキュメントなど)から情報を抽出します。複数の言語をサポートしています。
AI_EXTRACT は EXTRACT_ANSWER (SNOWFLAKE.CORTEX) の更新されたバージョンです。
AI_SENTIMENT: テキストから感情スコアを抽出します。
AI_SENTIMENT は SENTIMENT (SNOWFLAKE.CORTEX) の更新されたバージョンです。
AI_SUMMARIZE_AGG: テキスト列を集約し、複数行にわたるサマリーを返します。この関数はコンテキストウィンドウの制限を受けません。
AI_SIMILARITY:2つの入力間の埋め込み類似度を計算します。
AI_TRANSCRIBE:ステージに保存された音声ファイルをテキスト化し、テキスト、タイムスタンプ、話者情報を抽出します。
AI_PARSE_DOCUMENT:(OCR モードを使用して)テキストを抽出します。または、レイアウト情報を含むテキストを(LAYOUT モードを使用して)内部または外部ステージのドキュメントから抽出します。
AI_PARSE_DOCUMENT は PARSE_DOCUMENT (SNOWFLAKE.CORTEX) の更新されたバージョンです。
TRANSLATE (SNOWFLAKE.CORTEX): サポートされている言語間でテキストを翻訳します。
SUMMARIZE (SNOWFLAKE.CORTEX): 指定したテキストの要約を返します。
ヘルパー関数¶
ヘルパー関数は、他の AISQL 関数を実行する際に失敗するケースを減らす目的で構築され、管理される関数です。たとえば、入力プロンプトのトークン数を取得して、呼び出しがモデルの制限を超えないようにします。
TO_FILE:AI_COMPLETE とファイルを受け付けるその他の関数で使用するために、内部ステージまたは外部ステージでファイルへの参照を作成します。
COUNT_TOKENS (SNOWFLAKE.CORTEX): 入力テキストが与えられると、指定されたモデルまたはCortex関数に基づいてトークン数を返します。
PROMPT:AI_COMPLETE およびその他の関数で使用するプロンプトオブジェクトの構築を支援します。
TRY_COMPLETE (SNOWFLAKE.CORTEX): COMPLETE 関数と同様に動作しますが、関数を実行できなかった場合、エラーコードの代わりに NULL を返します。
Cortex Guard¶
Cortex Guardは、AI_COMPLETE(または SNOWFLAKE.CORTEX.COMPLETE)関数のオプションであり、言語モデルからの安全でない可能性のある有害な応答をフィルタリングするように設計されています。Cortex Guardは現在、MetaのLlama Guard 3で構築されています。Cortex Guardは、出力がアプリケーションに返される前に言語モデルの応答を評価することで機能します。Cortex Guardを起動すると、暴力犯罪、憎悪、性的コンテンツ、自傷行為などに関連する可能性のある言語モデルの反応が自動的にフィルタリングされます。構文と例については、 COMPLETE 引数 をご参照ください。
注釈
Cortex Guardの使用には、AI_COMPLETE 関数の料金に加えて、処理された入力トークン の数に基づくコンピューティング料金が発生します。
パフォーマンスの考慮事項¶
Cortex AISQL 関数はスループットのために最適化されています。SQL の大容量テーブルからのテキストなど、多数の入力を処理するには、これらの関数を使用することをお勧めします。バッチ処理は通常、 AISQL 関数に適しています。レイテンシが重要な、よりインタラクティブなユースケースには、 REST API を使用します。これらは、単純推論(Complete API)、埋め込み(Embed API)、エージェントアプリケーション(Agent API) に可用性を持っています。
必要な権限¶
SNOWFLAKE データベースの CORTEX_USER データベースロールには、ユーザーがSnowflake Cortex AI 関数を呼び出すことを許可する権限が含まれています。デフォルトでは、CORTEX_USERロールはPUBLICロールに付与されます。PUBLICロールはすべてのユーザーとロールに自動的に付与されるため、アカウント内のすべてのユーザーがSnowflake Cortex AI関数を使用できるようになります。
すべてのユーザーにこの権限を付与することを回避する場合は、PUBLIC ロールへのアクセス権を取り消して、他のロールへのアクセス権を付与することができます。SNOWFLAKE.CORTEX_USER データベースロールをユーザーに直接付与することはできません。詳細については、SNOWFLAKE データベースロールの使用 をご参照ください。
PUBLIC ロールから CORTEX_USER データベースロールを取り消すには、 ACCOUNTADMIN ロールを使用して以下のコマンドを実行します。
REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_USER
FROM ROLE PUBLIC;
REVOKE IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE
FROM ROLE PUBLIC;
そして、特定のロールに選択的にアクセスを提供することができます。ACCOUNTADMIN ロールを持つユーザーは、ユーザーがCortex AI 関数にアクセスできるように、このロールをカスタムロールに付与できます。以下の例では、 ACCOUNTADMIN ロールを引き受けて、この目的のために作成したアカウントロール some_user
を介して、ユーザー CORTEX_USER に cortex_user_role
データベースロールを付与します。
USE ROLE ACCOUNTADMIN;
CREATE ROLE cortex_user_role;
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE cortex_user_role;
GRANT ROLE cortex_user_role TO USER some_user;
また、特定のユーザーグループが一般的に使用する既存のロールを使用して、Snowflake Cortex AI の機能へのアクセスを付与することもできます。(ユーザーのロール を参照。)例えば、組織内のアナリストが既定のロールとして使用する analyst
ロールを作成した場合、これらのユーザーにSnowflake Cortex AISQL 関数へのアクセスを GRANT ステートメント1つで簡単に付与することができます。
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE analyst;
モデルアクセスの制御¶
Snowflake Cortexは、モデルアクセスを強制するための2つの独立したメカニズムを備えています。
:ref:`アカウントレベルの許可リストパラメーター <label-cortex_llm_allowlist>`(シンプルで広範な制御)
:ref:`ロールベースのアクセス制御(RBAC)<label-cortex_llm_rbac>`(詳細な制御)
アカウントレベルの許可リストを使用して、アカウント全体でモデルアクセスを制御することができます。または RBAC を使用してロールごとにモデルアクセスを制御することもできます。最大限の柔軟性を確保するために、複雑さが増大することを許容できる場合は 両方のメカニズムを併用 することもできます。
アカウントレベルの許可リストパラメーター¶
CORTEX_MODELS_ALLOWLIST パラメーターを使用して、アカウント全体でモデルアクセスを制御できます。サポートされている機能 はこのパラメーターの値を尊重し、許可リストにないモデルの使用を阻止します。
CORTEX_MODELS_ALLOWLIST パラメーターは 'All'
、'None'
またはモデル名のコンマ区切りリストに設定できます。このパラメーターはアカウントレベルでのみ設定可能で、ユーザーレベルやセッションレベルでは設定できません。ALTER ACCOUNT コマンドを使用してパラメーターを設定できるのは、ACCOUNTADMIN ロールのみです。
例:
すべてのモデルへのアクセスを許可するには:
ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'All';
mistral-large2
モデルおよび :code:`llama3.1-70b`モデルへのアクセスを許可するには:ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'mistral-large2,llama3.1-70b';
あらゆるモデルへのアクセスを阻止するには:
ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'None';
次のセクションで説明するように、RBAC を使用して許可リストで指定したもの以外のアクセス権を持つ特定のロールを付与します。
ロールベースのアクセス制御(RBAC)¶
Cortexのモデルはそれら自体がSnowflakeオブジェクトではありませんが、Snowflakeを使用するとCortexモデルを*表す* SNOWFLAKE.MODELS スキーマでモデルオブジェクトを作成できます。RBAC をこれらのオブジェクトに適用することによって、他のSnowflakeオブジェクトと同じ方法でモデルへのアクセスを制御できます。サポートされている機能 は、モデルを指定できるあらゆる SNOWFLAKE.MODELS のオブジェクトの識別子を受け入れます。
Tip
RBAC を排他的に使用するには、CORTEX_MODELS_ALLOWLIST を 'None'
に設定します。
モデルオブジェクトとアプリケーションロールを更新する¶
SNOWFLAKE.MODELS には、Cortexモデルを表すオブジェクトが自動的に入力されません。RBAC を新しいモデルに適用する場合は、最初にモデルの RBAC をセットアップするときにこれらのオブジェクトを作成し、それらを更新する必要があります。
ACCOUNTADMIN として、SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH ストアドプロシージャを実行し、SNOWFLAKE.MODELS スキーマに現在利用可能なCortexモデルを表すオブジェクトのあるスキーマを入力して、モデルに対応するアプリケーションロールを作成します。プロシージャは、すべてのモデルをカバーするロールである CORTEX-MODEL-ROLE-ALL も作成します。
Tip
CORTEX_BASE_MODELS_REFRESH を随時安全に呼び出すことができます。重複したオブジェクトやロールは作成されません。
CALL SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH();
モデルオブジェクトを更新した後、モデルが次のように SNOWFLAKE.MODELS スキーマに表示されることを確認できます。
SHOW MODELS IN SNOWFLAKE.MODELS;
返されるモデルのリストは、以下のようになります。
created_on |
name |
model_type |
database_name |
schema_name |
owner |
---|---|---|---|---|---|
2025-04-22 09:35:38.558 -0700 |
CLAUDE-3-5-SONNET |
CORTEX_BASE |
SNOWFLAKE |
MODELS |
SNOWFLAKE |
2025-04-22 09:36:16.793 -0700 |
LLAMA3.1-405B |
CORTEX_BASE |
SNOWFLAKE |
MODELS |
SNOWFLAKE |
2025-04-22 09:37:18.692 -0700 |
SNOWFLAKE-ARCTIC |
CORTEX_BASE |
SNOWFLAKE |
MODELS |
SNOWFLAKE |
これらのモデルに関連付けられたアプリケーションロールを表示できることを確認するには、次の例のように SHOW APPLICATION ROLES コマンドを使用します。
SHOW APPLICATION ROLES IN APPLICATION SNOWFLAKE;
アプリケーションロールのリストは以下のようになります。
created_on |
name |
owner |
comment |
owner_role_type |
---|---|---|---|---|
2025-04-22 09:35:38.558 -0700 |
CORTEX-MODEL-ROLE-ALL |
SNOWFLAKE |
MODELS |
APPLICATION |
2025-04-22 09:36:16.793 -0700 |
CORTEX-MODEL-ROLE-LLAMA3.1-405B |
SNOWFLAKE |
MODELS |
APPLICATION |
2025-04-22 09:37:18.692 -0700 |
CORTEX-MODEL-ROLE-SNOWFLAKE-ARCTIC |
SNOWFLAKE |
MODELS |
APPLICATION |
ユーザーロールにアプリケーションロールを付与する¶
モデルオブジェクトとアプリケーションロールを作成した後、アカウント内の特定のユーザーロールにアプリケーションロールを付与することができます。
ロールに特定のモデルへのアクセス権を付与するには:
GRANT APPLICATION ROLE SNOWFLAKE."CORTEX-MODEL-ROLE-LLAMA3.1-70B" TO ROLE MY_ROLE;
ロールにすべてのモデル(現在および将来のモデル)へのアクセス権を付与するには:
GRANT APPLICATION ROLE SNOWFLAKE."CORTEX-MODEL-ROLE-ALL" TO ROLE MY_ROLE;
サポートされている特徴を持つモデルオブジェクトを使用する¶
サポートされているCortexの機能を持つモデルオブジェクトを使用するには、SNOWFLAKE.MODELS でモデルオブジェクトの識別子をモデル引数として指定します。現在のデータベースとスキーマのコンテキストに応じて、修飾識別子または部分識別子のいずれかを使用できます。
完全修飾識別子の使用:
SELECT AI_COMPLETE('SNOWFLAKE.MODELS."LLAMA3.1-70B"', 'Hello');
部分識別子の使用:
USE DATABASE SNOWFLAKE; USE SCHEMA MODELS; SELECT AI_COMPLETE('LLAMA3.1-70B', 'Hello');
アカウントレベルの許可リスト付き RBAC の使用¶
いくつかのCortex機能は、モデル名を AI_COMPLETE('model', 'prompt')
などの文字列引数として受け入れます。Cortexはまず、これをスキーマレベルのモデルオブジェクトの識別子として扱います。モデルオブジェクトが見つかった場合、RBAC はユーザーがモデルを使用できるかどうかを判断するために適用されます。モデルオブジェクトが見つからない場合、引数はプレーンなモデル名として解釈され、アカウントレベルの許可リストと照合されます。
次の例は、許可リストと RBAC の併用について示しています。この例では、許可リストは mistral-large2
モデルを許可するように設定されており、ユーザーは RBAC を介して LLAMA3.1-70B
モデルオブジェクトにアクセスできます。
-- set up access
USE SECONDARY ROLES NONE;
USE ROLE ACCOUNTADMIN;
ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'MISTRAL-LARGE2';
CALL SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH();
GRANT APPLICATION ROLE SNOWFLAKE."CORTEX-MODEL-ROLE-LLAMA3.1-70B" TO ROLE PUBLIC;
-- test access
USE ROLE PUBLIC;
-- this succeeds because mistral-large2 is in the allowlist
SELECT AI_COMPLETE('MISTRAL-LARGE2', 'Hello');
-- this succeeds because the role has access to the model object
SELECT AI_COMPLETE('SNOWFLAKE.MODELS."LLAMA3.1-70B"', 'Hello');
-- this fails because the first argument is
-- neither an identifier for an accessible model object
-- nor is it a model name in the allowlist
SELECT AI_COMPLETE('SNOWFLAKE-ARCTIC', 'Hello');
一般的な落とし穴¶
モデルへのアクセス(許可リストまたは RBAC による)は、常に使用できるものではありません。クロスリージョン、廃止、またはその他の可用性の制約が引き続き適用される可能性があります。これらの制限により、モデルアクセスエラーに類似したエラーメッセージが表示される可能性があります。
モデルのアクセス制御は、モデルの使用のみを管理し、独自にアクセスが制御されている可能性がある機能自体の使用は管理対象外です。たとえば、
AI_COMPLETE
へのアクセスはCORTEX_USER
データベースロールによって管理されます。詳細については、 必要な権限 をご参照ください。すべての機能がモデルアクセス制御をサポートしているわけではありません。サポートされている機能 テーブルを参照して、特定の機能がどのアクセス制御メソッドをサポートするかを確認してください。
セカンダリロールによって、権限が不明瞭になる可能性があります。たとえば、ユーザーがセカンダリロールとして ACCOUNTADMIN を保有している場合は、すべてのモデルオブジェクトにアクセスできるように見えます。権限を確認するときに、セカンダリロールを一時的に無効にします。
RBAC ではモデルオブジェクト識別子を使用する必要があることと、これらは引用符で囲まれた識別子であるため、大文字と小文字が区別されることに注意してください。詳細については、 QUOTED_IDENTIFIERS_IGNORE_CASE をご参照ください。
サポートされている機能¶
モデルのアクセス制御は、以下の機能でサポートされています。
機能 |
アカウントレベルの許可リスト |
ロールベースのアクセス制御 |
メモ |
---|---|---|---|
✔ |
✔ |
||
✔ |
この関数を実行しているモデルが許可されていない場合、エラーメッセージには許可リストを変更する方法に関する情報が含まれます。 |
||
✔ |
この関数を実行しているモデルが許可されていない場合、エラーメッセージには許可リストを変更する方法に関する情報が含まれます。 |
||
✔ |
この関数を実行しているモデルが許可されていない場合、エラーメッセージには許可リストを変更する方法に関する情報が含まれます。 |
||
✔ |
この関数を実行しているモデルが許可されていない場合、エラーメッセージには許可リストを変更する方法に関する情報が含まれます。 |
||
✔ |
✔ |
||
✔ |
✔ |
||
✔ |
✔ |
||
✔ |
✔ |
リージョンの可用性¶
Snowflake Cortex AI 関数は、以下のリージョンでネイティブに利用可能です。特定の関数にリージョンがリストされていない場合は、クロスリージョン推論 を使用します。
注釈
TRY_COMPLETE 関数は COMPLETE と同じ地域で利用できます。
COUNT_TOKENS 関数は任意のモデルの全リージョンで利用可能ですが、モデル自体は以下のテーブルで指定されたリージョンでのみ利用可能です。
次のモデルは、クロスリージョン推論 によりあらゆるリージョンで利用できます。
関数
(モデル)
|
クロスクラウド(任意のリージョン)
|
AWS US
(リージョン横断)
|
AWS EU
(リージョン横断)
|
AWS に APJ
(リージョン横断)
|
Azure US
(リージョン横断)
|
---|---|---|---|---|---|
AI_COMPLETE
(
claude-4-sonnet ) |
✔ |
✔ |
|||
AI_COMPLETE
(
claude-4-opus ) |
プレビュー中 |
プレビュー中 |
|||
AI_COMPLETE
(
claude-3-7-sonnet ) |
✔ |
✔ |
✔ |
||
AI_COMPLETE
(
claude-3-5-sonnet ) |
✔ |
✔ |
|||
AI_COMPLETE
(
llama4-maverick ) |
✔ |
✔ |
|||
AI_COMPLETE
(
llama4-scout ) |
✔ |
✔ |
|||
AI_COMPLETE
(
llama3.2-1b ) |
✔ |
✔ |
|||
AI_COMPLETE
(
llama3.2-3b ) |
✔ |
✔ |
|||
AI_COMPLETE
(
llama3.1-8b ) |
✔ |
✔ |
✔ |
✔ |
✔ |
AI_COMPLETE
(
llama3.1-70b ) |
✔ |
✔ |
✔ |
✔ |
✔ |
AI_COMPLETE
(
llama3.3-70b ) |
✔ |
✔ |
|||
AI_COMPLETE
(
snowflake-llama-3.3-70b ) |
✔ |
✔ |
|||
AI_COMPLETE
(
llama3.1-405b ) |
✔ |
✔ |
✔ |
||
AI_COMPLETE
(
openai-gpt-4.1 ) |
プレビュー中 |
プレビュー中 |
|||
AI_COMPLETE
(
openai-o4-mini ) |
プレビュー中 |
プレビュー中 |
|||
AI_COMPLETE
(
openai-gpt-5 ) |
プレビュー中 |
プレビュー中 |
|||
AI_COMPLETE
(
openai-gpt-5-mini ) |
プレビュー中 |
プレビュー中 |
|||
AI_COMPLETE
(
openai-gpt-5-nano ) |
プレビュー中 |
プレビュー中 |
|||
AI_COMPLETE
(
openai-gpt-5-chat ) |
プレビュー中 |
||||
AI_COMPLETE
(
openai-gpt-oss-120b ) |
プレビュー中 |
||||
AI_COMPLETE
(
openai-gpt-oss-20b ) |
プレビュー中 |
||||
AI_COMPLETE
(
snowflake-llama-3.1-405b ) |
✔ |
✔ |
|||
AI_COMPLETE
(
snowflake-arctic ) |
✔ |
✔ |
✔ |
||
AI_COMPLETE
(
deepseek-r1 ) |
✔ |
✔ |
|||
AI_COMPLETE
(
reka-core ) |
✔ |
✔ |
|||
AI_COMPLETE
(
reka-flash ) |
✔ |
✔ |
✔ |
||
AI_COMPLETE
(
mistral-large2 ) |
✔ |
✔ |
✔ |
✔ |
|
AI_COMPLETE
(
mixtral-8x7b ) |
✔ |
✔ |
✔ |
✔ |
✔ |
AI_COMPLETE
(
mistral-7b ) |
✔ |
✔ |
✔ |
✔ |
✔ |
AI_COMPLETE
(
jamba-instruct ) |
✔ |
✔ |
✔ |
✔ |
✔ |
AI_COMPLETE
(
jamba-1.5-mini ) |
✔ |
✔ |
✔ |
✔ |
✔ |
AI_COMPLETE
(
jamba-1.5-large ) |
✔ |
✔ |
✔ |
||
AI_COMPLETE
(
gemma-7b ) |
✔ |
✔ |
✔ |
✔ |
|
EMBED_TEXT_768
(
e5-base-v2 ) |
✔ |
✔ |
✔ |
✔ |
✔ |
EMBED_TEXT_768
(
snowflake-arctic-embed-m ) |
✔ |
✔ |
✔ |
✔ |
✔ |
EMBED_TEXT_768
(
snowflake-arctic-embed-m-v1.5 ) |
✔ |
✔ |
✔ |
✔ |
✔ |
EMBED_TEXT_1024
(
snowflake-arctic-embed-l-v2.0 ) |
✔ |
✔ |
✔ |
✔ |
✔ |
EMBED_TEXT_1024
(
snowflake-arctic-embed-l-v2.0-8k ) |
✔ |
✔ |
✔ |
✔ |
✔ |
EMBED_TEXT_1024
(
nv-embed-qa-4 ) |
✔ |
✔ |
|||
EMBED_TEXT_1024
(
multilingual-e5-large ) |
✔ |
✔ |
✔ |
✔ |
✔ |
EMBED_TEXT_1024
(
voyage-multilingual-2 ) |
✔ |
✔ |
✔ |
✔ |
✔ |
AI_CLASSIFY TEXT
|
✔ |
✔ |
✔ |
✔ |
✔ |
AI_CLASSIFY IMAGE
|
✔ |
||||
AI_EXTRACT
|
✔ |
✔ |
✔ |
✔ |
✔ |
AI_FILTER TEXT
|
✔ |
✔ |
✔ |
✔ |
✔ |
AI_FILTER IMAGE
|
✔ |
||||
AI_AGG
|
✔ |
✔ |
✔ |
✔ |
✔ |
AI_SENTIMENT
|
✔ |
✔ |
✔ |
✔ |
✔ |
AI_SIMILARITY TEXT
|
✔ |
✔ |
✔ |
✔ |
✔ |
AI_SIMILARITY IMAGE
|
✔ |
✔ |
✔ |
||
AI_SUMMARIZE_AGG
|
✔ |
✔ |
✔ |
✔ |
✔ |
EXTRACT_ANSWER
|
✔ |
✔ |
✔ |
✔ |
✔ |
SENTIMENT
|
✔ |
✔ |
✔ |
✔ |
✔ |
ENTITY_SENTIMENT
|
✔ |
✔ |
✔ |
✔ |
✔ |
SUMMARIZE
|
✔ |
✔ |
✔ |
✔ |
✔ |
TRANSLATE
|
✔ |
✔ |
✔ |
✔ |
✔ |
以下の関数とモデルは、北米リージョンでネイティブに利用できます。
関数
(モデル)
|
AWS US西部2
(オレゴン)
|
AWS US東部1
(N.バージニア)
|
AWSUS 東部
(商用Gov - N.バージニア北部)
|
Azure東部 US 2
(バージニア)
|
Azure東部 US
(バージニア)
|
Azure西部 US
(ワシントン)
|
Azure西部 US
(アリゾナ)
|
Azure北部中央 US
(イリノイ)
|
Azure南中央部 US
(テキサス)
|
---|---|---|---|---|---|---|---|---|---|
AI_COMPLETE
(
claude-4-sonnet ) |
✔ |
||||||||
AI_COMPLETE
(
claude-4-opus ) |
プレビュー中 |
||||||||
AI_COMPLETE
(
claude-3-7-sonnet ) |
✔ |
||||||||
AI_COMPLETE
(
claude-3-5-sonnet ) |
✔ |
✔ |
|||||||
AI_COMPLETE
(
llama4-maverick ) |
✔ |
||||||||
AI_COMPLETE
(
llama4-scout ) |
✔ |
||||||||
AI_COMPLETE
(
llama3.2-1b ) |
✔ |
||||||||
AI_COMPLETE
(
llama3.2-3b ) |
✔ |
||||||||
AI_COMPLETE
(
llama3.1-8b ) |
✔ |
✔ |
✔ |
✔ |
|||||
AI_COMPLETE
(
llama3.1-70b ) |
✔ |
✔ |
✔ |
✔ |
|||||
AI_COMPLETE
(
llama3.3-70b ) |
✔ |
||||||||
AI_COMPLETE
(
snowflake-llama-3.3-70b ) |
✔ |
||||||||
AI_COMPLETE
(
llama3.1-405b ) |
✔ |
✔ |
✔ |
✔ |
|||||
AI_COMPLETE
(
openai-gpt-4.1 ) |
プレビュー中 |
||||||||
AI_COMPLETE
(
openai-o4-mini ) |
プレビュー中 |
||||||||
AI_COMPLETE
(
openai-gpt-oss-120b ) |
プレビュー中 |
||||||||
AI_COMPLETE
(
openai-gpt-oss-20b ) |
プレビュー中 |
プレビュー中 |
|||||||
AI_COMPLETE
(
snowflake-llama-3.1-405b ) |
✔ |
||||||||
AI_COMPLETE
(
snowflake-arctic ) |
✔ |
✔ |
|||||||
AI_COMPLETE
(
deepseek-r1 ) |
✔ |
||||||||
AI_COMPLETE
(
reka-core ) |
✔ |
✔ |
|||||||
AI_COMPLETE
(
reka-flash ) |
✔ |
✔ |
✔ |
||||||
AI_COMPLETE
(
mistral-large2 ) |
✔ |
✔ |
✔ |
✔ |
|||||
AI_COMPLETE
(
mixtral-8x7b ) |
✔ |
✔ |
✔ |
✔ |
|||||
AI_COMPLETE
(
mistral-7b ) |
✔ |
✔ |
✔ |
✔ |
|||||
AI_COMPLETE
(
jamba-instruct ) |
✔ |
||||||||
AI_COMPLETE
(
jamba-1.5-mini ) |
✔ |
||||||||
AI_COMPLETE
(
jamba-1.5-large ) |
✔ |
||||||||
AI_COMPLETE
(
gemma-7b ) |
✔ |
✔ |
✔ |
✔ |
|||||
EMBED_TEXT_768
(
e5-base-v2 ) |
✔ |
✔ |
✔ |
✔ |
|||||
EMBED_TEXT_768
(
snowflake-arctic-embed-m ) |
✔ |
✔ |
✔ |
✔ |
|||||
EMBED_TEXT_768
(
snowflake-arctic-embed-m-v1.5 ) |
✔ |
✔ |
✔ |
✔ |
|||||
EMBED_TEXT_1024
(
snowflake-arctic-embed-l-v2.0 ) |
✔ |
✔ |
✔ |
✔ |
|||||
EMBED_TEXT_1024
(
snowflake-arctic-embed-l-v2.0-8k ) |
✔ |
✔ |
✔ |
✔ |
|||||
EMBED_TEXT_1024
(
nv-embed-qa-4 ) |
✔ |
||||||||
EMBED_TEXT_1024
(
multilingual-e5-large ) |
✔ |
✔ |
✔ |
✔ |
|||||
EMBED_TEXT_1024
(
voyage-multilingual-2 ) |
✔ |
✔ |
✔ |
✔ |
|||||
AI_CLASSIFY TEXT
|
✔ |
✔ |
✔ |
||||||
AI_CLASSIFY IMAGE
|
✔ |
✔ |
|||||||
AI_EXTRACT
|
✔ |
✔ |
✔ |
✔ |
✔ |
||||
AI_FILTER TEXT
|
✔ |
✔ |
✔ |
||||||
AI_FILTER IMAGE
|
✔ |
✔ |
|||||||
AI_AGG
|
✔ |
✔ |
✔ |
||||||
AI_SIMILARITY TEXT
|
✔ |
✔ |
✔ |
||||||
AI_SIMILARITY IMAGE
|
✔ |
✔ |
|||||||
AI_SUMMARIZE_AGG
|
✔ |
✔ |
✔ |
||||||
AI_TRANSCRIBE
|
|
|
|
||||||
EXTRACT_ANSWER |
✔ |
✔ |
✔ |
✔ |
|||||
SENTIMENT |
✔ |
✔ |
✔ |
✔ |
|||||
ENTITY_SENTIMENT |
✔ |
✔ |
✔ |
✔ |
|||||
SUMMARIZE |
✔ |
✔ |
✔ |
✔ |
|||||
TRANSLATE |
✔ |
✔ |
✔ |
✔ |
以下の関数とモデルは、ヨーロッパのリージョンでネイティブに利用できます。
関数
(モデル)
|
AWSヨーロッパ中部1
(フランクフルト)
|
AWS ヨーロッパ西部1
(アイルランド)
|
Azure西ヨーロッパ
(オランダ)
|
---|---|---|---|
AI_COMPLETE
(
claude-4-sonnet ) |
|||
AI_COMPLETE
(
claude-4-opus ) |
|||
AI_COMPLETE
(
claude-3-7-sonnet ) |
|||
AI_COMPLETE
(
claude-3-5-sonnet ) |
|||
AI_COMPLETE
(
llama4-maverick ) |
|||
AI_COMPLETE
(
llama4-scout ) |
|||
AI_COMPLETE
(
llama3.2-1b ) |
|||
AI_COMPLETE
(
llama3.2-3b ) |
|||
AI_COMPLETE
(
llama3.1-8b ) |
✔ |
✔ |
✔ |
AI_COMPLETE
(
llama3.1-70b ) |
✔ |
✔ |
✔ |
AI_COMPLETE
(
llama3.3-70b ) |
|||
AI_COMPLETE
(
snowflake-llama-3.3-70b ) |
|||
AI_COMPLETE
(
llama3.1-405b ) |
|||
AI_COMPLETE
(
openai-gpt-4.1 ) |
|||
AI_COMPLETE
(
openai-o4-mini ) |
|||
AI_COMPLETE
(
openai-gpt-oss-120b ) |
|||
AI_COMPLETE
(
openai-gpt-oss-20b ) |
|||
AI_COMPLETE
(
snowflake-llama-3.1-405b ) |
|||
AI_COMPLETE
(
snowflake-arctic ) |
|||
AI_COMPLETE
(
deepseek-r1 ) |
|||
AI_COMPLETE
(
reka-core ) |
|||
AI_COMPLETE
(
reka-flash ) |
|||
AI_COMPLETE
(
mistral-large2 ) |
✔ |
✔ |
✔ |
AI_COMPLETE
(
mixtral-8x7b ) |
✔ |
✔ |
✔ |
AI_COMPLETE
(
mistral-7b ) |
✔ |
✔ |
✔ |
AI_COMPLETE
(
jamba-instruct ) |
✔ |
||
AI_COMPLETE
(
jamba-1.5-mini ) |
✔ |
||
AI_COMPLETE
(
jamba-1.5-large ) |
|||
AI_COMPLETE
(
gemma-7b ) |
✔ |
✔ |
|
EMBED_TEXT_768
(
e5-base-v2 ) |
✔ |
✔ |
|
EMBED_TEXT_768
(
snowflake-arctic-embed-m ) |
✔ |
✔ |
✔ |
EMBED_TEXT_768
(
snowflake-arctic-embed-m-v1.5 ) |
✔ |
✔ |
✔ |
EMBED_TEXT_1024
(
snowflake-arctic-embed-l-v2.0 ) |
✔ |
✔ |
✔ |
EMBED_TEXT_1024
(
snowflake-arctic-embed-l-v2.0-8k ) |
✔ |
✔ |
✔ |
EMBED_TEXT_1024
(
nv-embed-qa-4 ) |
|||
EMBED_TEXT_1024
(
multilingual-e5-large ) |
✔ |
✔ |
✔ |
EMBED_TEXT_1024
(
voyage-multilingual-2 ) |
✔ |
✔ |
✔ |
AI_CLASSIFY TEXT
|
✔ |
✔ |
✔ |
AI_CLASSIFY IMAGE
|
✔ |
||
AI_EXTRACT
|
✔ |
✔ |
✔ |
AI_FILTER TEXT
|
✔ |
✔ |
✔ |
AI_FILTER IMAGE
|
✔ |
||
AI_AGG
|
✔ |
✔ |
✔ |
AI_SIMILARITY TEXT
|
✔ |
✔ |
✔ |
AI_SIMILARITY IMAGE
|
✔ |
||
AI_SUMMARIZE_AGG
|
✔ |
✔ |
✔ |
AI_TRANSCRIBE
|
|
||
EXTRACT_ANSWER |
✔ |
✔ |
✔ |
SENTIMENT |
✔ |
✔ |
✔ |
ENTITY_SENTIMENT |
✔ |
✔ |
|
SUMMARIZE |
✔ |
✔ |
✔ |
TRANSLATE |
✔ |
✔ |
✔ |
以下の関数とモデルは、アジア太平洋リージョンでネイティブに利用できます。
関数
(モデル)
|
AWS AP 南東部2
(シドニー)
|
AWS AP 北東部1
(東京)
|
---|---|---|
AI_COMPLETE
(
claude-4-sonnet ) |
||
AI_COMPLETE
(
claude-4-opus ) |
||
AI_COMPLETE
(
claude-3-7-sonnet ) |
||
AI_COMPLETE
(
claude-3-5-sonnet ) |
✔ |
|
AI_COMPLETE
(
llama4-maverick ) |
||
AI_COMPLETE
(
llama4-scout ) |
||
AI_COMPLETE
(
llama3.2-1b ) |
||
AI_COMPLETE
(
llama3.2-3b ) |
||
AI_COMPLETE
(
llama3.1-8b ) |
✔ |
✔ |
AI_COMPLETE
(
llama3.1-70b ) |
✔ |
✔ |
AI_COMPLETE
(
llama3.3-70b ) |
||
AI_COMPLETE
(
snowflake-llama-3.3-70b ) |
||
AI_COMPLETE
(
llama3.1-405b ) |
||
AI_COMPLETE
(
openai-gpt-4.1 ) |
||
AI_COMPLETE
(
openai-o4-mini ) |
||
AI_COMPLETE
(
snowflake-llama-3.1-405b ) |
||
AI_COMPLETE
(
snowflake-arctic ) |
||
AI_COMPLETE
(
deepseek-r1 ) |
||
AI_COMPLETE
(
reka-core ) |
||
AI_COMPLETE
(
reka-flash ) |
✔ |
|
AI_COMPLETE
(
mistral-large2 ) |
✔ |
✔ |
AI_COMPLETE
(
mixtral-8x7b ) |
✔ |
✔ |
AI_COMPLETE
(
mistral-7b ) |
✔ |
✔ |
AI_COMPLETE
(
jamba-instruct ) |
✔ |
|
AI_COMPLETE
(
jamba-1.5-mini ) |
✔ |
|
AI_COMPLETE
(
jamba-1.5-large ) |
||
AI_COMPLETE
(
gemma-7b ) |
||
EMBED_TEXT_768
(
e5-base-v2 ) |
✔ |
✔ |
EMBED_TEXT_768
(
snowflake-arctic-embed-m ) |
✔ |
✔ |
EMBED_TEXT_768
(
snowflake-arctic-embed-m-v1.5 ) |
✔ |
✔ |
EMBED_TEXT_1024
(
snowflake-arctic-embed-l-v2.0 ) |
✔ |
✔ |
EMBED_TEXT_1024
(
snowflake-arctic-embed-l-v2.0-8k ) |
✔ |
✔ |
EMBED_TEXT_1024
(
nv-embed-qa-4 ) |
||
EMBED_TEXT_1024
(
multilingual-e5-large ) |
✔ |
✔ |
EMBED_TEXT_1024
(
voyage-multilingual-2 ) |
✔ |
✔ |
AI_EXTRACT
|
✔ |
✔ |
AI_CLASSIFY TEXT
|
✔ |
✔ |
AI_CLASSIFY IMAGE
|
||
AI_FILTER TEXT
|
✔ |
✔ |
AI_FILTER IMAGE
|
||
AI_AGG
|
✔ |
✔ |
AI_SIMILARITY TEXT
|
✔ |
✔ |
AI_SIMILARITY IMAGE
|
||
AI_SUMMARIZE_AGG
|
✔ |
✔ |
AI_TRANSCRIBE
|
||
EXTRACT_ANSWER |
✔ |
✔ |
SENTIMENT |
✔ |
✔ |
ENTITY_SENTIMENT |
✔ |
|
SUMMARIZE |
✔ |
✔ |
TRANSLATE |
✔ |
✔ |
Snowflake Cortex AI 関数は、現在以下のリージョンで利用可能です。
関数
(モデル)
|
AWS US 東部2
(オハイオ)
|
AWS CA 中央部1
(中央部)
|
AWS SA東部1
(サンパウロ)
|
AWS ヨーロッパ西部2
(ロンドン)
|
AWSヨーロッパ中部1
(フランクフルト)
|
AWS ヨーロッパ北部1
(ストックホルム)
|
AWS AP 北東部1
(東京)
|
AWS AP 南部1
(ムンバイ)
|
AWS AP 南東部2
(シドニー)
|
AWS AP 南東部3
(ジャカルタ)
|
Azure南中央部 US
(テキサス)
|
Azure西部 US 2
(ワシントン)
|
Azure UK 南部
(ロンドン)
|
Azure北部ヨーロッパ
(アイルランド)
|
Azureスイス北部
(チューリッヒ)
|
Azure中部インド(プネー)
(プネー)
|
Azure日本東日本
(東京、埼玉)
|
Azure東南アジア
(シンガポール)
|
Azureオーストラリア東部
(ニューサウスウェールズ)
|
GCP ヨーロッパ西部2
(ロンドン)
|
GCP ヨーロッパ西部4
(オランダ)
|
GCP US 中央部1
(アイオワ)
|
GCP US 東部4
(N.バージニア)
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
EMBED_TEXT_768
(
snowflake-arctic-embed-m-v1.5 ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
EMBED_TEXT_768
(
snowflake-arctic-embed-m ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
EMBED_TEXT_1024
(
multilingual-e5-large ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
AI_EXTRACT
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
クロスリージョンのみ |
クロスリージョンのみ |
クロスリージョンのみ |
クロスリージョンのみ |
次の表は、レガシーモデルの一覧です。まだ始めたばかりである場合は、前の表のモデルから始めましょう。
関数
(モデル)
|
AWS US西部2
(オレゴン)
|
AWS US東部1
(N.バージニア)
|
AWSヨーロッパ中部1
(フランクフルト)
|
AWS ヨーロッパ西部1
(アイルランド)
|
AWS AP 南東部2
(シドニー)
|
AWS AP 北東部1
(東京)
|
Azure東部 US 2
(バージニア)
|
Azure西ヨーロッパ
(オランダ)
|
---|---|---|---|---|---|---|---|---|
AI_COMPLETE
(
llama2-70b-chat ) |
✔ |
✔ |
✔ |
✔ |
✔ |
|||
AI_COMPLETE
(
llama3-8b ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
||
AI_COMPLETE
(
llama3-70b ) |
✔ |
✔ |
✔ |
✔ |
✔ |
|||
AI_COMPLETE
(
mistral-large ) |
✔ |
✔ |
✔ |
✔ |
✔ |
コストの考慮事項¶
Snowflake Cortex AI 関数は、処理されたトークンの数に基づいてコンピュートコストが発生します。100万トークンあたりのクレジット単位での各コストについては、 Snowflakeサービス利用テーブル をご参照ください。
トークンは、Snowflake Cortex AI 関数で処理されるテキストの最小単位です。テキストに関する業界の規則では、トークンはおよそ4文字に相当しますが、メディアファイルのトークンに相当するなど、モデルによって異なる可能性があります。
応答で新しいテキストを生成する関数(AI_COMPLETE、AI_CLASSIFY、AI_FILTER、AI_AGG、AI_SUMMARIZE、TRANSLATEおよび SNOWFLAKE.CORTEX スキーマ内のそれらの以前のバージョン)の場合は、入力と出力の両方のトークンが請求対象となります。
Cortex Guardでは、入力トークンのみがカウントされます。入力トークンの数は、AI_COMPLETE(または COMPLETE)からの出力のトークン数に基づいています。AI_COMPLETE(または COMPLETE)関数のコストに加えて、Cortex Guardの使用に対して課金されます。
AI_SIMILARITY 関数と EMBED_* 関数では、入力トークンのみがカウントされます。
EXTRACT_ANSWER の場合、請求可能トークン数は
from_text
フィールドとquestion
フィールドのトークン数の合計です。AI_CLASSIFY、AI_FILTER、AI_AGG、AI_SENTIMENT、AI_SUMMARIZE_AGG、SUMMARIZE、TRANSLATE、EXTRACT_ANSWER、ENTITY_SENTIMENT および SENTIMENT は、応答を生成するために入力テキストにプロンプトを追加します。その結果、入力トークン数は、指定したテキストに含まれるトークン数よりも多くなります。
AI_CLASSIFY ラベル、説明、例は、 AI_CLASSIFY の呼び出しごとに 1 回だけでなく、処理される記録ごとに入力トークンとしてカウントされます。
AI_PARSE_DOCUMENT(または SNOWFLAKE.CORTEX.PARSE_DOCUMENT)の場合、請求は処理されたドキュメントのページ数に基づいて行われます。
TRY_COMPLETE(SNOWFLAKE.CORTEX)については、エラー処理にコストは発生しません。TRY_COMPLETE(SNOWFLAKE.CORTEX)関数が NULL を返す場合、コストは発生しません。
AI_EXTRACT については、入力と出力の両方のトークンがカウントされます。
responseFormat
引数は入力トークンとしてカウントされます。ページで構成されるドキュメント形式の場合、処理されたページ数は入力トークンとしてカウントされます。ドキュメントの各ページは970トークンとしてカウントされます。COUNT_TOKENS(SNOWFLAKE.CORTEX)については、関数を実行するためのコンピューティングコストのみが発生します。トークンに基づく追加コストは発生しません。
画像や音声などのメディアファイルをサポートするモデルの場合:
音声ファイルについては、1秒の音声あたり50トークンが課金されます。
画像のトークン同等性は、使用されたモデルによって決定されます。詳細については、AI 画像コストに関する考慮事項 をご参照ください。
Snowflake は、Snowflake Cortex AISQL 関数を呼び出すクエリを、小規模なウェアハウス(MEDIUM 以下)で実行することを推奨しています。ウェアハウスが大きくなってもパフォーマンスは向上しません。ウェアハウスをアクティブに保つことに関連するコストは、Snowflake Cortex LLM 関数を呼び出すクエリを実行するときにも適用されます。コンピューティングコストに関する一般情報については、 コンピューティングコストについて をご参照ください。
AIサービスのコストを追跡する¶
お客様のアカウントで LLM 関数を含む AI サービスに使用されたクレジットを追跡するには、 METERING_HISTORY ビュー を使用します。
SELECT *
FROM SNOWFLAKE.ACCOUNT_USAGE.METERING_DAILY_HISTORY
WHERE SERVICE_TYPE='AI_SERVICES';
AISQL 関数のクレジット消費を追跡する¶
各 AISQL 関数呼び出しのクレジットとトークンの消費量を表示するには、 CORTEX_FUNCTIONS_USAGE_HISTORY ビュー を使用します。
SELECT *
FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_USAGE_HISTORY;
Snowflakeアカウント内で各クエリのクレジットとトークンの消費量を表示することもできます。各クエリのクレジットとトークンの消費量を表示することで、最もクレジットとトークンを消費しているクエリを特定することができます。
以下のクエリ例では、 CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY ビュー を使用して、アカウント内のすべてのクエリについてクレジットとトークンの消費量を表示しています。
SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY;
同じビューを使って、特定のクエリのクレジットとトークンの消費量を確認することもできます。
SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY
WHERE query_id='<query-id>';
注釈
REST API で行われたリクエストの使用状況の詳細情報を得ることはできません。
クエリの使用履歴は、クエリで使用されたモデルごとにグループ分けされています。例えば、次を実行したとします。
SELECT AI_COMPLETE('mistral-7b', 'Is a hot dog a sandwich'), AI_COMPLETE('mistral-large', 'Is a hot dog a sandwich');
クエリの使用履歴には、 mistral-7b
と mistral-large
の2行が表示されます。
使用量のクォータ¶
有効な支払い方法のないオンデマンドSnowflakeアカウント(トライアルアカウントなど)は、Snowflake Cortex AISQL の使用量が1日あたり10クレジットに制限されます。この制限を解除するには、トライアルアカウントを有料アカウントに変更 してください。
コストの管理¶
このプレビュー期間中、SnowflakeではSnowflake Cortex MEDIUM関数を呼び出す際に、AISQL以下のウェアハウスサイズを使用することを推奨します。必要以上に大規模なウェアハウスを使用してもパフォーマンスは向上しないにもかかわらず、不必要なコストが発生する可能性があります。Cortex AISQL 関数が進化し続けるにつれて、この推奨事項は将来変更される可能性があります。
モデルの制限¶
Snowflake Cortexで使用されるモデルには、以下の表に示すようにサイズに制限があります。サイズはトークンで表示されています。トークンは一般的に約4文字のテキストを表すので、制限に対応する単語数はトークンの数よりも少なくなります。制限値を超える入力はエラーになります。
モデルが出力できる最大サイズは、以下のように制限されています:
モデルの出力トークン制限。
モデルが入力トークンを消費した後のコンテキストウィンドウの利用可能スペース。
例えば、 claude-3-5-sonnet
には、20万トークンのコンテキストウィンドウがあります。入力に100,000トークンを使用した場合、モデルは最大8,192トークンを生成できます。しかし、195,000個のトークンが入力として使用された場合、モデルは合計200,000個のトークンのうち、5,000個までしか生成できません。
重要
AWS AP 南東2(シドニー)リージョン:
llama3-8b
とmistral-7b
のコンテキストウィンドウは 4,096 トークンです。llama3.1-8b
のコンテキストウィンドウは 16,384 トークンです。SUMMARIZE 関数からのSnowflake管理モデルのコンテキストウィンドウは4,096トークンです。
AWS ヨーロッパ西1(アイルランド)リージョン:
llama3.1-8b
のコンテキストウィンドウは 16,384 トークンです。mistral-7b
のコンテキストウィンドウは 4,096 トークンです。
関数 |
モデル |
コンテキストウィンドウ(トークン) |
最大出力 AISQL 関数(トークン) |
---|---|---|---|
COMPLETE |
|
128,000 |
8,192 |
|
128,000 |
8,192 |
|
|
4,096 |
8,192 |
|
|
32,768 |
8,192 |
|
|
200,000 |
8,192 |
|
|
200,000 |
32,000 |
|
|
200,000 |
32,000 |
|
|
200,000 |
8,192 |
|
|
32,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
128,000 |
32,000 |
|
|
200,000 |
32,000 |
|
|
272,000 |
8,192 |
|
|
272,000 |
8,192 |
|
|
272,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
100,000 |
8,192 |
|
|
32,000 |
8,192 |
|
|
256,000 |
8,192 |
|
|
256,000 |
8,192 |
|
|
256,000 |
8,192 |
|
|
32,000 |
8,192 |
|
|
4,096 |
8,192 |
|
|
8,000 |
8,192 |
|
|
8,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
8,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
128,000 |
8,192 |
|
|
32,000 |
8,192 |
|
|
8,000 |
8,192 |
|
EMBED_TEXT_768 |
|
512 |
なし |
|
512 |
なし |
|
EMBED_TEXT_1024 |
|
512 |
なし |
|
512 |
なし |
|
|
32,000 |
なし |
|
AI_EXTRACT |
|
128,000 |
51,200 |
AI_FILTER |
Snowflake管理モデル |
128,000 |
なし |
AI_CLASSIFY |
Snowflake管理モデル |
128,000 |
なし |
AI_AGG |
Snowflake管理モデル |
128,000/行
複数行に渡って使用可能
|
8,192 |
AI_SENTIMENT |
Snowflake管理モデル |
2,048 |
なし |
AI_SUMMARIZE_AGG |
Snowflake管理モデル |
128,000/行
複数行に渡って使用可能
|
8,192 |
ENTITY_SENTIMENT |
Snowflake管理モデル |
2,048 |
なし |
EXTRACT_ANSWER |
Snowflake管理モデル |
2,048のテキスト
64の質問
|
なし |
SENTIMENT |
Snowflake管理モデル |
512 |
なし |
SUMMARIZE |
Snowflake管理モデル |
32,000 |
4,096 |
TRANSLATE |
Snowflake管理モデル |
4,096 |
なし |
モデルの選択¶
Snowflake Cortex AI_COMPLETE 関数は、能力、遅延、コストの異なる複数のモデルをサポートしています。 これらのモデルは、一般的な顧客のユースケースに合わせて慎重に選択されています。クレジットあたりのパフォーマンス で最高の状態を達成するには、コンテンツのサイズとタスクの複雑さに適したモデルを選択します。以下は、利用可能なモデルの簡単な概要です。
大規模モデル¶
どこから始めたらよいかわからない場合は、まず最も高性能なモデルを試して、他のモデルを評価するためのベースラインを確立してください。claude-3-7-sonnet
、 reka-core
、および mistral-large2
は、Snowflake Cortexが提供する最も高性能なモデルで、最先端のモデルで何ができるかを知ることができます。
Claude 3-7 Sonnet
は、一般的な推論とマルチモーダル機能のリーダーです。異なるドメインやモダリティにまたがる推論を必要とするタスクにおいて、先行製品を凌駕します。構造化クエリでも非構造化クエリでも、その大容量出力を使ってより多くの情報を得ることができます。推論機能と大容量ウィンドウにより、Agenticなワークフローに適しています。deepseek-r1
は、教師あり微調整 (SFT) を行わず、大規模強化学習 (RL) を用いて学習された基礎モデルです。数学、コード、推論の各タスクで高いパフォーマンスを発揮します。モデルにアクセスするには、 クロスリージョン推論パラメーター をAWS_US
にセットします。mistral-large2
は、Mistral AIの最も高度な大規模言語モデルで、トップクラスの推論機能を備えています。mistral-large
と比較すると、コード生成、数学、推論において格段に能力が高く、多言語サポートもはるかに強力です。合成テキスト生成、コード生成、多言語テキスト分析など、大規模な推論能力を必要とする複雑なタスクや、高度に専門化されたタスクに最適です。llama3.1-405b
はMeta社のllama3.1
モデルファミリーのオープンソースモデルで、128Kの大きなコンテキストウィンドウを持ちます。長文の文書処理、多言語サポート、合成データ生成、モデルの蒸留に優れています。snowflake-llama3.1-405b
は、オープンソースllama3.1モデルから派生したモデルです。Snowflakeの AI 研究チームによって開発された最大75%の推論コスト削減を実現する SwiftKV 最適化 を使用します。SwiftKV は、最小限の精度損失でより高いスループットパフォーマンスを実現します。
中規模モデル¶
llama3.1-70b
は、チャットアプリケーション、コンテンツ作成、およびエンタープライズアプリケーションに理想的な最先端のパフォーマンスを提供するオープンソースモデルです。128Kのコンテキストウィンドウで多様なユースケースを可能にする、高いパフォーマンスとコスト効率を備えたモデルです。llama3-70b
は現在もサポートされており、コンテキストウィンドウは8Kです。snowflake-llama3.3-70b
はオープンソースのllama3.3モデルから派生したモデルです。Snowflake AI 研究チームによって開発された<SwiftKV optimizations https://www.snowflake.com/en/blog/up-to-75-lower-inference-cost-llama-meta-llm/>
を使用し、推論コストを最大75%削減します。SwiftKV は、精度の低下を最小限に抑えながら、より高いスループットパフォーマンスを実現します。snowflake-arctic
は、Snowflakeのエンタープライズ向けトップクラスの LLM です。Arcticは、SQLの生成、コーディング、ベンチマークに従った命令などのエンタープライズタスクを得意としています。mixtral-8x7b
は、テキスト生成、分類、質問回答などに最適です。Mistralのモデルは、低レイテンシ、低メモリ要件に最適化されており、企業のユースケースにおいて高いスループットを実現します。jamba-Instruct
モデルは AI21 Labsによって構築され、企業の要件を効率的に満たします。256kトークンコンテキストウィンドウを低コスト、低遅延で提供するように最適化されており、要約やQ&A、また長いドキュメントや広範なナレッジベース上のエンティティ抽出などのタスクに最適です。AI21 Jamba 1.5モデルファミリーは基盤モデルに従属する、最先端のハイブリッド SSM トランスフォーマーインストラクションです。コンテキスト長が256Kの
jamba-1.5-mini
とjamba-1.5-large
は、構造化出力(JSON)やグラウンディング生成などのユースケースをサポートしています。
小規模モデル¶
llama3.2-1b
、llama3.2-3b
のモデルは、128Kトークンのコンテキスト長をサポートし、要約、命令追従、書き換えタスクなどのユースケースにおいて、このクラスでは最先端です。Llama 3.2モデルは、英語、ドイツ語、フランス語、イタリア語、ポルトガル語、ヒンディー語、スペイン語、タイ語に対応し、多言語機能を提供します。llama3.1-8b
は、低~中程度の推論を必要とするタスクに最適です。軽量で超高速のモデルで、コンテキストウィンドウは128Kです。llama3-8b
とllama2-70b-chat
は現在もサポートされているモデルで、より小さいコンテキストウィンドウと比較的低い精度を提供します。mistral-7b
は、最も単純な要約、構造化、質問に対する回答など、素早く行う必要のあるタスクに最適です。32Kのコンテキストウィンドウにより、複数ページのテキストを低レイテンシで高スループットに処理します。gemma-7b
は、単純なコードやテキストの補完タスクに適しています。コンテキストウィンドウのトークンは8,000ですが、その制限内で驚くほどの能力を発揮し、費用対効果もかなり高いです。
以下のテーブルは、人気モデルが各種ベンチマークでどのようなパフォーマンスを発揮するかについての情報を示しており、Snowflake Cortex AI_COMPLETEが提供するモデルや他のいくつかの人気モデルが含まれています。
モデル |
コンテキストウィンドウ
(トークン)
|
MMLU
(推論)
|
HumanEval
(コーディング)
|
GSM8K
(算術推論)
|
Spider 1.0
(SQL)
|
---|---|---|---|---|---|
128,000 |
88.7 |
90.2 |
96.4 |
- |
|
200,000 |
88.3 |
92.0 |
96.4 |
- |
|
128,000 |
88.6 |
89 |
96.8 |
- |
|
32,000 |
83.2 |
76.8 |
92.2 |
- |
|
128,000 |
86 |
80.5 |
95.1 |
- |
|
128,000 |
84 |
92 |
93 |
- |
|
100,000 |
75.9 |
72 |
81 |
- |
|
128,000 |
73 |
72.6 |
84.9 |
- |
|
32,000 |
70.6 |
40.2 |
60.4 |
- |
|
256,000 |
68.2 |
40 |
59.9 |
- |
|
256,000 |
69.7 |
- |
75.8 |
- |
|
256,000 |
81.2 |
- |
87 |
- |
|
4,096 |
67.3 |
64.3 |
69.7 |
79 |
|
128,000 |
49.3 |
- |
44.4 |
- |
|
128,000 |
69.4 |
- |
77.7 |
- |
|
8,000 |
64.3 |
32.3 |
46.4 |
- |
|
32,000 |
62.5 |
26.2 |
52.1 |
- |
|
GPT 3.5 Turbo* |
4,097 |
70 |
48.1 |
57.1 |
- |
旧モデルバージョン¶
Snowflake Cortexの AI_COMPLETE 関数と COMPLETE 関数は、以下の古いモデルバージョンもサポートしています。このテーブルに記載されているバージョンではなく、最新のモデルバージョンを使用することをお勧めします。
モデル |
コンテキストウィンドウ
(トークン)
|
MMLU
(推論)
|
HumanEval
(コーディング)
|
GSM8K
(算術推論)
|
Spider 1.0
(SQL)
|
---|---|---|---|---|---|
32,000 |
81.2 |
45.1 |
81 |
81 |
|
4,096 |
68.9 |
30.5 |
57.5 |
- |
PythonでSnowflake Cortex AISQL を使用します。¶
Snowpark PythonのCortex AISQL 関数を呼び出す¶
Snowpark Python API のSnowflake Cortex AISQL 関数を使用できます。これらの関数には次の対象が含まれます。Snowpark Pythonの関数の名前はPythonの「snake_case」形式であり、単語はアンダースコアで区切られ、すべての文字が小文字です。
ai_agg
の例¶
ai_agg
関数は、アナリストにグループ化または非グループ化データから調査結果を要約または抽出するよう依頼するのと類似した方法で、自然言語の指示を使用してテキスト列を集計します。
次の例では、ai_agg
関数を使用して各製品の顧客レビューをまとめています。関数は、テキストの列と自然言語の指示を受け取り、レビューを要約します。
from snowflake.snowpark.functions import ai_agg, col
df = session.create_dataframe([
[1, "Excellent product!"],
[1, "Great battery life."],
[1, "A bit expensive but worth it."],
[2, "Terrible customer service."],
[2, "Won’t buy again."],
], schema=["product_id", "review"])
# Summarize reviews per product
summary_df = df.group_by("product_id").agg(
ai_agg(col("review"), "Summarize the customer reviews in one sentence.")
)
summary_df.show()
注釈
ユースケースを中心とした詳細なタスク記述を使用してください。例えば、「投資家向け報告書のために顧客からのフィードバックを要約する」など。
ai_classify
でテキストを分類する¶
ai_classify
関数は文字列または画像を受け取り、定義されたカテゴリに分類します。
次の例では、旅行レビューを「旅行」や「料理」などのカテゴリに分類しています。この関数は、テキストの列と、テキストを分類するカテゴリのリストを受け取ります。
from snowflake.snowpark.functions import ai_classify, col
df = session.create_dataframe([
["I dream of backpacking across South America."],
["I made the best pasta yesterday."],
], schema=["sentence"])
df = df.select(
"sentence",
ai_classify(col("sentence"), ["travel", "cooking"]).alias("classification")
)
df.show()
注釈
カテゴリは最大500個まで提供できます。テキストと画像の両方を分類できます。
ai_filter
で行をフィルターする¶
ai_filter
関数は、自然言語条件を評価して:code:True
または False
を返します。これを使用して、行をフィルターする、またはタグ付けすることができます。
from snowflake.snowpark.functions import ai_filter, prompt, col
df = session.create_dataframe(["Canada", "Germany", "Japan"], schema=["country"])
filtered_df = df.select(
"country",
ai_filter(prompt("Is {0} in Asia?", col("country"))).alias("is_in_asia")
)
filtered_df.show()
注釈
文字列とファイルの両方でフィルターできます。動的プロンプトの場合は、:code:プロンプト
関数を使用します。詳細については、Snowpark Python リファレンス をご参照ください。
Snowflake ML のCortex AISQL 関数を呼び出す¶
Snowflake ML には、先頭に「AI」が付加されていない名前を持つ古い AISQL 関数が含まれています。これらの関数は、Snowflake ML のバージョン 1.1.2 以降でサポートされています。名前はアンダースコアで区切られた単語とすべての文字を小文字にする、Pythonの「snake_case」形式でレンダリングされます。
PythonスクリプトをSnowflakeの外で実行する場合、これらの関数を使用するにはSnowparkセッションを作成する必要があります。手順については、 Snowflakeへの接続 をご参照ください。
単一の値を処理する¶
次のPythonの例では、単一の値に対してSnowflake Cortex AI 関数を呼び出しています。
from snowflake.cortex import complete, extract_answer, sentiment, summarize, translate
text = """
The Snowflake company was co-founded by Thierry Cruanes, Marcin Zukowski,
and Benoit Dageville in 2012 and is headquartered in Bozeman, Montana.
"""
print(complete("llama2-70b-chat", "how do snowflakes get their unique patterns?"))
print(extract_answer(text, "When was snowflake founded?"))
print(sentiment("I really enjoyed this restaurant. Fantastic service!"))
print(summarize(text))
print(translate(text, "en", "fr"))
ハイパーパラメーターオプションを渡す¶
complete
関数を使用するときに、モデルのハイパーパラメーターに影響するオプションを渡すことができます。次のPythonの例では、モデルが生成できる出力トークンの最大数の変更を示しています。
from snowflake.cortex import complete, CompleteOptions
model_options1 = CompleteOptions(
{'max_tokens':30}
)
print(complete("llama3.1-8b", "how do snowflakes get their unique patterns?", options=model_options1))
テーブル列で関数を呼び出す¶
以下に示すように、テーブルの列に対して AI 関数を呼び出すことができます。この例では、セッションオブジェクト(session
に格納)と、テキスト列 articles
を含むテーブル abstract_text
を必要とし、要点の抜粋を含む新しい列 abstract_summary
を作成します。
from snowflake.cortex import summarize
from snowflake.snowpark.functions import col
article_df = session.table("articles")
article_df = article_df.withColumn(
"abstract_summary",
summarize(col("abstract_text"))
)
article_df.collect()
注釈
COMPLETE の高度なチャットスタイル(マルチメッセージ)形式は、ML Pythonでは現在サポートされていません。
Snowflake CLI でのSnowflake Cortex AI 関数の使用¶
Snowflake Cortex AISQL は Snowflake CLI バージョン2.4.0以降で利用可能です。 Snowflake CLI の使用の詳細については:doc:`/developer-guide/snowflake-cli/introduction/introduction`をご参照ください。関数は、先頭に「AI」が付加されていない名前を持つ旧式の AISQL 関数です。
次の例は、単一の値に対して snow cortex
コマンドを使用する例です。-c
パラメーターは、使用する接続を指定します。
注釈
COMPLETE の高度なチャット形式(マルチメッセージ)は、現在 Snowflake CLI ではサポートされていません。
snow cortex complete "Is 5 more than 4? Please answer using one word without a period." -c "snowhouse"
snow cortex extract-answer "what is snowflake?" "snowflake is a company" -c "snowhouse"
snow cortex sentiment "Mary had a little Lamb" -c "snowhouse"
snow cortex summarize "John has a car. John's car is blue. John's car is old and John is thinking about buying a new car. There are a lot of cars to choose from and John cannot sleep because it's an important decision for John."
snow cortex translate herb --to pl
コマンドに使いたいテキストを含むファイルを使用することもできます。この例では、ファイル about_cortex.txt
に以下の内容が含まれていると仮定します。
Snowflake Cortex gives you instant access to industry-leading large language models (LLMs) trained by researchers at companies like Anthropic, Mistral, Reka, Meta, and Google, including Snowflake Arctic, an open enterprise-grade model developed by Snowflake.
Since these LLMs are fully hosted and managed by Snowflake, using them requires no setup. Your data stays within Snowflake, giving you the performance, scalability, and governance you expect.
Snowflake Cortex features are provided as SQL functions and are also available in Python. The available functions are summarized below.
COMPLETE: Given a prompt, returns a response that completes the prompt. This function accepts either a single prompt or a conversation with multiple prompts and responses.
EMBED_TEXT_768: Given a piece of text, returns a vector embedding that represents that text.
EXTRACT_ANSWER: Given a question and unstructured data, returns the answer to the question if it can be found in the data.
SENTIMENT: Returns a sentiment score, from -1 to 1, representing the detected positive or negative sentiment of the given text.
SUMMARIZE: Returns a summary of the given text.
TRANSLATE: Translates given text from any supported language to any other.
次のように、 --file
パラメーターを使ってファイル名を渡すことで snow cortex summarize
コマンドを実行できます。
snow cortex summarize --file about_cortex.txt
Snowflake Cortex offers instant access to industry-leading language models, including Snowflake Arctic, with SQL functions for completing prompts (COMPLETE), text embedding (EMBED\_TEXT\_768), extracting answers (EXTRACT\_ANSWER), sentiment analysis (SENTIMENT), summarizing text (SUMMARIZE), and translating text (TRANSLATE).
これらのコマンドの詳細については、 snow cortexコマンド をご参照ください。
法的通知¶
インプットとアウトプットのデータ分類は以下の表の通りです。
入力データの分類 |
出力データの分類 |
指定 |
---|---|---|
Usage Data |
Customer Data |
一般的に利用可能な関数は、カバーされている AI 機能です。プレビュー関数は、 AI 機能をプレビューします。[1] |
詳細については、 Snowflake AI と ML をご参照ください。