Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
安裝其他程式庫時,如何對 Amazon SageMaker AI 筆記本執行個體例逾時問題進行疑難排解?
當我嘗試在 Amazon SageMaker AI 筆筆記本執行個體中安裝其他程式庫時,出現逾時錯誤。
解決方法
當生命週期組態指令碼執行超過 5 分鐘時,指令碼將失敗,且 SageMaker AI 不會建立或啟動筆記本執行個體。
請使用下列其中一種方法來解決該問題。
執行 nohup 命令
臨時解決方案是執行 nohup 命令,強制生命週期組態指令碼繼續在背景執行,直到您安裝套件為止。
請在命令開頭加上 nohup,並在命令結尾加上 & 符號,然後執行以下命令:
#!/bin/bash set -e nohup pip install xgboost &
安裝程式庫後,指令碼將停止執行。當發生這種情況時,SageMaker AI 不會通知您,但您可以執行 ps 命令來檢查指令碼的狀態。
**注意:**您也可以針對其他指令碼逾時情況執行 nohup 命令,例如下載大型 Amazon Simple Storage Service (Amazon S3) 物件時。
在筆記本執行個體的磁碟區上建立自訂持續性 Conda 安裝
-
在現有筆記本執行個體的終端中,在您偏好的編輯器中執行以下命令來建立 .sh 檔案:
vim custom-script.sh -
將 on-create 指令碼的內容新增到 .sh 檔案中。若要複製指令碼,請參閱 GitHub 網站上的 amazon-sagemaker-notebook-instance-lifecycle-config-samples。該指令碼會在自訂 Conda 安裝中建立新的 Conda 環境。該指令碼還會在新的 Conda 環境中安裝 NumPy 和 Boto3。
**注意:**筆記本執行個體必須具有網路連線才能下載 Miniconda 安裝程式和 ipykernel。 -
執行以下命令,將指令碼標記為可執行,並執行該指令碼:
chmod +x custom-script.sh ./custom-script.sh -
安裝完成後,停止筆記本執行個體。
-
將啟動時執行的指令碼新增至 .sh 檔案。若要複製指令碼,請參閱 GitHub 網站上的 amazon-sagemaker-notebook-instance-lifecycle-config-samples。
-
在已停止的筆記本執行個體上,將啟動時執行的指令碼新增為生命週期組態。每次啟動筆記本執行個體時,指令碼都會將自訂環境做為 Jupyter 中的核心提供。
-
啟動筆記本執行個體,然後在自訂環境中安裝自訂程式庫。
例如,若要安裝 pyarrow,請執行下列命令:import sys !conda install --yes --prefix {sys.prefix} -c conda-forge pyarrow
如果您停止再啟動筆記本執行個體,那麼您的自訂 Conda 環境和程式庫仍然可用。您不需要再次安裝。
如果您收到一則錯誤訊息,提示您必須更新 Conda,請執行以下命令:
!conda install -p "/home/ec2-user/anaconda3" "conda>=4.8" --yes !conda install -p "/home/ec2-user/SageMaker/custom-miniconda/miniconda" "conda>=4.8" --yes
Conda 安裝完成後,安裝程式庫。
建立 Neptune 筆記本並設定其政策和連線
當您在 Amazon Neptune 中建立筆記本時,Neptune 會使用指向 S3 物件的預設生命週期組態,例如 aws s3 cp s3://aws-neptune-notebook/graph_notebook.tar.gz /tmp/graph_notebook.tar.gz。Neptune AWS Identity and Access Management (IAM) 角色必須具有權限政策,授權 arn:aws:s3:::aws-neptune-notebook 及 arn:aws:s3:::aws-neptune-notebook/ 資源執行s3:GetObject 和 s3:ListBucket 動作。
Neptune IAM 角色也必須具有信任政策,授權 SageMaker AI 執行 AssumeRole 動作。例如,您在與筆記本相關的資料庫叢集上啟動了 IAM 資料庫驗證。IAM 角色必須具有權限政策,授權關聯資料庫叢集執行 neptune-db: 動作。
如果您使用虛擬私有雲端 (VPC) 將 Neptune 筆記本連線到網際網路,則必須將 NAT 閘道連線到 VPC。此外,您必須設定安全群組以允許網際網路存取 Amazon S3 和 Python Package Index (PyPI)。如需 PyPI 的詳細資訊,請參閱 Python Package Index 網站。
**注意:**若要對生命週期組態指令碼的問題進行疑難排解,請使用 Amazon CloudWatch Logs。您可以在以下位置找到日誌:
- 日誌群組:/aws/sagemaker/NotebookInstances
- 日誌串流:example_notebook_instance_name/LifecycleConfigOnStart
相關資訊
- 語言
- 中文 (繁體)

相關內容
- 已提問 1 年前
- 已提問 2 年前
- 已提問 1 年前
- 已提問 2 年前