管理包和运行时¶
Snowflake 笔记本在针对可扩展 AI/ML 开发优化的预构建容器环境中运行,并由 Snowflake 容器运行时提供支持。
Python 版本¶
Snowflake 笔记本支持 Python 3.10 至 3.12。创建笔记本服务时,请选择最适合您工作负载要求的 Python 版本。
预安装的包¶
Snowflake Container Runtime 包含大约 100 个包和库,支持在 Snowflake 内部执行广泛的 ML 开发任务。这些包在 Snowflake 管理的 CPU 和 GPU 基础设施上原生运行。
要查看预安装的包,请在 Python 单元格或笔记本终端中运行 pip freeze。
安装附加包¶
Snowflake 支持从多个来源安装包。
来自外部存储库¶
在配置了用于安全访问存储库的外部访问集成 (EAIs) 后,您可以直接从外部源(例如 PyPI)安装包。除了预安装的运行时外,用户还可以访问全面的包生态系统,从而确保与外部存储库的安全连接。
您可以在 Python 单元格或笔记本终端中运行 pip install。
有关更多信息,请参阅 为 Snowflake Notebooks 设置外部访问。
从 requirements.txt 安装¶
您可以在 requirements.txt 文件中指定并安装所需的包版本,以确保一致的环境设置。使用以下命令安装它们:
!pip install -r requirements.txt
备注
如果 requirements.txt 中指定的包版本与受支持的 预安装包 版本冲突,Python 环境可能会崩溃。安装前请验证兼容性。
来自工作区文件¶
您可以下载或构建 .whl 或 .py 文件,将它们上传到您的工作区,并进行安装或导入。
Wheel files (.whl): Upload the
.whlfile and install it:!pip install file_name.whl
如果包包含尚未安装的依赖关系,请上传完整的依赖关系树(直接上传到工作区或暂存区)。或者,附加一个 EAI,允许访问可以下载包的存储库(例如 PyPI)。
Python files (.py): Modules stored in your workspace can be imported directly for sharing utilities and functions across notebooks. For example:
from my_utils import my_func
来自 Snowflake 暂存区¶
暂存区利用现有的 Snowflake 数据存储和包文件的治理控制,提供安全且受监管的包部署。使用 Snowpark 会话将包文件从 Snowflake 暂存区检索到容器环境中,以便导入和使用。例如:
from snowflake.snowpark.context import get_active_session
import sys
session = get_active_session()
session.file.get("@db.schema.stage_name/math_tools.py", "/tmp")
sys.path.append("/tmp")
import math_tools
math_tools.add_one(3)
运行时管理¶
运行时固定¶
所有笔记本服务都固定在创建时选择的运行时,除非您通过编辑服务明确更改它。例如,在 Runtime 2.0 上创建的笔记本服务在发布新的运行时版本时不会自动升级。
运行时漏洞扫描¶
Snowflake 每天都会扫描运行时镜像以查找安全漏洞。检测到高危或严重的常见漏洞与披露 (CVEs) 后,会在 30 天内通过发布新的运行时版本来解决。
现有的笔记本服务可以继续使用检测到 CVEs 的运行时。但是,在创建新的笔记本服务时,无法选择已知存在 CVEs 的运行时。