外部程式庫和核心安裝 - Amazon SageMaker

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

外部程式庫和核心安裝

重要

目前,筆記本執行個體環境中的所有套件都已授權與 Amazon 搭配使用 SageMaker ,不需要額外的商業授權。不過,這可能在未來有所變更,我們建議您定期檢閱授權條款,以取得任何更新。

Amazon SageMaker 筆記本執行個體具有已安裝的多個環境。這些環境包含 Jupyter 核心和 Python 套件,包括:scikit、Pandas、 NumPy TensorFlow和 MXNet。當您停止和啟動筆記本執行個體時,上述環境和 sample-notebooks 資料夾內的所有檔案都會重新更新。您也可以安裝含有自己挑選的套件和核心的自有環境。

Amazon SageMaker 筆記本執行個體中的不同 Jupyter 核心是個別的 conda 環境。如需 conda 環境的相關資訊,請參閱 Conda 文件對於管理環境的相關文章。

在筆記本執行個體的 Amazon EBS磁碟區上安裝自訂環境和核心。這可確保當您停止和重新啟動筆記本執行個體時,它們會持續存在,而且您安裝的任何外部程式庫都不會由 更新 SageMaker。若要這麼做,請使用生命週期組態,其中包含建立筆記本執行個體時所執行的指令碼 (on-create) 以及每次重新啟動筆記本執行個體時執行的指令碼 (on-start)。如需筆記本執行個體生命週期組態的更多相關資訊,請參閱使用LCC指令碼自訂 SageMaker 筆記本執行個體。在筆記本執行個體生命週期組態範例 中, GitHub有一個包含範例生命週期組態指令碼的儲存庫。 SageMaker

https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-create.shhttps://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-start.sh 的範例顯示了在筆記本執行個體上安裝環境和核心的最佳實務。該 on-create 指令碼會安裝 ipykernel 程式庫以將自訂環境建立為 Jupyter 核心,然後使用 pip installconda install 安裝程式庫。您可以調整指令碼以建立自訂環境並安裝所需的程式庫。當您停止和重新啟動筆記本執行個體時 SageMaker , 不會更新這些程式庫,因此您可以確保自訂環境具有所需的特定程式庫版本。此 on-start 指令碼會安裝您建立為 Jupyter 核心的任何自訂環境,讓它們出現在 Jupyter 新增功能表的下拉式清單中。

套件安裝工具

SageMaker 筆記本支援下列套件安裝工具:

  • Conda 安裝

  • pip 安裝

您可以使用以下方法安裝套件:

您可以在筆記本中使用系統命令語法 (以 ! 開頭的行) 來安裝套件,例如 !pip install!conda install。最近,新命令已新增至 IPython: %pip%conda。這些命令是從筆記本安裝套件的建議方法,因為它們能正確地考慮使用中的環境或解譯器。有關更多資訊,請參閱添加 %PIP 和 %Conda 魔法函數

Conda

Conda 是開放原始碼套件管理系統和環境管理系統,可安裝套件及其相依性。 SageMaker 支援使用 Conda 搭配兩個主要通道、預設通道和 conda-forge 通道。有關更多資訊,請參閱 Conda 通道。conda-forge 通道是一個社群通道,貢獻者可以在其中上傳套件。

注意

由於 Conda 解決相依性圖形的方式,從 conda-forge 安裝套件可能需要更長的時間 (最長超過 10 分鐘)。

深度學習AMI具有許多 conda 環境和預先安裝的許多套件。由於預先安裝的套件數量龐大,因此很難找到一組保證相容的套件。您可能會看到警告 “環境不一致,請仔細確認套件方案”。儘管有此警告, SageMaker 會確保所有 SageMaker 提供的環境都正確。 SageMaker 無法保證任何使用者安裝的套件都能正常運作。

注意

在這些服務中使用 Anaconda 時, SageMaker AWS 深度學習 AMIs 和 Amazon 的使用者EMR可以在 2024 年 2 月 1 日之前存取商業 Anaconda 儲存庫,而無需取得商業授權。對於 2024 年 2 月 1 日之後商業 Anaconda 儲存庫的任何使用,客戶有責任判斷自己的 Anaconda 授權需求。

Conda 有兩種啟動環境的方法:conda 啟動/停用以及來源啟動/停用。有關更多資訊,請參閱我應該在 Linux 中使用 'conda 啟動' 或 '來源啟動'

SageMaker 支援將 Conda 環境移至 Amazon EBS磁碟區,該磁碟區會在執行個體停止時保留。當環境安裝到根磁碟區時,環境不會持續存在,此為預設行為。如需生命週期指令碼範例,請參閱 persistent-conda-ebs

支援 conda 作業 (請參閱本主題底部的註釋)
  • conda 在單一環境中安裝套件

  • conda 在所有環境中安裝套件

  • conda 在 R 環境中安裝 R 套件

  • 從主要 conda 儲存庫安裝套件

  • 從 conda-forge 安裝套件

  • 變更要使用的 Conda 安裝位置 EBS

  • 支援 conda 啟動與來源啟動

Pip

Pip 是實際用於安裝和管理 Python 套件的工具。Pip 預設會在 Python Package Index (PyPI) 上的搜尋套件。Pip 與 Conda 不同,沒有內建環境支援,並且在涉及具有本地/系統程式庫相依性關係的套件時不如 Conda 那麼徹底。Pip 可用於在 Conda 環境中安裝套件。

您可以使用 pip 替代套件儲存庫而不是 PyPI。有關生命週期腳本範例,請參閱 on-start.sh

支援的 pip 作業 (請參閱本主題底部的註釋)
  • 使用 pip 在沒有使用中 conda 環境的情況下安裝套件 (在系統整體安裝套件)

  • 使用 Pip 可在 Conda 環境中安裝套件

  • 使用 pip 在所有 conda 環境中安裝套件

  • 變更要使用的 pip 安裝位置 EBS

  • 使用替代儲存庫搭配 pip 安裝套件

不支援

SageMaker 旨在盡可能支援盡可能多的套件安裝操作。不過,如果套件是由 SageMaker 或 安裝DLAMI,而您在這些套件上使用下列操作,則可能會讓您的筆記本執行個體不穩定:

  • 解除安裝

  • 降級

  • 升級

我們不支援透過 yum 安裝或安裝來自 的 R 套件來安裝套件CRAN。

由於網路條件或組態的潛在問題,或是 Conda 或 的可用性 PyPi,我們無法保證套件將在固定或決定的時間內安裝。

注意

我們無法保證成功安裝套件。嘗試在具有不相容相依性的環境中安裝套件可能會失敗。在這種情況下,您應該聯繫程式庫維護者,以確認是否可以更新套件相依性。或者,您可以嘗試以允許安裝的方式修改環境。然而,該項修改可能意味著移除或更新現有套件,這表示我們無法繼續保證此環境的穩定性。