生命周期配置最佳实践 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

生命周期配置最佳实践

以下是使用生命周期配置的最佳实践:

  • root 用户身份运行生命周期配置。如果您的脚本在 /home/ec2-user/SageMaker 目录中进行任何更改(例如,通过 pip 安装程序包),请使用命令 sudo -u ec2-userec2-user 用户的身份运行。这是运行 Amazon SageMaker 的同一个用户。

  • SageMaker 笔记本实例使用 conda 环境来为 Jupyter 笔记本实施不同的内核。如果您要安装对一个或多个笔记本内核可用的程序包,请将用于安装程序包的命令与 conda 环境命令配合使用,以便激活包含您要在其中安装程序包的内核的 conda 环境。

    例如,如果您要仅为 python3 环境安装程序包,请使用以下代码:

    #!/bin/bash sudo -u ec2-user -i <<'EOF' # This will affect only the Jupyter kernel called "conda_python3". source activate python3 # Replace myPackage with the name of the package you want to install. pip install myPackage # You can also perform "conda install" here as well. source deactivate EOF

    如果您要在笔记本实例的所有 conda 环境中安装程序包,请使用以下代码:

    #!/bin/bash sudo -u ec2-user -i <<'EOF' # Note that "base" is special environment name, include it there as well. for env in base /home/ec2-user/anaconda3/envs/*; do source /home/ec2-user/anaconda3/bin/activate $(basename "$env") # Installing packages in the Jupyter system environment can affect stability of your SageMaker # Notebook Instance. You can remove this check if you'd like to install Jupyter extensions, etc. if [ $env = 'JupyterSystemEnv' ]; then continue fi # Replace myPackage with the name of the package you want to install. pip install --upgrade --quiet myPackage # You can also perform "conda install" here as well. source /home/ec2-user/anaconda3/bin/deactivate done EOF
  • 您必须将所有 conda 环境存储在默认环境文件夹 (/home/user/anaconda3/envs) 中。

重要

当您创建或更改脚本时,我们建议您使用提供 Unix 样式换行符的文本编辑器,例如,创建笔记本时可在控制台中使用的文本编辑器。从非 Linux 操作系统复制文本可能会引入不兼容的换行符,并导致意外错误。