管理环境 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

管理环境

Amazon SageMaker Studio Lab 为您的 Studio Lab 笔记本实例提供预装环境。通过环境,您可以使用要使用的软件包启动一个 Studio Lab 笔记本实例。具体方法是在环境中安装软件包,然后选择环境作为内核。

Studio Lab 为您预装了各种环境。如果您想使用已包含机器学习 (ML) 工程师和数据科学家使用的许多常用软件包的完全托管环境,通常会希望使用 sagemaker-distribution 环境。否则,如果您想对自己的环境进行持续自定义,可以使用 default 环境。有关可用的预装 Studio Lab 环境的更多信息,请参阅Studio Lab 预装环境

您可以通过向环境中添加新的软件包(或库)来自定义环境。您还可以从 Studio Lab 创建新环境、导入兼容环境、重置环境以创建空间等。

以下命令用于在 Studio Lab 终端中运行。不过,在安装软件包时,强烈建议将其安装在 Studio Lab Jupyter 笔记本中,以确保软件包安装在预期环境中。要在 Jupyter 笔记本中运行这些命令,请在运行单元前在命令前加上 % 前缀。例如,终端中的代码片段 pip list 与 Jupyter 笔记本中的代码片段 %pip list 相同。

以下各节将介绍有关 default conda 环境的信息、如何自定义以及如何添加和删除 conda 环境。有关可安装到 Studio Lab 的示例环境列表,请参阅创建自定义 conda 环境。要在 Studio Lab 中使用这些示例环境 YAML 文件,请参阅步骤 4:在 Studio 中安装您的 Studio Lab conda 环境

默认环境

Studio Lab 使用 conda 环境来封装运行笔记本所需的软件包。您的项目包含一个名为 default 的默认 conda 环境,该环境具有 IPython 内核。该环境是 Jupyter 笔记本的默认内核。

查看环境

要查看 Studio Lab 中的环境,可以使用终端或 Jupyter 笔记本。以下命令将用于 Studio Lab 终端。如果您希望在 Jupyter 笔记本中运行相应命令,请参阅管理环境

打开 Studio Lab 终端,方法是打开文件浏览器 ( ) 面板,选择文件浏览器顶部菜单上的加号 (+) 以打开 Launcher,然后选择终端。在 Studio Lab 终端运行以下命令,列出 conda 环境。

conda env list

该命令将输出 conda 环境列表及其在文件系统中的位置。当您登录到 Studio Lab 时,会自动激活 studiolab conda 环境。以下是登录后列出的环境示例。

# conda environments: # default /home/studio-lab-user/.conda/envs/default studiolab * /home/studio-lab-user/.conda/envs/studiolab studiolab-safemode /opt/amazon/sagemaker/safemode-home/.conda/envs/studiolab-safemode base /opt/conda sagemaker-distribution /opt/conda/envs/sagemaker-distribution

* 标记已激活的环境。

创建、激活和使用新的 conda 环境

如果您想为不同的使用案例维护多个环境,则可以在项目中创建新的 conda 环境。以下各节将介绍如何创建和激活新的 conda 环境。有关展示如何创建自定义环境的 Jupyter 笔记本,请参阅在 SageMaker Studio Lab 中设置自定义环境

注意

维护多个环境会占用 Studio Lab 的可用内存。

创建 conda 环境

要创建 conda 环境,请在终端运行以下 conda 命令。此示例使用 Python 3.9 创建了一个新环境。

conda create --name <ENVIRONMENT_NAME> python=3.9

创建 conda 环境后,您可以在环境列表中查看该环境。有关如何查看环境列表的更多信息,请参阅查看环境

激活 conda 环境

要激活任何 conda 环境,请在终端运行以下命令。

conda activate <ENVIRONMENT_NAME>

运行此命令后,使用 conda 或 pip 安装的所有软件包都会安装到环境中。有关安装软件包的更多信息,请参阅自定义环境

使用 conda 环境

要在笔记本中使用新的 conda 环境,请确保环境中安装了 ipykernel 软件包。

conda install ipykernel

在环境中安装 ipykernel 软件包后,可以选择该环境作为笔记本的内核。

您可能需要重启 JupyterLab 才能看到作为内核可用的环境。方法是在 Studio Lab 顶部菜单中选择 Amazon SageMaker Studio Lab,然后选择重新启动 JupyterLab...

从 Studio Lab Launcher 创建新笔记本时,可以在笔记本下选择内核。有关 Studio Lab UI 的概述,请参阅Amazon SageMaker Studio Lab UI 概述

打开 Jupyter 笔记本后,可以从顶部菜单中选择内核,然后选择更改内核...

使用 Studio Lab 环境示例

Studio Lab 通过 SageMaker Studio Lab Examples 存储库提供自定义环境示例。下面将介绍如何克隆和构建这些环境。

  1. 按照使用 GitHub 资源中的说明克隆 SageMaker Studio Lab Examples GitHub 存储库。

  2. 在 Studio Lab 中,选择左侧菜单上的文件浏览器图标 ( ),这样文件浏览器面板就会显示在左侧。

  3. 在文件浏览器中,导航到 studio-lab-examples/custom-environments 目录。

  4. 打开要构建的环境的目录。

  5. 右键单击文件夹中的 .yml 文件,然后选择构建 conda 环境

  6. 现在,您可以在 conda 环境构建完成后将其作为内核使用。有关如何将现有环境用作内核的说明,请参阅创建、激活和使用新的 conda 环境

自定义环境

您可以根据需要安装或删除扩展程序和软件包,从而自定义您的环境。Studio Lab 随附了预装软件包的环境,使用现有环境可以节省时间和内存,因为预装软件包不占用 Studio Lab 可用内存。有关可用的预装 Studio Lab 环境的更多信息,请参阅Studio Lab 预装环境

default 环境中安装的任何扩展程序和软件包都会在项目中持续存在,因此不需要为每个项目运行时会话安装软件包。但是,安装在 sagemaker-distribution 环境中的扩展程序和软件包将不会持续存在,因此您需要在下一次会话中安装新的软件包。因此,强烈建议在笔记本中安装软件包,以确保软件包安装在预期的环境中。

要查看您的环境,请运行命令 conda env list

要激活您的环境,请运行命令 conda activate <ENVIRONMENT_NAME>

要查看环境中的软件包,请运行命令 conda list

安装软件包

强烈建议在 Jupyter 笔记本中安装软件包,以确保软件包安装在预期的环境中。要在 Jupyter 笔记本的环境中安装其他软件包,请在 Jupyter 笔记本的单元格中运行以下命令之一。这些命令在当前激活的环境中安装软件包。

  • %conda install <PACKAGE>

  • %pip install <PACKAGE>

我们不建议使用 !pip!conda 命令,因为当您有多个环境时,这些命令可能以意想不到的方式运行。

在环境中安装新软件包后,可能需要重启内核,以确保软件包在笔记本中正常运行。方法是在 Studio Lab 顶部菜单中选择 Amazon SageMaker Studio Lab,然后选择重新启动 JupyterLab...

删除软件包

要删除软件包,请运行命令

%conda remove <PACKAGE_NAME>

此命令还将删除任何依赖 <PACKAGE_NAME> 的软件包,除非可以找到没有该依赖关系的替代软件包。

要删除环境中的所有软件包,请运行命令

conda deactivate && conda env remove --name <ENVIRONMENT_NAME>

刷新 Studio Lab

要刷新 Studio Lab,请删除所有环境和文件。

  1. 列出所有 conda 环境。

    conda env list
  2. 激活基础环境。

    conda activate base
  3. 删除 conda 环境列表中除基础环境之外的每个环境。

    conda remove --name <ENVIRONMENT_NAME> --all
  4. 删除 Studio Lab 上的所有文件。

    rm -rf *.*