Snowflake Cortex AI Functions (including LLM functions)¶
Use Cortex AI Functions in Snowflake to run unstructured analytics on text and images with industry-leading LLMs from OpenAI, Anthropic, Meta, Mistral AI, and DeepSeek. AI Functions support use cases such as:
メタデータとストリームラインを充実させ、検証を合理化するためのエンティティの抽出
顧客チケット全体のインサイトを集約
自然言語によるコンテンツのフィルターと分類
サービス改善のためのセンチメントとアスペクトに基づく分析
多言語コンテンツの翻訳とローカライズ
アナリティクスと RAG パイプラインのためのドキュメントの解析
すべてのモデルはSnowflakeで完全にホスティングされ、パフォーマンス、スケーラビリティ、セキュリティガバナンスを確保しながら、データを安全に保持します。
利用可能な関数¶
Snowflake Cortex features are provided as SQL functions and are also available in Python. Cortex AI Functions can be grouped into the following categories:
Cortex AI functions¶
これらのタスク固有の関数は、カスタマイズを必要としない、簡単な要約やクィック翻訳などのルーチンタスクを自動化するために、目的に応じて構築され管理される関数です。
重要
The following features are in preview and should not be used in production:
AI_AGG
AI_FILTER
AI_SUMMARIZE_AGG
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_REDACT: Redacts personally identifiable information (PII) from text.
AI_SENTIMENT: Extracts sentiment from text.
AI_SENTIMENT は SENTIMENT (SNOWFLAKE.CORTEX) の更新されたバージョンです。
AI_SUMMARIZE_AGG: テキスト列を集約し、複数行にわたるサマリーを返します。この関数はコンテキストウィンドウの制限を受けません。
AI_SIMILARITY:2つの入力間の埋め込み類似度を計算します。
AI_TRANSCRIBE: Transcribes audio and video files stored in a stage, extracting text, timestamps, and speaker information.
AI_PARSE_DOCUMENT:(OCR モードを使用して)テキストを抽出します。または、レイアウト情報を含むテキストを(LAYOUT モードを使用して)内部または外部ステージのドキュメントから抽出します。
AI_PARSE_DOCUMENT は PARSE_DOCUMENT (SNOWFLAKE.CORTEX) の更新されたバージョンです。
AI_TRANSLATE: サポートされている言語間でテキストを翻訳します。
AI_TRANSLATE は TRANSLATE (SNOWFLAKE.CORTEX) の更新されたバージョンです。
SUMMARIZE (SNOWFLAKE.CORTEX): 指定したテキストの要約を返します。
ヘルパー関数¶
Helper functions are purpose-built managed functions that reduce cases of failures when running other Cortex AI Functions, for example by getting the count of tokens in an input prompt to ensure the call doesn't exceed a model limit.
TO_FILE:AI_COMPLETE とファイルを受け付けるその他の関数で使用するために、内部ステージまたは外部ステージでファイルへの参照を作成します。
AI_COUNT_TOKENS: 入力テキストが与えられると、指定されたモデルまたはCortex関数に基づいてトークン数を返します。
AI_COUNT_TOKENS は COUNT_TOKENS (SNOWFLAKE.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 AI Functions are optimized for throughput. We recommend using these functions to process numerous inputs such as text from large SQL tables. Batch processing is typically better suited for AI Functions. For more interactive use cases where latency is important, use the REST API. These are available for simple inference (Complete API), embedding (Embed API) and agentic applications (Agents API).
Cortex LLM 権限¶
CORTEX_USER データベースロール¶
The CORTEX_USER database role in the SNOWFLAKE database includes the privileges that allow users to call Snowflake Cortex AI Functions. By default, the CORTEX_USER role is granted to the PUBLIC role. The PUBLIC role is automatically granted to all users and roles, so this allows all users in your account to use the Snowflake Cortex AI functions.
すべてのユーザーにこの権限を付与することを回避する場合は、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;
You can also grant access to Snowflake Cortex AI functions through existing roles commonly used by specific groups of
users. (See ユーザーのロール.) For example, if you have created an analyst role that is used
as a default role by analysts in your organization, you can easily grant these users access to Snowflake Cortex AI
Functions with a single GRANT statement.
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE analyst;
CORTEX_EMBED_USER データベースロール¶
The CORTEX_EMBED_USER database role in the SNOWFLAKE database includes the privileges that allow users to call the text embedding functions AI_EMBED, EMBED_TEXT_768, and EMBED_TEXT_1024 and to create Cortex Search Services with managed vector embeddings. CORTEX_EMBED_USER allows you to grant embedding privileges separately from other Cortex AI capabilities.
注釈
CORTEX_EMBED_USER ロールがなくても、ユーザー提供の埋め込みを使用してCortex Search Servicesを作成できます。その場合は、Snowflakeの外部で自分で埋め込みを生成し、テーブルにロードする必要があります。
CORTEX_USER ロールと異なり、 CORTEX_EMBED_USER ロールはデフォルトでは PUBLIC ロールに付与されません。CORTEx_USER ロールを取り消している場合は、埋め込み機能を必要とするロールにこのロールを明示的に付与する必要があります。CORTEX_EMBED_USER データベースロールは、ユーザーに直接付与することはできませんが、ユーザーが引き受けることができるロールに付与する必要があります。次の例は、このプロセスを示しています。
USE ROLE ACCOUNTADMIN;
CREATE ROLE cortex_embed_user_role;
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_EMBED_USER TO ROLE cortex_embed_user_role;
GRANT ROLE cortex_embed_user_role TO USER some_user;
あるいは、すべてのユーザーに埋め込み機能へのアクセス権を許可するには、 PUBLIC ロールに次のようにCORTEX_EMBED_USER ロールを付与します。
USE ROLE ACCOUNTADMIN;
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_EMBED_USER TO ROLE PUBLIC;
Using AI Functions in stored procedures with EXECUTE AS RESTRICTED CALLER¶
To use AI Functions inside stored procedures with EXECUTE AS RESTRICTED CALLER, grant the following privileges to the role that created the stored procedure:
GRANT INHERITED CALLER USAGE ON ALL SCHEMAS IN DATABASE snowflake TO ROLE <role_that_created_the_stored_procedure>;
GRANT INHERITED CALLER USAGE ON ALL FUNCTIONS IN DATABASE snowflake TO ROLE <role_that_created_the_stored_procedure>;
GRANT CALLER USAGE ON DATABASE snowflake TO ROLE <role_that_created_the_stored_procedure>;
モデルアクセスの制御¶
Snowflake Cortexは、モデルへのアクセスを強制するための2つの独立したメカニズムを備えています。
:ref:`アカウントレベルの許可リストパラメーター <label-cortex_llm_allowlist>`(シンプルで広範な制御)
:ref:`ロールベースのアクセス制御(RBAC)<label-cortex_llm_rbac>`(詳細な制御)
You can use the account-level allowlist to control model access across your entire account, or you can use RBAC to control model access on a per-role basis. For maximum flexibility, you can also use both mechanisms together, if you can accept additional management complexity.
アカウントレベルの許可リストパラメーター¶
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;
To grant a role access to all current and future models:
GRANT APPLICATION ROLE SNOWFLAKE."CORTEX-MODEL-ROLE-ALL" TO ROLE MY_ROLE;
サポートされている特徴を持つモデルオブジェクトを使用する¶
サポートされているCortexの機能を持つモデルオブジェクトを使用するには、SNOWFLAKE.MODELS でモデルオブジェクトの識別子をモデル引数として指定します。完全修飾識別子、部分識別子、または自動的に SNOWFLAKE MODELS に解決される単純なモデル名を使用できます。
完全修飾識別子の使用:
SELECT AI_COMPLETE('SNOWFLAKE.MODELS."LLAMA3.1-70B"', 'Hello');
部分識別子の使用:
USE DATABASE SNOWFLAKE; USE SCHEMA MODELS; SELECT AI_COMPLETE('LLAMA3.1-70B', 'Hello');
単純なモデル名による自動ルックアップの使用:
-- Automatically resolves to SNOWFLAKE.MODELS."LLAMA3.1-70B" SELECT AI_COMPLETE('llama3.1-70b', 'Hello');
アカウントレベルの許可リスト付き RBAC の使用¶
いくつかのCortex機能は、モデル名を AI_COMPLETE('model', 'prompt') などの文字列引数として受け入れます。モデル名を指定した場合、次のようになります。
Cortexはまず、SNOWFLAKE MODELS で一致するモデルオブジェクトを見つけようとします。
'x'のような非修飾名を指定した場合、自動的にSNOWFLAKE.MODELS."X"が検索されます。モデルオブジェクトが見つかった場合、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データベースロールによって管理されます。詳細については、 Cortex LLM 権限 をご参照ください。すべての機能がモデルアクセス制御をサポートしているわけではありません。サポートされている機能 テーブルを参照して、特定の機能がどのアクセス制御メソッドをサポートするかを確認してください。
セカンダリロールによって、権限が不明瞭になる可能性があります。たとえば、ユーザーがセカンダリロールとして ACCOUNTADMIN を保有している場合は、すべてのモデルオブジェクトにアクセスできるように見えます。権限を確認するときに、セカンダリロールを一時的に無効にします。
Qualified model object identifiers are quoted and therefore case-sensitive. See QUOTED_IDENTIFIERS_IGNORE_CASE for more information.
サポートされている機能¶
モデルのアクセス制御は、以下の機能でサポートされています。
機能 |
アカウントレベルの許可リスト |
ロールベースのアクセス制御 |
メモ |
|---|---|---|---|
✔ |
✔ |
||
✔ |
✔ |
この関数を実行しているモデルが許可されていない場合、エラーメッセージには許可リストを変更する方法に関する情報が含まれます。 |
|
✔ |
✔ |
この関数を実行しているモデルが許可されていない場合、エラーメッセージには許可リストを変更する方法に関する情報が含まれます。 |
|
✔ |
✔ |
この関数を実行しているモデルが許可されていない場合、エラーメッセージには許可リストを変更する方法に関する情報が含まれます。 |
|
✔ |
✔ |
この関数を実行しているモデルが許可されていない場合、エラーメッセージには許可リストを変更する方法に関する情報が含まれます。 |
|
✔ |
✔ |
||
✔ |
✔ |
||
✔ |
✔ |
||
✔ |
✔ |
リージョンの可用性¶
Snowflake Cortex AI functions are available in the following regions. If your region is not listed for a particular function, use cross-region inference.
注釈
TRY_COMPLETE 関数は COMPLETE と同じ地域で利用できます。
AI_COUNT_TOKENS 関数は任意のモデルの全リージョンで利用可能ですが、モデル自体は以下のテーブルで指定されたリージョンでのみ利用可能です。
The following functions and models are available in any region via cross-region inference.
関数
Model
|
クロスクラウド(任意のリージョン)
|
AWS US
(リージョン横断)
|
AWS US 商業組織
(リージョン横断)
|
AWS EU
(リージョン横断)
|
AWS に APJ
(リージョン横断)
|
Azure US
(リージョン横断)
|
Google Cloud US
(リージョン横断)
|
|---|---|---|---|---|---|---|---|
AI_COMPLETE
|
|||||||
claude-sonnet-4-5 |
* |
* |
* |
* |
|||
claude-haiku-4-5 |
* |
* |
|||||
claude-4-sonnet |
✔ |
✔ |
✔ |
✔ |
✔ |
||
claude-3-7-sonnet |
✔ |
✔ |
✔ |
✔ |
|||
claude-3-5-sonnet |
✔ |
✔ |
|||||
llama4-maverick |
✔ |
✔ |
|||||
llama4-scout |
✔ |
✔ |
|||||
llama3.1-8b |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
llama3.1-70b |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
llama3.3-70b |
✔ |
✔ |
|||||
snowflake-llama-3.3-70b |
✔ |
✔ |
|||||
llama3.1-405b |
✔ |
✔ |
✔ |
✔ |
|||
openai-gpt-4.1 |
✔ |
✔ |
|||||
openai-gpt-5 |
* |
* |
|||||
openai-gpt-5-mini |
* |
* |
|||||
openai-gpt-5-nano |
* |
* |
|||||
openai-gpt-5-chat |
✔ |
||||||
openai-gpt-oss-120b |
* |
||||||
openai-gpt-oss-20b |
* |
||||||
snowflake-llama-3.1-405b |
✔ |
✔ |
✔ |
||||
snowflake-arctic |
✔ |
✔ |
✔ |
||||
deepseek-r1 |
✔ |
✔ |
|||||
mistral-large2 |
✔ |
✔ |
✔ |
✔ |
✔ |
||
mixtral-8x7b |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
mistral-7b |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
EMBED_TEXT_768
|
|||||||
e5-base-v2 |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
snowflake-arctic-embed-m |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
snowflake-arctic-embed-m-v1.5 |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
EMBED_TEXT_1024
|
|||||||
snowflake-arctic-embed-l-v2.0 |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
snowflake-arctic-embed-l-v2.0-8k |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
nv-embed-qa-4 |
✔ |
✔ |
|||||
multilingual-e5-large |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
voyage-multilingual-2 |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
AI_CLASSIFY TEXT
|
✔ |
✔ |
✔ |
✔ |
✔ |
||
AI_CLASSIFY IMAGE
|
✔ |
||||||
AI_EXTRACT
|
✔ |
✔ |
✔ |
✔ |
✔ |
||
AI_FILTER TEXT *
|
✔ |
✔ |
✔ |
✔ |
✔ |
||
AI_FILTER IMAGE *
|
✔ |
||||||
AI_AGG *
|
✔ |
✔ |
✔ |
✔ |
✔ |
||
AI_REDACT
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
AI_SENTIMENT
|
✔ |
✔ |
✔ |
✔ |
✔ |
||
AI_SIMILARITY TEXT
|
✔ |
✔ |
✔ |
✔ |
✔ |
||
AI_SIMILARITY IMAGE
|
✔ |
✔ |
✔ |
||||
AI_SUMMARIZE_AGG *
|
✔ |
✔ |
✔ |
✔ |
✔ |
||
AI_TRANSCRIBE
|
✔ |
✔ |
✔ |
✔ |
|||
SENTIMENT
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
ENTITY_SENTIMENT
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
EXTRACT_ANSWER
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
SUMMARIZE
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
TRANSLATE
|
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
以下の関数とモデルは、北米リージョンでネイティブに利用できます。
関数
Model
|
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 |
|||||||||
claude-3-7-sonnet |
|||||||||
claude-3-5-sonnet |
✔ |
✔ |
|||||||
llama4-maverick |
✔ |
||||||||
llama4-scout |
✔ |
||||||||
llama3.1-8b |
✔ |
✔ |
✔ |
✔ |
|||||
llama3.1-70b |
✔ |
✔ |
✔ |
✔ |
|||||
llama3.3-70b |
✔ |
||||||||
snowflake-llama-3.3-70b |
✔ |
||||||||
llama3.1-405b |
✔ |
✔ |
✔ |
✔ |
|||||
openai-gpt-4.1 |
✔ |
||||||||
openai-gpt-oss-120b |
* |
||||||||
openai-gpt-oss-20b |
* |
* |
|||||||
snowflake-llama-3.1-405b |
✔ |
||||||||
snowflake-arctic |
✔ |
✔ |
|||||||
deepseek-r1 |
✔ |
||||||||
mistral-large2 |
✔ |
✔ |
✔ |
✔ |
|||||
mixtral-8x7b |
✔ |
✔ |
✔ |
✔ |
|||||
mistral-7b |
✔ |
✔ |
✔ |
✔ |
|||||
EMBED_TEXT_768
|
|||||||||
e5-base-v2 |
✔ |
✔ |
✔ |
✔ |
|||||
snowflake-arctic-embed-m |
✔ |
✔ |
✔ |
✔ |
|||||
snowflake-arctic-embed-m-v1.5 |
✔ |
✔ |
✔ |
✔ |
|||||
EMBED_TEXT_1024
|
|||||||||
snowflake-arctic-embed-l-v2.0 |
✔ |
✔ |
✔ |
✔ |
|||||
snowflake-arctic-embed-l-v2.0-8k |
✔ |
✔ |
✔ |
✔ |
|||||
nv-embed-qa-4 |
✔ |
||||||||
multilingual-e5-large |
✔ |
✔ |
✔ |
✔ |
|||||
voyage-multilingual-2 |
✔ |
✔ |
✔ |
✔ |
|||||
AI_CLASSIFY TEXT
|
✔ |
✔ |
✔ |
||||||
AI_CLASSIFY IMAGE
|
✔ |
✔ |
|||||||
AI_EXTRACT
|
✔ |
✔ |
✔ |
✔ |
✔ |
||||
AI_FILTER TEXT *
|
✔ |
✔ |
✔ |
||||||
AI_FILTER IMAGE *
|
✔ |
✔ |
|||||||
AI_AGG *
|
✔ |
✔ |
✔ |
||||||
AI_REDACT
|
✔ |
✔ |
✔ |
✔ |
|||||
AI_SIMILARITY TEXT
|
✔ |
✔ |
✔ |
||||||
AI_SIMILARITY IMAGE
|
✔ |
✔ |
|||||||
AI_SUMMARIZE_AGG *
|
✔ |
✔ |
✔ |
||||||
AI_TRANSCRIBE
|
✔ |
✔ |
✔ |
||||||
SENTIMENT |
✔ |
✔ |
✔ |
✔ |
|||||
ENTITY_SENTIMENT |
✔ |
✔ |
✔ |
✔ |
|||||
EXTRACT_ANSWER |
✔ |
✔ |
✔ |
✔ |
|||||
SUMMARIZE |
✔ |
✔ |
✔ |
✔ |
|||||
TRANSLATE |
✔ |
✔ |
✔ |
✔ |
以下の関数とモデルは、ヨーロッパのリージョンでネイティブに利用できます。
関数
Model
|
AWSヨーロッパ中部1
(フランクフルト)
|
AWS ヨーロッパ西部1
(アイルランド)
|
Azure西ヨーロッパ
(オランダ)
|
|---|---|---|---|
AI_COMPLETE
|
|||
claude-4-sonnet |
|||
claude-3-7-sonnet |
|||
claude-3-5-sonnet |
|||
llama4-maverick |
|||
llama4-scout |
|||
llama3.1-8b |
✔ |
✔ |
✔ |
llama3.1-70b |
✔ |
✔ |
✔ |
llama3.3-70b |
|||
snowflake-llama-3.3-70b |
|||
llama3.1-405b |
|||
openai-gpt-4.1 |
|||
openai-gpt-oss-120b |
|||
openai-gpt-oss-20b |
|||
snowflake-llama-3.1-405b |
|||
snowflake-arctic |
|||
deepseek-r1 |
|||
mistral-large2 |
✔ |
✔ |
✔ |
mixtral-8x7b |
✔ |
✔ |
✔ |
mistral-7b |
✔ |
✔ |
✔ |
EMBED_TEXT_768
|
|||
e5-base-v2 |
✔ |
✔ |
|
snowflake-arctic-embed-m |
✔ |
✔ |
✔ |
snowflake-arctic-embed-m-v1.5 |
✔ |
✔ |
✔ |
EMBED_TEXT_1024 |
|||
snowflake-arctic-embed-l-v2.0 |
✔ |
✔ |
✔ |
snowflake-arctic-embed-l-v2.0-8k |
✔ |
✔ |
✔ |
nv-embed-qa-4 |
|||
multilingual-e5-large |
✔ |
✔ |
✔ |
voyage-multilingual-2 |
✔ |
✔ |
✔ |
AI_CLASSIFY TEXT
|
✔ |
✔ |
✔ |
AI_CLASSIFY IMAGE
|
✔ |
||
AI_EXTRACT
|
✔ |
✔ |
✔ |
AI_FILTER TEXT *
|
✔ |
✔ |
✔ |
AI_FILTER IMAGE *
|
✔ |
||
AI_AGG *
|
✔ |
✔ |
✔ |
AI_REDACT
|
✔ |
✔ |
✔ |
AI_SIMILARITY TEXT
|
✔ |
✔ |
✔ |
AI_SIMILARITY IMAGE
|
✔ |
||
AI_SUMMARIZE_AGG *
|
✔ |
✔ |
✔ |
AI_TRANSCRIBE
|
✔ |
||
SENTIMENT |
✔ |
✔ |
✔ |
ENTITY_SENTIMENT |
✔ |
✔ |
|
EXTRACT_ANSWER |
✔ |
✔ |
✔ |
SUMMARIZE |
✔ |
✔ |
✔ |
TRANSLATE |
✔ |
✔ |
✔ |
The following functions and models are available natively in Asia-Pacific regions:
関数
| Model
|
AWS AP 南東部2
(シドニー)
|
AWS AP 北東部1
(東京)
|
|---|---|---|
AI_COMPLETE
|
||
claude-4-sonnet |
||
claude-3-7-sonnet |
||
claude-3-5-sonnet |
✔ |
|
llama4-maverick |
||
llama4-scout |
||
llama3.1-8b |
✔ |
✔ |
llama3.1-70b |
✔ |
✔ |
llama3.3-70b |
||
snowflake-llama-3.3-70b |
||
llama3.1-405b |
||
openai-gpt-4.1 |
||
snowflake-llama-3.1-405b |
||
snowflake-arctic |
||
deepseek-r1 |
||
mistral-large2 |
✔ |
✔ |
mixtral-8x7b |
✔ |
✔ |
mistral-7b |
✔ |
✔ |
EMBED_TEXT_768
|
||
e5-base-v2 |
✔ |
✔ |
snowflake-arctic-embed-m |
✔ |
✔ |
snowflake-arctic-embed-m-v1.5 |
✔ |
✔ |
EMBED_TEXT_1024
|
||
snowflake-arctic-embed-l-v2.0 |
✔ |
✔ |
snowflake-arctic-embed-l-v2.0-8k |
✔ |
✔ |
nv-embed-qa-4 |
||
multilingual-e5-large |
✔ |
✔ |
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 |
✔ |
✔ |
* Indicates a preview function or model. Preview features are not suitable for production workloads.
The following Snowflake Cortex AI functions and models are available in the following extended regions.
関数
Model
|
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オーストラリア東部
(ニューサウスウェールズ)
|
Google Cloud Europe West 2
(ロンドン)
|
Google Cloud Europe West 4
(オランダ)
|
Google Cloud US Central 1
(アイオワ)
|
Google Cloud US East 4
(N.バージニア)
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
EMBED_TEXT_768
|
|||||||||||||||||||||||
snowflake-arctic-embed-m-v1.5 |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
snowflake-arctic-embed-m |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
EMBED_TEXT_1024
|
|||||||||||||||||||||||
multilingual-e5-large |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
AI_EXTRACT
|
✔ |
✔ |
✔ |
✔ |
✔ |
クロスリージョンのみ |
✔ |
クロスリージョンのみ |
✔ |
クロスリージョンのみ |
✔ |
✔ |
クロスリージョンのみ |
✔ |
クロスリージョンのみ |
✔ |
✔ |
✔ |
✔ |
クロスリージョンのみ |
クロスリージョンのみ |
クロスリージョンのみ |
クロスリージョンのみ |
The following table lists availability of legacy models. These models have not been deprecated and can still be used. However, Snowflake recommends newer models for new development.
関数
(モデル)
|
AWS US西部2
(オレゴン)
|
AWS US東部1
(N.バージニア)
|
AWSヨーロッパ中部1
(フランクフルト)
|
AWS ヨーロッパ西部1
(アイルランド)
|
AWS AP 南東部2
(シドニー)
|
AWS AP 北東部1
(東京)
|
Azure東部 US 2
(バージニア)
|
Azure西ヨーロッパ
(オランダ)
|
|---|---|---|---|---|---|---|---|---|
AI_COMPLETE
|
||||||||
llama3-8b |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
||
llama3-70b |
✔ |
✔ |
✔ |
✔ |
✔ |
|||
mistral-large |
✔ |
✔ |
✔ |
✔ |
✔ |
|||
openai-o4-mini |
✔ |
Create stage for media files¶
Cortex AI Functions that process media files (documents, images, audio, or video) require the files to be stored on an internal or external stage. The stage must use server-side encryption. If you want to be able to query the stage or programmatically process all the files stored there, the stage must have a directory table.
The SQL below creates a suitable internal stage:
CREATE OR REPLACE STAGE input_stage
DIRECTORY = ( ENABLE = true )
ENCRYPTION = ( TYPE = 'SNOWFLAKE_SSE' );
To process files from external object storage (e.g., Amazon S3), create a storage integration, then create an external stage that uses the storage integration. To learn how to configure a Snowflake Storage Integration, see our detailed guides:
Create an external stage that references the integration and points to your cloud storage container. This example points to an Amazon S3 bucket:
CREATE OR REPLACE STAGE my_aisql_media_files
STORAGE_INTEGRATION = my_s3_integration
URL = 's3://my_bucket/prefix/'
DIRECTORY = ( ENABLE = TRUE )
ENCRYPTION = ( TYPE = 'AWS_SSE_S3' );
With an internal or external stage created, and files stored there, you can use Cortex AI Functions to process media files stored in the stage. For more information, see:
注釈
AI Functions are currently incompatible with custom network policies.
Cortex AI Functions storage best practices¶
You may find the following best practices helpful when working with media files in stages with Cortex AI Functions:
Establish a scheme for organizing media files in stages. For example, create a separate stage for each team or project, and store the different types of media files in subdirectories.
Enable directory listings on stages to allow querying and programmatic access to its files.
Tip
To automatically refresh the directory table for the external stage when new or updated files are available, set AUTO_REFRESH = TRUE when creating the stage.
For external stages, use fine-grained policies on the cloud provider side (for example, AWS IAM policies) to restrict the storage integration's access to only what is necessary.
Always use encryption, such as AWS_SSE or SNOWFLAKE_SSE, to protect your data at rest.
コストの考慮事項¶
Snowflake Cortex AI 関数は、処理されたトークンの数に基づいてコンピュートコストが発生します。100万トークンあたりのクレジット単位での各コストについては、 Snowflakeサービス利用テーブル をご参照ください。
トークンは、Snowflake Cortex AI 関数で処理されるテキストの最小単位です。テキストに関する業界の規則では、トークンはおよそ4文字に相当しますが、メディアファイルのトークンに相当するなど、モデルによって異なる可能性があります。
For functions that generate new text using provided text (AI_COMPLETE, AI_CLASSIFY, AI_FILTER, AI_AGG, AI_SUMMARIZE, and AI_TRANSLATE, and their previous versions in the SNOWFLAKE.CORTEX schema), both input and output tokens are billable.
Cortex Guardでは、入力トークンのみがカウントされます。入力トークンの数は、AI_COMPLETE(または COMPLETE)からの出力のトークン数に基づいています。AI_COMPLETE(または COMPLETE)関数のコストに加えて、Cortex Guardの使用に対して課金されます。
For AI_SIMILARITY, AI_EMBED, and the SNOWFLAKE.CORTEX.EMBED_* functions, only input tokens are counted.
EXTRACT_ANSWER の場合、請求可能トークン数は
from_textフィールドとquestionフィールドのトークン数の合計です。AI_CLASSIFY, AI_FILTER, AI_AGG, AI_SENTIMENT, AI_SUMMARIZE_AGG, SUMMARIZE, TRANSLATE, AI_TRANSLATE, EXTRACT_ANSWER, ENTITY_SENTIMENT, and SENTIMENT add a prompt to the input text in order to generate the response. As a result, the billed token count is higher than the number of tokens in the text you provide.
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トークンとしてカウントされます。AI_COUNT_TOKENS は関数を実行するための計算コストしか発生しません。トークンに基づく追加コストは発生しません。
画像や音声などのメディアファイルをサポートするモデルの場合:
音声ファイルについては、1秒の音声あたり50トークンが課金されます。
画像のトークン同等性は、使用されたモデルによって決定されます。詳細については、AI 画像コストに関する考慮事項 をご参照ください。
Snowflake recommends executing queries that call a Snowflake Cortex AI Function with a smaller warehouse (no larger than MEDIUM). Larger warehouses do not increase performance. The cost associated with keeping a warehouse active continues to apply when executing a query that calls a Snowflake Cortex LLM Function. For general information on compute costs, see Understanding compute cost.
Warehouse sizing¶
Snowflake recommends using a warehouse size no larger than MEDIUM when calling Snowflake Cortex AI Functions. Using a larger warehouse than necessary does not increase performance, but can result in unnecessary costs. This recommendation may change in the future as we continue to evolve Cortex AI Functions.
AIサービスのコストを追跡する¶
お客様のアカウントで LLM 関数を含む AI サービスに使用されたクレジットを追跡するには、 METERING_HISTORY ビュー を使用します。
SELECT *
FROM SNOWFLAKE.ACCOUNT_USAGE.METERING_DAILY_HISTORY
WHERE SERVICE_TYPE='AI_SERVICES';
Track credit consumption for Cortex AI Functions¶
To view the credit and token consumption for each AI Function call, use the 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行が表示されます。
使用量のクォータ¶
On-demand Snowflake accounts without a valid payment method (such as trial accounts) are limited to 10 credits per day for Snowflake Cortex AI Functions usage. To remove this limit, convert your trial account to a paid account.
モデルの制限¶
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 トークンです。
関数 |
モデル |
コンテキストウィンドウ(トークン) |
最大出力(トークン) |
|---|---|---|---|
COMPLETE |
|
128,000 |
8,192 |
|
128,000 |
8,192 |
|
|
4,096 |
8,192 |
|
|
32,768 |
8,192 |
|
|
200,000 |
64,000 |
|
|
200,000 |
64,000 |
|
|
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 |
|
|
32,000 |
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 |
|
|
32,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 と 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 研究チームによって開発された SwiftKV 最適化 を使用して、最大75%の推論コスト削減を実現します。SwiftKV は、最小限の精度損失でより高いスループットパフォーマンスを実現します。
中規模モデル¶
llama3.1-70bは、チャットアプリケーション、コンテンツ作成、およびエンタープライズアプリケーションに理想的な最先端のパフォーマンスを提供するオープンソースモデルです。128Kのコンテキストウィンドウで多様なユースケースを可能にする、高いパフォーマンスとコスト効率を備えたモデルです。llama3-70bは現在もサポートされており、コンテキストウィンドウは8Kです。snowflake-llama3.3-70bは、オープンソースllama3.3モデルから派生したモデルです。Snowflakeの AI 研究チームによって開発された SwiftKV 最適化 を使用して、最大75%の推論コスト削減を実現します。SwiftKV は、最小限の精度損失でより高いスループットパフォーマンスを実現します。snowflake-arcticは、Snowflakeのエンタープライズ向けトップクラスの LLM です。Arcticは、SQLの生成、コーディング、ベンチマークに従った命令などのエンタープライズタスクを得意としています。mixtral-8x7bは、テキスト生成、分類、質問回答などに最適です。Mistralのモデルは、低レイテンシ、低メモリ要件に最適化されており、企業のユースケースにおいて高いスループットを実現します。
小規模モデル¶
llama3.1-8bは、低~中程度の推論を必要とするタスクに最適です。軽量で超高速のモデルで、コンテキストウィンドウは128Kです。llama3-8bでは、コンテキストウィンドウが小さくなり、精度が比較的低くなります。mistral-7bは、最も単純な要約、構造化、質問に対する回答など、素早く行う必要のあるタスクに最適です。32Kのコンテキストウィンドウにより、複数ページのテキストを低レイテンシで高スループットに処理します。
以下のテーブルは、人気モデルが各種ベンチマークでどのようなパフォーマンスを発揮するかについての情報を示しており、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 |
- |
|
128,000 |
86 |
80.5 |
95.1 |
- |
|
128,000 |
84 |
92 |
93 |
- |
|
128,000 |
73 |
72.6 |
84.9 |
- |
|
32,000 |
70.6 |
40.2 |
60.4 |
- |
|
4,096 |
67.3 |
64.3 |
69.7 |
79 |
|
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 |
- |
Using Snowflake Cortex AI Functions with Python¶
Call Cortex AI Functions in Snowpark Python¶
You can use Snowflake Cortex AI Functions in the Snowpark Python API. These functions include the following. Note that the functions in Snowpark Python have names in Pythonic "snake_case" format, with words separated by underscores and all letters in lowercase.
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 リファレンス をご参照ください。
Call Cortex AI Functions in Snowflake ML¶
Snowflake ML contains the older AI Functions, those with names that don't begin with "AI". These functions are supported in version 1.1.2 and later of Snowflake ML. The names are rendered in Pythonic "snake_case" format, with words separated by underscores and all letters in lowercase.
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("llama3.1-8b", "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 AI Functions are available in Snowflake CLI version 2.4.0 and later. See Snowflake CLI の紹介 for more information about using Snowflake CLI. The functions are the old-style functions, those with names that don't begin with "AI".
次の例は、単一の値に対して 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 をご参照ください。