在 Snowflake Native App 中使用 Snowflake 机器学习模型

本主题介绍如何在 Snowflake Native App 中使用 Snowflake ML 模型。它还描述了如何从应用程序调用 Snowflake Cortex 函数。

在 Snowflake Native App 中使用 Snowpark ML 的概述

Snowflake ML 是一组集成的功能,可在单个平台中基于您治理的数据进行端到端机器学习。您可以在 Snowflake Native App 中使用此功能。

Snowflake Native App Framework 支持以下用例:

  • 提供商在应用程序中包含训练算法,但不包括经过训练的模型。提供商在应用程序中包含模型的源代码,例如线性回归或逻辑回归。

    安装应用程序后,对使用者账户中的数据进行训练,例如通过调用模型的 fit() 方法。

    有关更多信息,请参阅 在应用程序中创建、训练和使用 Snowflake ML 模型

  • 提供商与使用者共享数据,并在应用程序中包含训练算法。安装后,该应用程序会根据与该应用程序共享的使用者账户中的数据训练模型

    有关更多信息,请参阅 在应用程序中创建、训练和使用 Snowflake ML 模型

  • 提供商根据其账户中的数据训练模型,并将这些模型包含在应用程序中。安装应用程序后,使用者可以直接使用该模型,例如调用模型的 :predict() 方法。

    有关更多信息,请参阅 在应用程序中加入经过训练的模型

在应用程序中使用 Snowflake ML 时的限制

在应用程序中使用 Snowflake ML 时适用以下限制:

  • 目前仅支持基于仓库的模型。

  • 提供商必须使用 Snowflake Model Registry 与使用者共享模型。诸如 fit() 存储结果之类的 Snowpark ML 功能处于 Snowflake Native Apps 不支持的临时暂存区。

  • 可在仓库内的 Snowpark 沙盒中运行的机器学习算法存在限制。像 TensorFlow 或 PyTorch 等更复杂的机器学习框架无法在这些沙盒中运行。

  • 在提供商的数据集上进行的训练可能无法产生对使用者数据足够有效的模型。根据使用者数据训练模型可以提供更好的结果。

从应用程序调用 Snowflake Cortex 函数

要从应用程序调用 Snowflake Cortex 函数使用者 必须首先向该应用程序授予 CORTEX_USER 数据库角色,如以下示例所示:

GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO APPLICATION my_app;
Copy

备注

提供商应在应用程序清单中提及使用者必须授予 CORTEX_USER 数据库角色。

SNOWFLAKE 数据库中的 CORTEX_USER 数据库角色包含了允许用户调用 Snowflake Cortex LLM 函数的权限。有关更多信息,请参阅 Snowflake Cortex AISQL(包括 LLM 功能)

使用该角色后,应用程序可以调用 Snowflake Cortex 函数,如以下示例所示:

SELECT SNOWFLAKE.CORTEX.TRANSLATE('La plateforme unique de Snowflake élimine les silos de données!','fr','en');
Copy
语言: 中文