适用于 Snowflake ML 的 Python APIs¶
snowflake-ml-python
Python 包提供了连接到各种 Snowflake ML 工作流程组件的 Python APIs,还包括用于构建和训练您自己的模型的 APIs。您可以将这些 APIs 用于您在工作站上最喜欢的 Python IDE 中,也可以用于 Snowsight 工作表或 Snowflake 笔记本中。
小技巧
有关使用此库的端到端工作流程示例,请参阅 使用 Snowpark ML 进行机器学习的简介 (https://quickstarts.snowflake.com/guide/intro_to_machine_learning_with_snowpark_ml_for_python/#0)。
在 Snowflake 笔记本中使用 Snowflake ML¶
Snowflake 笔记本 混合了 Python、SQL 和 Markdown,为数据工作提供了一个易于使用的笔记本界面。要在笔记本中使用 Snowflake ML 功能,请使用笔记本顶部的 Packages 菜单并选择 Anaconda 包 snowflake-ml-python
。
笔记本同时支持 CPU 和 GPU 运行时选项。许多类型的模型都需要或受益于可用的 GPU。
重要
snowflake-ml-python
包及其依赖项必须是贵组织的 包策略 所允许的。
在 Snowsight 工作表中使用 Snowflake ML¶
Snowsight 工作表 为运行 Python 代码提供了一种强大且通用的方法。要在工作表中使用 Snowflake ML 功能,请使用工作表顶部的 Packages 菜单并选择 Anaconda 包 snowflake-ml-python
。
重要
snowflake-ml-python
包及其依赖项必须是贵组织的 包策略 所允许的。
在本地使用 Snowflake ML¶
必须安装 snowflake-ml-python
包,才能在您自己的工作站或 Snowflake 以外的其他地方进行开发。所有 Snowpark ML 功能都在一个包 (snowflake-ml-python
) 中提供。您可以使用 conda
命令从 Snowflake Conda 通道安装该包,也可以使用 pip
从 Python 包索引 (PyPI) 进行安装。从 Conda 通道安装为首选方法。
从 Snowflake Conda 通道安装¶
创建将安装 Snowflake ML 的 Conda 环境。如果您希望使用现有环境,请跳过此步骤。
conda create --name snowpark-ml
激活 Conda 环境:
conda activate snowflake-ml
从 Snowflake Conda 通道安装
snowflake-ml-python
conda install --override-channels --channel https://repo.anaconda.com/pkgs/snowflake/ snowflake-ml-python
小技巧
请尽可能从 Snowflake Conda 通道来安装包,以确保您收到的包已经过 Snowflake ML 验证。
从 PyPI 安装¶
您可以使用标准 Python 包管理器 pip
,从 Python 包索引 (PyPI) 安装 snowflake-ml-python
。
警告
如果您使用的是 Conda 环境,请勿使用此安装程序。请使用 Conda 说明。
创建并激活你的 Python 虚拟环境:
python3 -m virtualenv venv source venv/bin/activate
安装
snowflake-ml-python
包:python -m pip install snowflake-ml-python
安装可选依赖项¶
某些 APIs 需要依赖项,而这些依赖项并未作为 snowflake-ml-python
的依赖项进行安装。默认情况下,已安装 scikit-learn。其他包,例如 LightGBM、XGBoost、Keras、PyTorch 等,都是可选的依赖项。
如果您计划使用 snowflake.ml.modeling.lightgbm
模块,请安装 LightGBM。使用以下命令激活 Conda 环境,并从 Snowflake Conda 通道安装 LightGBM。
conda activate snowflake-ml
conda install --override-channels --channel https://repo.anaconda.com/pkgs/snowflake/ lightgbm
使用以下命令激活虚拟环境,并使用 pip
安装 lightgbm。
source venv/bin/activate
python -m pip install 'snowflake-ml-python[lightgbm]'
设置 Snowpark Python¶
Snowpark Python 是 snowflake-ml-python
的依赖项,并自动随其安装。如果您的系统上未设置 Snowpark Python,您可能需要执行其他配置步骤。有关 Snowpark Python 设置说明,请参阅 为 Snowpark Python 设置开发环境。
连接到 Snowflake¶
在 Python 中使用 Snowflake ML 功能之前,请使用 Snowpark Session
对象连接到 Snowflake。使用 snowflake.ml.utils.connection_params
模块中的 SnowflakeLoginOptions
函数来获取创建会话的配置设置。该函数可从 SnowSQL 配置文件 中的指定连接或您设置的环境变量读取连接设置。它会返回一个包含这些参数的字典,以用于创建连接。
以下示例从 SnowSQL 配置文件中的指定连接 myaccount
读取连接参数。要创建 Snowpark Python 会话,请为 Session
类创建构建器,然后将连接信息传递到该构建器的 configs
方法:
from snowflake.snowpark import Session
from snowflake.ml.utils import connection_params
params = connection_params.SnowflakeLoginOptions("myaccount")
sp_session = Session.builder.configs(params).create()
现在,您可以将会话传递给任何需要它的内容。
小技巧
要从 Snowflake Connector for Python 连接创建 Snowpark Python 会话,请将连接对象传递给会话构建器。这里的 connection
是 Snowflake Connector for Python 连接。
session = Session.builder.configs({"connection": connection}).create()
指定仓库¶
许多 Snowflake ML 功能(例如模型训练或推理)都在 Snowflake 仓库中运行代码。这些操作在您用于连接的会话指定的仓库中运行。例如,如果在 SnowSQL 配置文件 中通过指定连接创建会话,就可以在指定配置中使用 warehousename
参数指定仓库。
如果配置中还不存在仓库设置,可以在创建 Session
对象时添加该设置,如此处所示。
from snowflake.snowpark import Session
from snowflake.ml.utils import connection_params
# Get named connection from SnowSQL configuration file
params = connection_params.SnowflakeLoginOptions(connection_name="my_connection")
# Add warehouse name for model method calls if it's not already present
if "warehouse" not in params:
params["warehouse"] = "mlwarehouse"
sp_session = Session.builder.configs(params).create()
如果会话中没有指定仓库,或者您想要使用其他仓库,请调用会话的 use_warehouse
方法来指定仓库。
sp_session.use_warehouse("mlwarehouse")
API 参考¶
Snowflake ML API 参考 中包含有关所有公开发布的功能的文档。您还可以在交互式 Python 会话中使用 Python 的 help
函数,获得任意 API 的详细 API 文档。例如:
from snowflake.ml.modeling.preprocessing import OneHotEncoder
help(OneHotEncoder)