在应用程序中创建、训练和使用 Snowflake ML 模型¶
本主题提供了如何使用 scikit-learn Python 包在 Snowflake Native App 中训练 Snowflake ML 模型的示例。本主题中的示例可用于根据使用者或提供商账户中的数据训练模型。
创建版本化架构来保存存储过程¶
在安装脚本中创建包含存储过程的版本化架构,如以下示例所示:
为存储过程创建版本化架构
创建存储过程来创建和训练模型¶
为您用于训练模型的 Python 函数创建存储过程,如以下示例所示:
此示例创建了一个名为
py_log_model的存储过程,并声明了使用scikit-learn训练模型所需的 Python 包:
snowflake-snowpark-python
scikit-learn
snowflake-ml-python
pandas
numpy
xgboost
创建存储过程后,将以下代码添加到存储过程的主体中:
将 Python 代码添加到存储过程的主体中
log_model函数执行以下操作:
使用
pandas``和 ``numpy创建 DataFrame 来提供模型的训练数据。创建 XGBoost 的实例用作数据的训练算法。
调用 XGBoost 的
fit()函数来创建模型并在数据集上对其进行训练。调用 Snowflake Model Registry 的
log_model()函数,将模型添加到模型注册表中。备注
应用程序创建的模型必须存储在模型注册表中。应用程序无法访问存储在暂存区的模型。
可选:要允许使用者运行存储过程来训练模型,请授予存储过程的 USAGE 权限:
创建存储过程来运行模型¶
为用于调用模型的 Python 函数创建存储过程。
添加用于调用模型的 Python 代码
run_model函数执行以下操作:
运行
load_iris()函数来 加载虹膜机器学习数据集 (https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_iris.html)。使用
pandas以根据虹膜数据集创建 DataFrame。运行
get_model()函数以获取模型注册表。在模型上运行预测函数。
返回结果。
可选:要允许使用者运行存储过程来训练模型,请授予存储过程的 USAGE 权限:
运行存储过程¶
如果应用程序向应用程序角色授予这些存储过程的 USAGE 权限,则使用者可以调用存储过程来训练和运行模型,如以下示例所示:
此命令调用 py_log_model 存储过程来训练模型。
此命令调用 py_call_predict 存储过程来调用模型上的预测函数。