Snowflake Cortex AISQL(包括 LLM 功能)¶
在 Snowflake 中,借助 OpenAI、Anthropic、Meta、Mistral AI 和 DeepSeek 提供的业界领先的 LLMs,使用 Cortex AISQL 对文本和图像进行非结构化分析。Cortex AISQL 支持以下用例:
提取实体以丰富元数据并简化验证
汇总客户工单洞察分析
使用自然语言对内容进行筛选和分类
基于情绪和方面进行分析以改进服务
翻译和本地化多语言内容
解析用于分析和 RAG 管道的文档
所有模型都完全托管在 Snowflake 中,可确保性能、可扩展性和治理,同时保持数据安全且到位。
可用函数¶
Snowflake Cortex 功能以 SQL 函数的形式提供,而且也可用于 Python 中。Cortex AISQL 函数可以分为以下几类:
AISQL 函数¶
特定于任务的函数是专门构建和管理的函数,可以自动执行日常任务,如简单的摘要和快速翻译,不需要任何自定义。
AI_COMPLETE:使用选定的 LLM 为给定的文本字符串或图像生成补全。将此函数用于大多数生成式 AI 任务。
这是 COMPLETE (SNOWFLAKE.CORTEX) 的更新版本。
AI_CLASSIFY:将文本或图像分类为用户定义的类别。
这是 CLASSIFY_TEXT (SNOWFLAKE.CORTEX) 的更新版本,支持多标签和图像分类。
AI_FILTER:对于给定的文本或图像输入,返回 True 或 False,允许您在
SELECT
、WHERE
或JOIN ... ON
子句中筛选结果。AI_AGG:聚合文本列,并根据用户定义的提示返回跨多行的洞察。此函数不受上下文窗口限制。
AI_EMBED:为文本或图像输入生成嵌入向量,该向量可用于相似性搜索、聚类及分类任务。
这是 EMBED_TEXT_1024 (SNOWFLAKE.CORTEX) 的更新版本。
AI_SUMMARIZE_AGG:聚合文本列并返回跨多行的摘要。此函数不受上下文窗口限制。
AI_SIMILARITY:计算两个输入之间的嵌入相似度。
AI_TRANSCRIBE:转录存储在暂存区中的音频文件,提取文本、时间戳及说话者信息。
PARSE_DOCUMENT (SNOWFLAKE.CORTEX):从内部或外部暂存区的文档中提取文本(使用 OCR 模式)或带有布局信息的文本(使用 LAYOUT 模式)。
TRANSLATE (SNOWFLAKE.CORTEX):在支持的语言之间翻译文本。
AI_SENTIMENT:从文本中提取情绪分数。
EXTRACT_ANSWER (SNOWFLAKE.CORTEX):从非结构化数据中提取问题的答案,前提是相关数据存在。
SUMMARIZE (SNOWFLAKE.CORTEX):返回您指定的文本摘要。
备注
以前称为“LLM 函数”的函数在“SNOWFLAKE.CORTEX”命名空间中访问
辅助函数¶
辅助函数是专门构建和管理的函数,用于减少运行其他 AISQL 函数时的故障情况,例如通过获取输入提示中的词元计数来确保调用不超过模型限制。
COUNT_TOKENS (SNOWFLAKE.CORTEX):在给定输入文本的情况下,根据指定的模型或 Cortex 函数返回词元计数。
TRY_COMPLETE (SNOWFLAKE.CORTEX):与 COMPLETE 函数类似,但在函数无法执行时返回 NULL,而不是返回错误代码。
Cortex Guard¶
Cortex Guard 是 COMPLETE 函数的一个选项,旨在筛选语言模型中可能存在的不安全和有害响应。Cortex Guard 目前采用 Meta 的 Llama Guard 3 构建。Cortex Guard 的工作原理是在将输出返回给应用程序之前,先评估语言模型的响应。激活 Cortex Guard 后,系统就会过滤可能与暴力犯罪、仇恨、性内容、自我伤害等相关的语言模型响应。有关语法和示例,请参阅 COMPLETE 实参。
备注
使用 Cortex Guard 会根据 处理的输入词元 数量产生计算费用。
性能注意事项¶
Cortex AISQL 函数针对吞吐量进行了优化。我们建议使用这些函数来处理大量输入,例如大型 SQL 表的文本。批处理通常更适用于 AISQL 函数。对于延迟很重要的更多交互式使用案例,请使用 REST API。这些可用于简单推理 (Complete API)、嵌入 (Embed API) 和代理应用程序 (Agents API)。
所需权限¶
SNOWFLAKE 数据库中的 CORTEX_USER 数据库角色包含了允许用户调用 Snowflake Cortex AI 函数的权限。默认情况下,CORTEX_USER 角色被授予给 PUBLIC 角色。PUBLIC 角色会自动授予给所有用户和角色,从而允许您账户中的所有用户使用 Snowflake Cortex AI 函数。
如果您不希望所有用户都拥有此权限,则可以撤销对 PUBLIC 角色的访问权限,并授予对特定角色的访问权限。
要从 PUBLIC 角色中撤销 CORTEX_USER 数据库角色,请使用 ACCOUNTADMIN 角色运行以下命令:
REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_USER
FROM ROLE PUBLIC;
REVOKE IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE
FROM ROLE PUBLIC;
然后,您可以有选择地提供对特定角色的访问权限。不能直接向用户授予 SNOWFLAKE.CORTEX_USER 数据库角色。有关更多信息,请参阅 使用 SNOWFLAKE 数据库角色。具有 ACCOUNTADMIN 角色的用户可以将此角色授予自定义角色,以允许用户访问 Cortex AI 函数。在以下示例中,使用 ACCOUNTADMIN 角色,并通过您为此目的创建的账户角色 cortex_user_role
向用户 some_user
授予 CORTEX_USER 数据库角色。
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
角色(它被组织中的分析师用作默认角色),则可以使用一条 GRANT 语句,轻松地向这些用户授予对 Snowflake Cortex AISQL 函数的访问权限。
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE analyst;
控制模型访问¶
Snowflake Cortex 提供了两种独立机制来强制访问模型:
:ref:`账户级别的允许列表参数 <label-cortex_llm_allowlist>`(简单、广泛的控制)
:ref:`基于角色的访问控制 (RBAC) <label-cortex_llm_rbac>`(精细控制)
您可以使用账户级允许列表来控制整个账户的模型访问权限,也可以使用 RBAC 控制每个角色的模型访问权限。为了最大限度地提高灵活性,如果可以接受额外的复杂性,也可以 同时使用这两种机制。
账户级别的允许列表参数¶
您可以使用 CORTEX_MODELS_ALLOWLIST 参数控制整个账户的模型访问权限。支持的功能 将遵循此参数值,并阻止使用未在允许列表中的模型。
可以将 CORTEX_MODELS_ALLOWLIST 参数设置为 'All'
、'None'
或以逗号分隔的型号名称列表。此参数只能在账户级别设置,不能在用户或会话级别设置。只有 ACCOUNTADMIN 角色可以使用 ALTER ACCOUNT 命令设置参数。
示例:
要允许访问所有模型,请执行以下操作:
ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST = 'All';
要允许访问
mistral-large2
和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 允许您在 SNOWFLAKE.MODELS 架构中创建代表 Cortex 模型的模型对象。通过对这些对象应用 RBAC,您可以像控制其他 Snowflake 对象一样管理模型访问权限。支持的功能 可在任何需要指定模型的场景中,接受 SNOWFLAKE.MODELS 架构内对象的标识符。
小技巧
如需独占使用 RBAC,请将 CORTEX_MODELS_ALLOWLIST 设置为 'None'
。
刷新模型对象和应用程序角色¶
SNOWFLAKE.MODELS 不会自动填充代表 Cortex 模型的对象。首次设置模型 RBAC 时必须创建这些对象,若需对新模型应用 RBAC 功能则需刷新对象。
作为 ACCOUNTADMIN,运行 SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH 存储过程,以使用代表当前可用 Cortex 模型的对象填充 SNOWFLAKE.MODELS 模式,并创建与模型对应的应用角色。该存储过程还会创建一个覆盖所有模型的 CORTEX-MODEL-ROLE-ALL 角色。
小技巧
您可以随时安全地调用 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
(跨区域)
|
---|---|---|---|---|---|
COMPLETE
(
claude-4-sonnet ) |
✔ |
✔ |
|||
COMPLETE
(
claude-4-opus ) |
处于预览版 |
处于预览版 |
|||
COMPLETE
(
claude-3-7-sonnet ) |
✔ |
✔ |
✔ |
||
COMPLETE
(
claude-3-5-sonnet ) |
✔ |
✔ |
|||
COMPLETE
(
llama4-maverick ) |
✔ |
✔ |
|||
COMPLETE
(
llama4-scout ) |
✔ |
✔ |
|||
COMPLETE
(
llama3.2-1b ) |
✔ |
✔ |
|||
COMPLETE
(
llama3.2-3b ) |
✔ |
✔ |
|||
COMPLETE
(
llama3.1-8b ) |
✔ |
✔ |
✔ |
✔ |
✔ |
COMPLETE
(
llama3.1-70b ) |
✔ |
✔ |
✔ |
✔ |
✔ |
COMPLETE
(
llama3.3-70b ) |
✔ |
✔ |
|||
COMPLETE
(
snowflake-llama-3.3-70b ) |
✔ |
✔ |
|||
COMPLETE
(
llama3.1-405b ) |
✔ |
✔ |
✔ |
||
COMPLETE
(
openai-gpt-4.1 ) |
处于预览版 |
处于预览版 |
|||
COMPLETE
(
openai-o4-mini ) |
处于预览版 |
处于预览版 |
|||
COMPLETE
(
openai-gpt-5 ) |
处于预览版 |
处于预览版 |
|||
COMPLETE
(
openai-gpt-5-mini ) |
处于预览版 |
处于预览版 |
|||
COMPLETE
(
openai-gpt-5-nano ) |
处于预览版 |
处于预览版 |
|||
COMPLETE
(
openai-gpt-5-chat ) |
处于预览版 |
||||
COMPLETE
(
openai-gpt-oss-120b ) |
处于预览版 |
||||
COMPLETE
(
openai-gpt-oss-20b ) |
处于预览版 |
||||
COMPLETE
(
snowflake-llama-3.1-405b ) |
✔ |
✔ |
|||
COMPLETE
(
snowflake-arctic ) |
✔ |
✔ |
✔ |
||
COMPLETE
(
deepseek-r1 ) |
✔ |
✔ |
|||
COMPLETE
(
reka-core ) |
✔ |
✔ |
|||
COMPLETE
(
reka-flash ) |
✔ |
✔ |
✔ |
||
COMPLETE
(
mistral-large2 ) |
✔ |
✔ |
✔ |
✔ |
|
COMPLETE
(
mixtral-8x7b ) |
✔ |
✔ |
✔ |
✔ |
✔ |
COMPLETE
(
mistral-7b ) |
✔ |
✔ |
✔ |
✔ |
✔ |
COMPLETE
(
jamba-instruct ) |
✔ |
✔ |
✔ |
✔ |
✔ |
COMPLETE
(
jamba-1.5-mini ) |
✔ |
✔ |
✔ |
✔ |
✔ |
COMPLETE
(
jamba-1.5-large ) |
✔ |
✔ |
✔ |
||
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_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
(弗吉尼亚北部)
|
AWS US 东部
(商业政府 – 弗吉尼亚北部)
|
Azure 东部 US 2
(弗吉尼亚)
|
Azure 东部 US
(弗吉尼亚)
|
Azure 西部 US
(华盛顿)
|
Azure 西部 US 3
(亚利桑那州)
|
Azure 中北部 US
(伊利诺伊州)
|
Azure 中南部 US
(德克萨斯)
|
---|---|---|---|---|---|---|---|---|---|
COMPLETE
(
claude-4-sonnet ) |
|||||||||
COMPLETE
(
claude-4-opus ) |
|||||||||
COMPLETE
(
claude-3-7-sonnet ) |
|||||||||
COMPLETE
(
claude-3-5-sonnet ) |
✔ |
✔ |
|||||||
COMPLETE
(
llama4-maverick ) |
✔ |
||||||||
COMPLETE
(
llama4-scout ) |
✔ |
||||||||
COMPLETE
(
llama3.2-1b ) |
✔ |
||||||||
COMPLETE
(
llama3.2-3b ) |
✔ |
||||||||
COMPLETE
(
llama3.1-8b ) |
✔ |
✔ |
✔ |
✔ |
|||||
COMPLETE
(
llama3.1-70b ) |
✔ |
✔ |
✔ |
✔ |
|||||
COMPLETE
(
llama3.3-70b ) |
✔ |
||||||||
COMPLETE
(
snowflake-llama-3.3-70b ) |
✔ |
||||||||
COMPLETE
(
llama3.1-405b ) |
✔ |
✔ |
✔ |
✔ |
|||||
COMPLETE
(
openai-gpt-4.1 ) |
处于预览版 |
||||||||
COMPLETE
(
openai-o4-mini ) |
处于预览版 |
||||||||
COMPLETE
(
openai-gpt-oss-120b ) |
处于预览版 |
||||||||
COMPLETE
(
openai-gpt-oss-20b ) |
处于预览版 |
处于预览版 |
|||||||
COMPLETE
(
snowflake-llama-3.1-405b ) |
✔ |
||||||||
COMPLETE
(
snowflake-arctic ) |
✔ |
✔ |
|||||||
COMPLETE
(
deepseek-r1 ) |
✔ |
||||||||
COMPLETE
(
reka-core ) |
✔ |
✔ |
|||||||
COMPLETE
(
reka-flash ) |
✔ |
✔ |
✔ |
||||||
COMPLETE
(
mistral-large2 ) |
✔ |
✔ |
✔ |
✔ |
|||||
COMPLETE
(
mixtral-8x7b ) |
✔ |
✔ |
✔ |
✔ |
|||||
COMPLETE
(
mistral-7b ) |
✔ |
✔ |
✔ |
✔ |
|||||
COMPLETE
(
jamba-instruct ) |
✔ |
||||||||
COMPLETE
(
jamba-1.5-mini ) |
✔ |
||||||||
COMPLETE
(
jamba-1.5-large ) |
✔ |
||||||||
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_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 西欧
(荷兰)
|
---|---|---|---|
COMPLETE
(
claude-4-sonnet ) |
|||
COMPLETE
(
claude-4-opus ) |
|||
COMPLETE
(
claude-3-7-sonnet ) |
|||
COMPLETE
(
claude-3-5-sonnet ) |
|||
COMPLETE
(
llama4-maverick ) |
|||
COMPLETE
(
llama4-scout ) |
|||
COMPLETE
(
llama3.2-1b ) |
|||
COMPLETE
(
llama3.2-3b ) |
|||
COMPLETE
(
llama3.1-8b ) |
✔ |
✔ |
✔ |
COMPLETE
(
llama3.1-70b ) |
✔ |
✔ |
✔ |
COMPLETE
(
llama3.3-70b ) |
|||
COMPLETE
(
snowflake-llama-3.3-70b ) |
|||
COMPLETE
(
llama3.1-405b ) |
|||
COMPLETE
(
openai-gpt-4.1 ) |
|||
COMPLETE
(
openai-o4-mini ) |
|||
COMPLETE
(
openai-gpt-oss-120b ) |
|||
COMPLETE
(
openai-gpt-oss-20b ) |
|||
COMPLETE
(
snowflake-llama-3.1-405b ) |
|||
COMPLETE
(
snowflake-arctic ) |
|||
COMPLETE
(
deepseek-r1 ) |
|||
COMPLETE
(
reka-core ) |
|||
COMPLETE
(
reka-flash ) |
|||
COMPLETE
(
mistral-large2 ) |
✔ |
✔ |
✔ |
COMPLETE
(
mixtral-8x7b ) |
✔ |
✔ |
✔ |
COMPLETE
(
mistral-7b ) |
✔ |
✔ |
✔ |
COMPLETE
(
jamba-instruct ) |
✔ |
||
COMPLETE
(
jamba-1.5-mini ) |
✔ |
||
COMPLETE
(
jamba-1.5-large ) |
|||
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_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
(东京)
|
---|---|---|
COMPLETE
(
claude-4-sonnet ) |
||
COMPLETE
(
claude-4-opus ) |
||
COMPLETE
(
claude-3-7-sonnet ) |
||
COMPLETE
(
claude-3-5-sonnet ) |
✔ |
|
COMPLETE
(
llama4-maverick ) |
||
COMPLETE
(
llama4-scout ) |
||
COMPLETE
(
llama3.2-1b ) |
||
COMPLETE
(
llama3.2-3b ) |
||
COMPLETE
(
llama3.1-8b ) |
✔ |
✔ |
COMPLETE
(
llama3.1-70b ) |
✔ |
✔ |
COMPLETE
(
llama3.3-70b ) |
||
COMPLETE
(
snowflake-llama-3.3-70b ) |
||
COMPLETE
(
llama3.1-405b ) |
||
COMPLETE
(
openai-gpt-4.1 ) |
||
COMPLETE
(
openai-o4-mini ) |
||
COMPLETE
(
snowflake-llama-3.1-405b ) |
||
COMPLETE
(
snowflake-arctic ) |
||
COMPLETE
(
deepseek-r1 ) |
||
COMPLETE
(
reka-core ) |
||
COMPLETE
(
reka-flash ) |
✔ |
|
COMPLETE
(
mistral-large2 ) |
✔ |
✔ |
COMPLETE
(
mixtral-8x7b ) |
✔ |
✔ |
COMPLETE
(
mistral-7b ) |
✔ |
✔ |
COMPLETE
(
jamba-instruct ) |
✔ |
|
COMPLETE
(
jamba-1.5-mini ) |
✔ |
|
COMPLETE
(
jamba-1.5-large ) |
||
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_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
(弗吉尼亚北部)
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
EMBED_TEXT_768
(
snowflake-arctic-embed-m-v1.5 ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
EMBED_TEXT_768
(
snowflake-arctic-embed-m ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
EMBED_TEXT_1024
(
multilingual-e5-large ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
下表列出了旧版模型。如果您刚刚开始使用,请先从前述表中的模型开始。
函数
(模型)
|
AWS US 西部 2
(俄勒冈)
|
AWS US 东部 1
(弗吉尼亚北部)
|
AWS 欧洲中部 1
(法兰克福)
|
AWS 欧洲西部 1
(爱尔兰)
|
AWS AP 东南部 2
(悉尼)
|
AWS AP 东北部 1
(东京)
|
Azure 东部 US 2
(弗吉尼亚)
|
Azure 西欧
(荷兰)
|
---|---|---|---|---|---|---|---|---|
COMPLETE
(
llama2-70b-chat ) |
✔ |
✔ |
✔ |
✔ |
✔ |
|||
COMPLETE
(
llama3-8b ) |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
||
COMPLETE
(
llama3-70b ) |
✔ |
✔ |
✔ |
✔ |
✔ |
|||
COMPLETE
(
mistral-large ) |
✔ |
✔ |
✔ |
✔ |
✔ |
成本注意事项¶
Snowflake Cortex AI 函数根据处理的词元数产生计算成本。请参阅 Snowflake 服务使用表,以了解每个函数的每百万个词元消耗的 credit 成本。
词元是 Snowflake Cortex AI 函数处理的最小文本单位,大约等于四个字符的文本。原始输入或输出文本与词元的等价性可能因模型而异。
对于在响应中生成新文本的函数(AI_COMPLETE、AI_CLASSIFY、AI_FILTER、AI_AGG、AI_SUMMARIZE 和 TRANSLATE),输入和输出词元都会统计在内。
对于 Cortex Guard,仅统计输入词元。输入词元的数量基于 LLM 函数中使用的每个 COMPLETE 模型的输出词元的数量。
对于 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 调用计算一次。
对于 PARSE_DOCUMENT (SNOWFLAKE.CORTEX),按处理的文档页数计费。
TRY_COMPLETE (SNOWFLAKE.CORTEX) 不会产生错误处理成本。这意味着如果 TRY_COMPLETE(SNOWFLAKE.CORTEX) 函数返回 NULL,则不会产生任何成本。
COUNT_TOKENS (SNOWFLAKE.CORTEX) 只会产生运行函数的计算成本。不会产生额外的令牌成本。
对于支持图像或音频等媒体文件的模型:
音频文件按每秒钟音频 50 个令牌计费。
图像的令牌等价性由所用模型决定。有关更多信息,请参阅 AI图像成本注意事项。
Snowflake 建议在使用较小仓库(不大于 MEDIUM)的情况下执行调用 Snowflake Cortex AISQL 函数或 Cortex PARSE_DOCUMENT 函数的查询,因为较大的仓库不会提高性能。在执行调用 Snowflake Cortex LLM 函数的查询时,与保持仓库活动相关的成本将继续适用。有关计算成本的一般信息,请参阅 了解计算成本。
跟踪 AI 服务的成本¶
要跟踪账户中用于 AI 服务(包括 LLM 函数)的 credit,请使用 METERING_HISTORY 视图:
SELECT *
FROM SNOWFLAKE.ACCOUNT_USAGE.METERING_DAILY_HISTORY
WHERE SERVICE_TYPE='AI_SERVICES';
跟踪 AISQL 函数的 credit 使用量¶
要查看每个 AISQL 函数调用的 credit 和词元使用量,请使用 CORTEX_FUNCTIONS_USAGE_HISTORY 视图:
SELECT *
FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_USAGE_HISTORY;
您还可以在 Snowflake 账户中查看每次查询的 credit 和令牌使用量。查看每次查询的 credit 和令牌使用量可帮助您确定使用 credit 和令牌最多的查询。
以下示例查询使用 CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY 视图 以显示您账户中所有查询的 Credit 和词元使用量。
SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY;
您还可以使用同一视图查看特定查询的 Credit和词元使用量。
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
。
使用量配额¶
备注
没有有效付款方式(例如试用账户)的按需 Snowflake 账户每天只能使用 10 个 Credit,用于使用 Snowflake Cortex AISQL。要取消此限制,请 将试用账户转为付费账户。
管理成本¶
在调用 Snowflake Cortex AISQL 函数时,Snowflake 建议使用不大于 MEDIUM 的仓库。使用不必要的较大仓库不会提高性能,但可能会导致不必要的成本。由于产品更新在即,此建议将来可能不适用。
模型限制¶
Snowflake Cortex 使用的模型具有大小限制,如下表所述。大小以词元数指定。词元通常表示大约四个字符的文本,因此限制对应的单词数小于词元数。超过限制的输入将导致错误。
模型可以生成的输出的最大大小受以下限制:
模型的输出词元限制。
模型使用输入词元后上下文窗口中的可用空间。
例如,claude-3-5-sonnet
具有 200,000 个词元的上下文窗口。如果使用 100,000 个词元进行输入,则模型最多可以生成 8,192 个词元。但是,如果使用 195,000 个词元作为输入,则模型最多只能生成 5,000 个词元,总共 200,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 |
|
|
8,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_FILTER |
Snowflake 托管模型 |
128,000 |
不适用 |
AI_CLASSIFY / CLASSIFY_TEXT |
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 COMPLETE 函数支持多种不同功能、延迟和成本的模型。 这些模型经过精心挑选,符合常见的客户用例。要实现最佳的 每 credit 性能,请选择与任务的内容大小和复杂性正确匹配的模型。以下是可用模型的简要概述。
大型模型¶
如果您不确定从哪里开始,请先尝试功能最强大的模型,以建立评估其他模型的基准。claude-3-7-sonnet
、reka-core
和 mistral-large2
是 Snowflake Cortex 提供的最强大的模型,它们将让您很好地了解最先进的模型可以做什么。
Claude 3-7 Sonnet
在一般推理和多模态能力方面处于领先地位。它在需要跨领域和模态推理的任务中表现优于其前几代。您可以利用其庞大的输出容量,从结构化或非结构化查询中获取更多信息。它的推理能力和大型上下文窗口使其非常适合代理工作流程。deepseek-r1
是一个基于大规模强化学习 (RL) 训练的基础模型,未经过监督微调 (SFT)。它在数学、代码和推理任务上均能实现高性能表现。要访问模型,请将 跨区域推理参数 设为AWS_US
。mistral-large2
是 Mistral AI 先进的大型语言模型,具有极强的推理能力。与mistral-large
相比,它在代码生成、数学、推理方面的能力要强得多,并提供更强大的多语言支持,非常适合需要大量推理能力或高度专业化的复杂任务,例如合成文本生成、代码生成和多语言文本分析。llama3.1-405b
是来自 Meta 的llama3.1
模型系列的开源模型,具有 128000 的大型上下文窗口。它在长文档处理、多语言支持、合成数据生成和模型提取方面表现出色。snowflake-llama3.1-405b
是基于开源 llama3.1 模型衍生的模型。它使用由 Snowflake AI 研究团队开发的<SwiftKV optimizations https://www.snowflake.com/en/blog/up-to-75-lower-inference-cost-llama-meta-llm/>
,能够将推理成本降低高达 75%。SwiftKV 以最小的精度损失实现更高的吞吐量性能。
中型模型¶
llama3.1-70b
是一种开源模型,具有先进的性能,非常适合聊天应用程序、内容创建和企业应用程序。它是一种高性能、高性价比的模型,可通过 128000 的上下文窗口实现各种用例。llama3-70b
仍受支持,其上下文窗口为 8000。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 实验室构建,可有效满足企业需求。它经过优化,可提供一个 256000 的词元上下文窗口,具有低成本和低延迟特性,使其成为对冗长文档和广泛知识库进行总结、问答和实体提取等任务的理想选择。AI21 Jamba 1.5 系列模型是符合基础模型的先进混合型 SSM Transformer 指令。上下文长度为 256000 的
jamba-1.5-mini
和jamba-1.5-large
支持结构化输出 (JSON) 和有根据的生成等用例。
小型模型¶
llama3.2-1b
和llama3.2-3b
模型支持上下文长度为 128000 的词元,并且在摘要、指令遵循和重写任务等用例方面是同类产品中的佼佼者。Llama 3.2 模型提供多语言功能,支持英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。llama3.1-8b
非常适合需要中低等推理的任务。它是一个轻量级、超快速模型,具有 128000 的上下文窗口。llama3-8b
和llama2-70b-chat
仍然是受支持的模型,可以提供较小的上下文窗口,以及相对较低的准确度。mistral-7b
非常适合需要快速完成的最简单的摘要、结构化和问答任务。它通过其 32000 上下文窗口为多页文本提供低延迟和高吞吐量处理。gemma-7b
适用于简单的代码和文本完成任务。它提供 8,000 个词元的上下文窗口,但在该限制内功能惊人强大,而且成本效益极高。
下表介绍了常见模型在各种基准测试中的表现,包括 Snowflake Cortex COMPLETE 提供的模型和其他一些常见模型。
模型 |
上下文窗口
(词元)
|
MMLU
(推理)
|
HumanEval
(编码)
|
GSM8K
(算术推理)
|
Spider 1.0
(SQL)
|
---|---|---|---|---|---|
GPT 4.o (https://openai.com/index/hello-gpt-4o/) |
128,000 |
88.7 |
90.2 |
96.4 |
- |
Claude 3.5 Sonnet (https://www.anthropic.com/claude) |
200,000 |
88.3 |
92.0 |
96.4 |
- |
llama3.1-405b (https://github.com/meta-llama/llama-models/blob/main/models/llama3_1/MODEL_CARD.md) |
128,000 |
88.6 |
89 |
96.8 |
- |
reka-core (https://arxiv.org/pdf/2404.12387) |
32,000 |
83.2 |
76.8 |
92.2 |
- |
llama3.1-70b (https://github.com/meta-llama/llama-models/blob/main/models/llama3_1/MODEL_CARD.md) |
128,000 |
86 |
80.5 |
95.1 |
- |
mistral-large2 (https://mistral.ai/news/mistral-large-2407/) |
128,000 |
84 |
92 |
93 |
- |
reka-flash (https://arxiv.org/pdf/2404.12387) |
100,000 |
75.9 |
72 |
81 |
- |
llama3.1-8b (https://github.com/meta-llama/llama-models/blob/main/models/llama3_1/MODEL_CARD.md) |
128,000 |
73 |
72.6 |
84.9 |
- |
mixtral-8x7b (https://mistral.ai/news/mixtral-of-experts/) |
32,000 |
70.6 |
40.2 |
60.4 |
- |
jamba-instruct (https://www.ai21.com/jamba) |
256,000 |
68.2 |
40 |
59.9 |
- |
jamba-1.5-mini (link removed) |
256,000 |
69.7 |
- |
75.8 |
- |
jamba-1.5-large (link removed) |
256,000 |
81.2 |
- |
87 |
- |
4,096 |
67.3 |
64.3 |
69.7 |
79 |
|
llama3.2-1b (https://github.com/meta-llama/llama-models/blob/main/models/llama3_2/MODEL_CARD.md) |
128,000 |
49.3 |
- |
44.4 |
- |
llama3.2-3b (https://github.com/meta-llama/llama-models/blob/main/models/llama3_2/MODEL_CARD.md) |
128,000 |
69.4 |
- |
77.7 |
- |
gemma-7b (link removed) |
8,000 |
64.3 |
32.3 |
46.4 |
- |
mistral-7b (https://mistral.ai/news/announcing-mistral-7b/) |
32,000 |
62.5 |
26.2 |
52.1 |
- |
GPT 3.5 Turbo* |
4,097 |
70 |
48.1 |
57.1 |
- |
以前的模型版本¶
Snowflake Cortex COMPLETE 函数还支持以下较旧的模型版本。我们建议使用最新的模型版本,而不是此表中列出的版本。
模型 |
上下文窗口
(词元)
|
MMLU
(推理)
|
HumanEval
(编码)
|
GSM8K
(算术推理)
|
Spider 1.0
(SQL)
|
---|---|---|---|---|---|
mistral-large (https://mistral.ai/news/mistral-large/) |
32,000 |
81.2 |
45.1 |
81 |
81 |
llama-2-70b-chat (link removed) |
4,096 |
68.9 |
30.5 |
57.5 |
- |
将 Snowflake Cortex AISQL 与 Python 一起使用¶
您可以在 Snowpark Python API 中使用 Snowflake Cortex AISQL 函数。在 API 中,您可以使用函数对文本和图像数据进行分类、汇总和筛选。
包括以下函数:
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()
备注
请使用围绕具体用例展开的详细任务描述。例如,“Summarize the customer feedback for an investor report”。
ai_classify()
函数获取文本或图像并将其分类到您定义的类别中。
以下示例将旅行评论分为“travel”和“cooking”等类别。该函数采用一列文本和一个类别列表来对文本进行分类。
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()
函数评估自然语言条件并返回 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()
备注
可以对字符串和文件进行筛选。对于动态提示,使用 prompt() 函数。有关更多信息,请参阅 `Snowpark Python 参考<https://docs.snowflake.com/developer-guide/snowpark/reference/python/latest/snowpark/index>`_。
在 Snowpark ML 版本 1.1.2 及更高版本中,仍然支持现有的 Snowpark ML 函数。请参阅 在本地使用 Snowflake ML,以了解有关设置 Snowpark ML 的说明。
如果在 Snowflake 之外运行 Python 脚本,则必须创建 Snowpark 会话才能使用这些函数。有关说明,请参阅 连接到 Snowflake。
以下 Python 示例演示了如何对单个值调用 Snowflake Cortex AI 函数:
from snowflake.cortex import Complete, ExtractAnswer, 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(ExtractAnswer(text, "When was snowflake founded?"))
print(Sentiment("I really enjoyed this restaurant. Fantastic service!"))
print(Summarize(text))
print(Translate(text, "en", "fr"))
在使用 COMPLETE 函数时,可以传递影响模型超参数的选项。以下 Python 示例说明调用 COMPLETE 函数的情况,调用时修改了模型可以生成的最大输出词元数:
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
中)和一个包含文本列 abstract_text
的表 articles
,并会创建一个新列 ``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 目前在 Python 中不受支持。
将 Snowflake Cortex AI 函数与 Snowflake CLI 一起使用¶
Snowflake Cortex AISQL 可在 Snowflake CLI 版本 2.4.0 及更高版本中使用。有关使用 Snowflake CLI 的更多信息,请参阅 隆重推出 Snowflake CLI。
以下示例说明了如何在单个值上使用 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 commands。
法律声明¶
输入和输出的 Data Classification 如下表所示。
输入 Data Classification |
输出 Data Classification |
名称 |
---|---|---|
Usage Data |
Customer Data |
正式发布的功能是涵盖的 AI 功能。预览版功能属于预览版 AI 功能。[1] |
有关更多信息,请参阅 Snowflake AI 和 ML。