

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

# JupyterLab 用户指南
<a name="studio-updated-jl-user-guide"></a>

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

JupyterLab 支持私有空间和共享空间。专用空间的作用域为域中的单个用户。共享空间可让域内其他用户与您实时协作。有关 Studio 空间的信息，请参阅 [亚马逊 SageMaker Studio 空间](studio-updated-spaces.md)。

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

您的管理员已为您的空间配置了默认 Amazon EBS 存储设置。默认存储容量为 5 GB，但您可以增加获得的空间。您可以向管理员咨询，他们会为您提供指导。

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

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

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

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

Amazon EBS 卷的持久性与实例的生命周期无关。您在更换实例时不会丢失数据。使用 conda 和 pip 软件包管理库创建可重现的自定义环境，即使切换实例类型也能保持不变。

打开后 JupyterLab，您可以使用终端配置您的环境。要打开终端，请导航至**启动器**，然后选择**终端**。

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

**注意**  
在 Studio 中，您可以使用生命周期配置来自定义环境，但我们建议您使用软件包管理器。使用生命周期配置是一种更容易出错的方法。添加或删除依赖关系比调试生命周期配置脚本更容易。它还可以增加 JupyterLab 启动时间。  
有关生命周期配置的信息，请参阅 [生命周期配置 JupyterLab](jl-lcc.md)。

**Topics**
+ [创建空间](studio-updated-jl-user-guide-create-space.md)
+ [配置空间](studio-updated-jl-user-guide-configure-space.md)
+ [使用软件包管理器自定义环境](studio-updated-jl-user-guide-customize-package-manager.md)
+ [清理 conda 环境](studio-updated-jl-clean-up-conda.md)
+ [在实例类型之间共享 conda 环境](studio-updated-jl-create-conda-share-environment.md)
+ [使用 Amazon Q 加快机器学习工作流程](studio-updated-jl-user-guide-use-amazon-q.md)

# 创建空间
<a name="studio-updated-jl-user-guide-create-space"></a>

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

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

**创建空间并打开 JupyterLab**

1. 打开 Studio。有关打开 Studio 的信息，请参阅 [启动亚马逊 SageMaker Studio](studio-updated-launch.md)。

1. 选择 **JupyterLab**。

1. 选择 “**创建 JupyterLab 空间**”。

1. 对于**名称**，请指定空间的名称。

1. (可选）选择**与我的域共享**以创建共享空间。

1. 选择**创建空间**。

1. (可选）对于**实例**，指定运行空间的 Amazon EC2 实例。

1. (可选）对于**映像**，请指定管理员提供的映像，以自定义环境。
**重要**  
允许 Studio 用户创建空间的自定义 IAM 策略还必须授予列出映像 (`sagemaker: ListImage`) 的权限，以便查看自定义映像。要添加权限，请参阅《AWS Identity and Access Management用户指南》**中的[添加或移除身份权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)。  
[AWS 亚马逊 A SageMaker I 的托管策略](security-iam-awsmanpol.md)授予创建 SageMaker AI 资源的权限已经包括在创建这些资源时列出图像的权限。

1. (可选）对于**空间设置**，请指定以下内容：
   + **存储空间（GB）**：最大 100 GB 或管理员指定的容量。
   + **生命周期配置**：管理员指定的生命周期配置。
   + **附加自定义 EFS 文件系统**：您的管理员可访问的 Amazon EFS。

1. 选择**运行空间**。

1. 选择**打开 JupyterLab**。

# 配置空间
<a name="studio-updated-jl-user-guide-configure-space"></a>

创建 JupyterLab 空间后，您可以将其配置为执行以下操作：
+ 更改实例类型。
+ 更改存储容量。
+ （需要管理员设置）使用自定义映像。
+ （需要管理员设置）使用生命周期配置。
+ （需要管理员设置）附加自定义 Amazon EFS。

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

**配置空间**

1. 在 Studio 中，导航到 JupyterLab 应用程序页面。

1. 选择空间名称。

1. (可选）对于**映像**，请指定管理员提供的映像，以自定义环境。
**重要**  
允许 Studio 用户创建空间的自定义 IAM 策略还必须授予列出映像 (`sagemaker: ListImage`) 的权限，以便查看自定义映像。要添加权限，请参阅《AWS Identity and Access Management用户指南》**中的[添加或移除身份权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)。  
[AWS 亚马逊 A SageMaker I 的托管策略](security-iam-awsmanpol.md)授予创建 SageMaker AI 资源的权限已经包括在创建这些资源时列出图像的权限。

1. (可选）对于**空间设置**，请指定以下内容：
   + **存储空间（GB）**：最高 100 GB 或管理员为空间配置的容量。
   + **生命周期配置**：管理员提供的生命周期配置。
   + **附加自定义 EFS 文件系统**：您的管理员可访问的 Amazon EFS。

1. 选择**运行空间**。

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

# 使用软件包管理器自定义环境
<a name="studio-updated-jl-user-guide-customize-package-manager"></a>

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

## 创建并激活自定义环境
<a name="studio-updated-jl-create-basic-conda"></a>

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

基本的 conda 环境拥有 SageMaker AI 工作流程所需的最少软件包数量。使用以下模板创建基本的 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
```

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

![\[test-env 环境显示在屏幕右上角。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/juptyer-notebook-environment-location.png)


要更改环境，请选择它，然后从下拉菜单中选择一个选项。

![\[复选标记及其相应文本显示的是您之前创建的示例环境。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/jupyter-notebook-select-env.png)


选择**选择**为环境选择内核。

## 使用特定 Python 版本创建 conda 环境
<a name="studio-updated-jl-create-conda-version"></a>

清理不使用的 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 环境
<a name="studio-updated-jl-create-conda-specific-packages"></a>

使用下面的模板创建带有特定 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
<a name="studio-updated-jl-create-conda-clone"></a>

克隆您的 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
<a name="studio-updated-jl-create-conda-yaml"></a>

根据参考 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 env create -f environment.yml

# activate your env
conda activate py311-new-env
```

# 清理 conda 环境
<a name="studio-updated-jl-clean-up-conda"></a>

清理不使用的 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
```

# 在实例类型之间共享 conda 环境
<a name="studio-updated-jl-create-conda-share-environment"></a>

您可以将 conda 环境保存到 Amazon EBS 卷之外的 Amazon EFS 目录中，从而共享 conda 环境。其他用户可以访问您保存环境的目录。

**重要**  
共享环境有其局限性。例如，我们不推荐在 GPU Amazon EC2 实例上运行的环境，而推荐在 CPU 实例上运行的环境。

使用以下命令作为模板，指定创建自定义环境的目标目录。您正在特定路径内创建一个 conda。在 Amazon EFS 目录中创建。您可以启动一个新实例，在 Amazon EFS 中执行 conda 激活路径。

```
# 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
```

# 使用 Amazon Q 加快机器学习工作流程
<a name="studio-updated-jl-user-guide-use-amazon-q"></a>

Amazon Q 开发者版是您进行机器学习开发的人工智能驱动工具。使用 Amazon Q 开发者版，您可以：
+ 获取有关独立使用 SageMaker 人工智能功能或与其他 AWS 服务结合使用人工智能功能的 step-by-step指导。
+ 获取示例代码以开始执行机器学习任务，例如数据准备、训练、推理和 MLOps。
+ 接受故障排除帮助，以调试和解决运行代码时遇到的错误。

Amazon Q Developer 可以无缝集成到您的 JupyterLab 环境中。要使用 Amazon Q Develop **er**，请从您的 JupyterLab 环境或代码编辑器环境的左侧导航栏中选择 Q。

如果您没有看到 **Q** 图标，则需要管理员为您设置。有关设置 Amazon Q 开发者版的更多信息，请参阅 [为用户设置 Amazon Q 开发者版](studio-updated-amazon-q-admin-guide-set-up.md)。

Amazon Q 会自动提供建议，帮助您编写代码。您还可以通过聊天界面征求建议。