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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

JupyterLab 用户指南

本指南向 JupyterLab 用户展示了如何在 SageMaker Studio 中运行分析和机器学习工作流程。您可以获得快速存储,并根据需要向上或向下扩展计算。

JupyterLab 支持私有空间和共享空间。私有空间的作用域仅限于域中的单个用户。共享空间允许您网域中的其他用户与您实时协作。有关 Studio 空间的信息,请参阅亚马逊 SageMaker Studio 空间

要开始使用 JupyterLab,请创建一个空间并启动您的 JupyterLab应用程序。运行 JupyterLab 应用程序的 JupyterLab 空间是一个空间。该 JupyterLab 空间使用单个 Amazon EC2 实例进行计算,使用单个 Amazon EBS 卷进行存储。您空间中的所有内容,例如您的代码、git 配置文件和环境变量,都存储在同一 Amazon EBS 卷上。该卷具有 3000 IOPS,吞吐量为每秒 125 兆字节 (Mbps)。您可以使用快速存储在同一个实例上打开和运行多个 Jupyter 笔记本。您也可以非常快速地在笔记本电脑中切换内核。

您的管理员已为您的空间配置了默认 Amazon EBS 存储设置。默认存储大小为 5 GB,但您可以增加获得的空间量。您可以与管理员交谈,为您提供指导方针。

您可以切换用于运行的 Amazon EC2 实例类型 JupyterLab,根据需要向上或向下扩展计算规模。快速启动实例的启动速度比其他实例快得多。

您的管理员可能会为您提供自定义环境的生命周期配置。您可以在创建空间时指定生命周期配置。

如果您的管理员授予您访问 Amazon EFS 的权限,则可以配置您的 JupyterLab空间来访问它。

默认情况下, JupyterLab 应用程序使用 SageMaker 分发映像。这包括对许多机器学习、分析和深度学习软件包的支持。但是,如果您需要自定义映像,则管理员可以帮助提供对自定义映像的访问权限。

Amazon EBS 卷的持续时间与实例的生命周期无关。更改实例时不会丢失数据。使用 conda 和 pip 包管理库创建可重现的自定义环境,即使您切换实例类型,这些环境也能持续存在。

要开始使用 JupyterLab,请创建一个空间或选择管理员为您创建的空间并打开 JupyterLab。

使用以下步骤创建空间并打开 JupyterLab。

创建空间并打开 JupyterLab
  1. 打开 Studio。有关打开 Studio 的信息,请参阅启动亚马逊 SageMaker Studio

  2. 选择JupyterLab

  3. 选择 “创建 JupyterLab 空间”。

  4. 在 “名称” 中,指定空间的名称。

  5. (可选)选择 “与我的域共享” 以创建共享空间。

  6. 选择 “创建空间”。

  7. (可选)例如,指定运行该空间的 Amazon EC2 实例。

  8. (可选)在 “映像” 中,指定管理员提供的用于自定义环境的映像。

  9. (可选)在 “空间设置” 中,指定以下内容:

    • 存储空间 (GB)-最大 100 GB 或管理员指定的容量。

    • 生命周期配置-管理员指定的生命周期配置。

    • 附加自定义 EFS 文件系统 — 管理员提供访问权限的 Amazon EFS。

  10. 选择 “运行空间”。

  11. 选择 “打开” JupyterLab。

配置空间

创建 JupyterLab 空间后,您可以将其配置为执行以下操作:

  • 更改实例类型。

  • 更改存储量。

  • (需要管理员设置)使用自定义镜像。

  • (需要管理员设置)使用生命周期配置。

  • (需要管理员设置)附上自定义 Amazon EFS。

重要

每次配置 JupyterLab 空间时都必须将其停止。使用以下步骤配置空间。

配置空间
  1. 在 Studio 中,导航到 JupyterLab 应用程序页面。

  2. 选择空间的名称。

  3. (可选)在 “映像” 中,指定管理员提供的用于自定义环境的映像。

  4. (可选)在 “空间设置” 中,指定以下内容:

    • 存储空间 (GB)-最多 100 GB 或管理员为该空间配置的容量。

    • 生命周期配置-管理员提供的生命周期配置。

    • 附加自定义 EFS 文件系统 — 管理员提供访问权限的 Amazon EFS。

  5. 选择 “运行空间”。

当您打开 JupyterLab 应用程序时,您的空间配置已更新。

打开后 JupyterLab,您可以使用终端配置您的环境。要打开终端,请导航到启动器并选择终端

以下是您可以在中配置环境的不同方法的示例 JupyterLab。

注意

在 Studio 中,您可以使用生命周期配置来自定义您的环境,但我们建议改用包管理器。使用生命周期配置是一种更容易出错的方法。添加或删除依赖关系比调试生命周期配置脚本更容易。它还可以增加 JupyterLab 启动时间。

有关生命周期配置的信息,请参阅将生命周期配置与 JupyterLab

使用软件包管理器自定义您的环境

使用 pip 或 conda 自定义您的环境。我们建议使用包管理器而不是生命周期配置脚本。

创建并激活您的自定义环境

本节提供了在中配置环境的不同方法的示例 JupyterLab。

基本的 conda 环境中包含的工作流程所需的最少软件包数量。 SageMaker使用以下模板创建基本的 conda 环境:

# initialize conda for shell interaction conda init # create a new fresh environment conda create --name test-env # check if your new environment is created successfully conda info --envs # activate the new environment conda activate test-env # install packages in your new conda environment conda install pip boto3 pandas ipykernel # list all packages install in your new environment conda list # parse env name information from your new environment export CURRENT_ENV_NAME=$(conda info | grep "active environment" | cut -d : -f 2 | tr -d ' ') # register your new environment as Jupyter Kernel for execution python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env:($CURRENT_ENV_NAME)" # to exit your new environment conda deactivate

下图显示了您创建的环境的位置。

测试环境显示在屏幕的右上角。

要更改您的环境,请选择它并从下拉菜单中选择一个选项。

复选标记及其相应的文本显示了您之前创建的示例环境。

选择 “选择” 为环境选择内核。

清理 conda 环境

清理未使用的 conda 环境可以帮助释放磁盘空间并提高性能。使用以下模板清理 conda 环境:

# list your environments to select an environment to clean conda info --envs # or conda info -e # once you've selected your environment to purge conda remove --name test-env --all # run conda environment list to ensure the target environment is purged conda info --envs # or conda info -e

使用特定 Python 版本创建一个 conda 环境

清理未使用的 conda 环境可以帮助释放磁盘空间并提高性能。使用以下模板清理 conda 环境:

# create a conda environment with a specific python version conda create --name py38-test-env python=3.8.10 # activate and test your new python version conda activate py38-test-env & python3 --version # Install ipykernel to facilicate env registration conda install ipykernel # parse env name information from your new environment export CURRENT_ENV_NAME=$(conda info | grep "active environment" | cut -d : -f 2 | tr -d ' ') # register your new environment as Jupyter Kernel for execution python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env:($CURRENT_ENV_NAME)" # deactivate your py38 test environment conda deactivate

使用一组特定的软件包创建 conda 环境

使用以下模板创建包含特定版本的 Python 和一组包的 conda 环境:

# prefill your conda environment with a set of packages, conda create --name py38-test-env python=3.8.10 pandas matplotlib=3.7 scipy ipykernel # activate your conda environment and ensure these packages exist conda activate py38-test-env # check if these packages exist conda list | grep -E 'pandas|matplotlib|scipy' # parse env name information from your new environment export CURRENT_ENV_NAME=$(conda info | grep "active environment" | cut -d : -f 2 | tr -d ' ') # register your new environment as Jupyter Kernel for execution python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env:($CURRENT_ENV_NAME)" # deactivate your conda environment conda deactivate

从现有环境中克隆 conda

克隆您的 conda 环境以保持其工作状态。您可以在克隆的环境中进行实验,而不必担心在测试环境中引入重大更改。

使用以下命令克隆环境。

# create a fresh env from a base environment conda create --name py310-base-ext --clone base # replace 'base' with another env # activate your conda environment and ensure these packages exist conda activate py310-base-ext # install ipykernel to register your env conda install ipykernel # parse env name information from your new environment export CURRENT_ENV_NAME=$(conda info | grep "active environment" | cut -d : -f 2 | tr -d ' ') # register your new environment as Jupyter Kernel for execution python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env:($CURRENT_ENV_NAME)" # deactivate your conda environment conda deactivate

从参考 YAML 文件中克隆 conda

使用参考 YAML 文件创建 conda 环境。以下是您可以使用的 YAML 文件示例。

# anatomy of a reference environment.yml name: py311-new-env channels: - conda-forge dependencies: - python=3.11 - numpy - pandas - scipy - matplotlib - pip - ipykernel - pip: - git+https://github.com/huggingface/transformers

在下pip面,我们建议仅指定 conda 不可用的依赖项。

使用以下命令从 YAML 文件创建 conda 环境。

# create your conda environment conda create -f environment.yml # activate your env conda activate py311-new-env

在实例类型之间共享环境

您可以通过将 conda 环境保存到 Amazon EBS 卷之外的 Amazon EFS 目录来共享。其他用户可以在您保存环境的目录中访问该环境。

重要

共享您的环境存在限制。例如,我们不建议使用旨在在 GPU Amazon EC2 实例上运行的环境,而不是在 CPU 实例上运行的环境。

使用以下命令作为模板来指定要在其中创建自定义环境的目标目录。你正在特定路径中创建一个 conda。您可以在 Amazon EFS 目录中创建它。您可以启动一个新实例并执行conda激活路径,然后在Amazon EFS中执行此操作。

# if you know your environment path for your conda environment conda create --prefix /home/sagemaker-user/my-project/py39-test python=3.9 # activate the env with full path from prefix conda activate home/sagemaker-user/my-project/py39-test # parse env name information from your new environment export CURRENT_ENV_NAME=$(conda info | grep "active environment" | awk -F' : ' '{print $2}' | awk -F'/' '{print $NF}') # register your new environment as Jupyter Kernel for execution python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env-prefix:($CURRENT_ENV_NAME)" # deactivate your conda environment conda deactivate