Azure ML:在模型部署期间包含其他文件
Azure ML: Include additional files during model deployment
在我的 AML 管道中,我构建了一个模型并将其部署到 AciWebservice。我现在需要包含一些将由 score.py 使用的额外数据。此数据采用 json 格式 (~1mb),特定于构建的模型。为了实现这一点,我正在考虑将此文件粘贴到 blob 存储中并在部署期间更新 score.py 中的一些 "placholder" 变量,但它看起来很老套。
以下是我正在考虑但不确定实用性的一些选项
选项 1:
是否可以在模型部署过程中包含此文件,使其成为 docker 图像的一部分?
选项 2:
我正在考虑的另一种可能性是,是否可以将此 json 数据部分包含在模型工件中?
选项 3:
如何将其注册为数据集并将其拉入分数文件?
模型部署场景下推荐的依赖文件部署方式是什么?
有几种方法可以做到这一点:
将附加文件放在与模型文件相同的文件夹中,register将整个文件夹作为模型。在这种方法中,文件与模型一起存储。
将文件放入本地文件夹,并在 InferenceConfig 中将该文件夹指定为 source_directory。在这种方法中,每次部署新端点时都会重新上传文件。
在 InferenceConfig 中使用自定义基础图像将文件烘焙到 Docker 图像本身。
要扩展@Roope Astala - MSFT 的答案,这是使用第二种方法实现它的方法
Put the file in a local folder, and specify that folder as source_directory in InferenceConfig. In this approach the file is re-uploaded every time you deploy a new endpoint.
假设这是您的文件结构。
.
└── deployment
├── entry.py
├── env.yml
└── files
├── data.txt
并且您想阅读 entry.py
脚本中的 files/names.txt
。
这就是您在 entry.py
中的阅读方式:
file_path = 'deployment/files/data.txt'
with open(file_path, 'r') as f:
...
这就是您设置部署配置的方式。
deployment_config = AciWebservice.deploy_configuration(cpu_cores = 1, memory_gb = 1)
inference_config = InferenceConfig(
runtime='python',
source_directory='deployment',
entry_script='entry.py',
conda_file='env.yml'
)
在我的 AML 管道中,我构建了一个模型并将其部署到 AciWebservice。我现在需要包含一些将由 score.py 使用的额外数据。此数据采用 json 格式 (~1mb),特定于构建的模型。为了实现这一点,我正在考虑将此文件粘贴到 blob 存储中并在部署期间更新 score.py 中的一些 "placholder" 变量,但它看起来很老套。
以下是我正在考虑但不确定实用性的一些选项
选项 1: 是否可以在模型部署过程中包含此文件,使其成为 docker 图像的一部分?
选项 2: 我正在考虑的另一种可能性是,是否可以将此 json 数据部分包含在模型工件中?
选项 3: 如何将其注册为数据集并将其拉入分数文件?
模型部署场景下推荐的依赖文件部署方式是什么?
有几种方法可以做到这一点:
将附加文件放在与模型文件相同的文件夹中,register将整个文件夹作为模型。在这种方法中,文件与模型一起存储。
将文件放入本地文件夹,并在 InferenceConfig 中将该文件夹指定为 source_directory。在这种方法中,每次部署新端点时都会重新上传文件。
在 InferenceConfig 中使用自定义基础图像将文件烘焙到 Docker 图像本身。
要扩展@Roope Astala - MSFT 的答案,这是使用第二种方法实现它的方法
Put the file in a local folder, and specify that folder as source_directory in InferenceConfig. In this approach the file is re-uploaded every time you deploy a new endpoint.
假设这是您的文件结构。
.
└── deployment
├── entry.py
├── env.yml
└── files
├── data.txt
并且您想阅读 entry.py
脚本中的 files/names.txt
。
这就是您在 entry.py
中的阅读方式:
file_path = 'deployment/files/data.txt'
with open(file_path, 'r') as f:
...
这就是您设置部署配置的方式。
deployment_config = AciWebservice.deploy_configuration(cpu_cores = 1, memory_gb = 1)
inference_config = InferenceConfig(
runtime='python',
source_directory='deployment',
entry_script='entry.py',
conda_file='env.yml'
)