

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

本指南向 JupyterLab 使用者展示如何在 SageMaker Studio 內執行分析和機器學習工作流程。您可以取得快速儲存並擴增或縮減運算，取決於您的需求。

JupyterLab 同時支援私有和共用空間。私有空間的範圍限定為網域中的單一使用者。共用空間可讓您網域中的其他使用者即時與您合作。如需 Studio 空間的相關資訊，請參閱 [Amazon SageMaker Studio 空間](studio-updated-spaces.md)。

若要開始使用 JupyterLab，請建立空間並啟動您的 JupyterLab 應用程式。執行 JupyterLab 應用程式的空間是 JupyterLab 空間。JupyterLab 空間使用單一 Amazon EC2 執行個體進行運算，並使用單一 Amazon EBS 磁碟區進行儲存。您空間中的所有內容，例如程式碼、git 設定檔和環境變數，都會存放在相同的 Amazon EBS 磁碟區。磁碟區具有 3000 IOPS 和每秒 125 MB (MBps) 的輸送量。您可以使用快速儲存，在同一個執行個體上開啟和執行多個 Jupyter 筆記本。您也可以非常快速地切換筆記本中的核心。

您的管理員已為您的空間設定預設 Amazon EBS 儲存體設定。預設儲存大小為 5 GB，但您可以增加您取得的空間量。您可以與管理員談論，以提供您指導方針。

您可以切換用來執行 JupyterLab 的 Amazon EC2 執行個體類型，根據您的需求擴增或縮減運算。**快速啟動**執行個體的啟動速度比其他執行個體快得多。

您的管理員可能會為您提供生命週期組態，以自訂您的環境。您可以在建立空間時指定生命週期組態。

如果您的管理員可讓您存取 Amazon EFS，您可以設定 JupyterLab 空間來存取它。

根據預設，JupyterLab 應用程式會使用 SageMaker Distribution 映像。這包括對許多機器學習、分析和深度學習套件的支援。不過，如果您需要自訂映像，您的管理員可以協助提供自訂映像的存取權。

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 的相關資訊，請參閱[啟動 Amazon 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)。  
提供許可來建立 SageMaker AI 資源的 [AWS Amazon SageMaker AI 的 受管政策](security-iam-awsmanpol.md) 已包含建立這些資源時列出映像的許可。

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)。  
提供許可來建立 SageMaker AI 資源的 [AWS Amazon SageMaker AI 的 受管政策](security-iam-awsmanpol.md) 已包含建立這些資源時列出映像的許可。

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_tw/sagemaker/latest/dg/images/juptyer-notebook-environment-location.png)


若要變更您的環境，請選擇它，然後從下拉式功能表中選取選項。

![\[核取記號及其對應文字會顯示您先前建立的範例環境。\]](http://docs.aws.amazon.com/zh_tw/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 目錄，以共用這些環境。另一個使用者可以在您儲存環境的目錄中存取該環境。

**重要**  
共用您的環境有其限制。例如，我們不建議應該在 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
```

# 使用 Amazon Q 加速機器學習工作流程
<a name="studio-updated-jl-user-guide-use-amazon-q"></a>

Amazon Q Developer 是用於機器學習開發的 AI 輔助元件。透過 Amazon Q Developer，您可以：
+ 接收有關獨立或與其他 AWS 服務結合使用 SageMaker AI step-by-step指導。
+ 取得範例程式碼以開始使用 ML 任務，例如資料準備、訓練、推論和 MLOps。
+ 接收故障診斷協助，以偵錯並解決執行程式碼時遇到的錯誤。

Amazon Q Developer 無縫整合到您的 JupyterLab 環境。若要使用 Amazon Q Developer，請從 JupyterLab 環境或程式碼編輯器環境的左側導覽中選擇 **Q**。

如果您沒有看到 **Q** 圖示，您的管理員需要為您設定。如需設定 Amazon Q Developer 的詳細資訊，請參閱 [為您的使用者設定 Amazon Q Developer](studio-updated-amazon-q-admin-guide-set-up.md)。

Amazon Q 會自動提供建議，協助您撰寫程式碼。您也可以透過聊天介面要求建議。