

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

# 自定义运行时系统环境
<a name="train-remote-decorator-customize"></a>

您可以自定义运行时环境，使用首选的本地集成开发环境 (IDEs)、 SageMaker 笔记本或 SageMaker Studio Classic 笔记本来编写 ML 代码。 SageMaker AI 将帮助将你的函数及其依赖项打包并提交为 SageMaker 训练作业。这允许您访问 SageMaker 训练服务器的容量来运行您的训练作业。

用于调用函数的远程装饰器和 `RemoteExecutor` 方法都允许用户定义和自定义其运行时系统环境。您可以使用 `requirements.txt` 文件或 conda 环境 YAML 文件。

要同时使用 conda 环境 YAML 文件和 `requirements.txt` 文件自定义运行时系统环境，请参阅以下代码示例。

```
# specify a conda environment inside a yaml file
@remote(instance_type="ml.m5.large",
        image_uri = "my_base_python:latest", 
        dependencies = "./environment.yml")
def matrix_multiply(a, b):
    return np.matmul(a, b)

# use a requirements.txt file to import dependencies
@remote(instance_type="ml.m5.large",
        image_uri = "my_base_python:latest", 
        dependencies = './requirements.txt')
def matrix_multiply(a, b):
    return np.matmul(a, b)
```

或者，您可以`dependencies`将`auto_capture`设置为，让 SageMaker Python SDK 捕获活动的 conda 环境中已安装的依赖项。需满足以下条件才能使 `auto_capture` 可靠地工作：
+ 您必须拥有一个活动的 conda 环境。我们建议不要将 `base` conda 环境用于远程作业，以便能减少潜在的依赖项冲突。在不使用 `base` conda 环境的情况下，还可以在远程作业中更快地设置环境。
+ 您不得将 pip 与参数 `--extra-index-url` 的值结合使用来安装任何依赖项。
+ 在本地开发环境中，使用 conda 安装的包和使用 pip 安装的包之间不得存在任何依赖项冲突。
+ 您的本地开发环境不得包含与 Linux 不兼容的特定于操作系统的依赖项。

如果 `auto_capture` 不起作用，建议您将依赖项作为 requirement.txt 或 conda environment.yaml 文件传入，如此部分中的第一个编码示例所述。