【问题标题】:Azure ML: Include additional files during model deploymentAzure ML:在模型部署期间包括其他文件
【发布时间】:2020-08-31 07:44:26
【问题描述】:

在我的 AML 管道中,我构建了一个模型并将其部署到 AciWebservice。我现在需要包含一些额外的数据,这些数据将被 score.py 使用。此数据采用 json 格式 (~1mb),并且特定于所构建的模型。为了实现这一点,我正在考虑将这个文件粘贴在 blob 存储中,并在部署期间更新 score.py 中的一些“占位符”变量,但这似乎很麻烦。

以下是我正在考虑但不确定实用性的一些选项

选项 1: 是否可以在模型部署期间包含此文件,使其成为 docker 映像的一部分?

选项 2: 我正在考虑的另一种可能性是,是否可以将这个 json 数据部分包含在模型工件中?

选项 3: 将其注册为数据集并将其拉入乐谱文件如何?

在模型部署场景中部署依赖文件的推荐方式是什么?

【问题讨论】:

    标签: azure-machine-learning-service


    【解决方案1】:

    有几种方法可以做到这一点:

    1. 将附加文件放在与模型文件相同的文件夹中,register 将整个文件夹作为模型。在这种方法中,文件与模型一起存储。

    2. 将文件放在本地文件夹中,并将该文件夹指定为InferenceConfig 中的source_directory。在这种方法中,每次部署新端点时都会重新上传文件。

    3. 使用 InferenceConfig 中的自定义基础映像将文件烘焙到 Docker 映像本身。

    【讨论】:

      【解决方案2】:

      为了扩展@Roope Astala - MSFT 的答案,您可以使用第二种方法来实现它

      将文件放在本地文件夹中,并在 InferenceConfig 中将该文件夹指定为 source_directory。在这种方法中,每次部署新端点时都会重新上传文件。

      假设这是你的文件结构。

      .
      └── 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'
      )
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-19
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      • 2019-11-25
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      相关资源
      最近更新 更多