gpt4 book ai didi

azure - 无法在本地运行 Azure ML 模型,有关输入脚本的帮助

转载 作者:行者123 更新时间:2023-12-03 03:47:57 24 4
gpt4 key购买 nike

我正在开发一个项目,其中将使用 Azure ML(ml.azure.com) 创建模型,

我计划最终使用 Azure ML Designer,因此我选择了一个示例管道(回归 - 汽车价格预测(基本))。然后,我创建了一个实时推理管道并创建了一个实时端点。

发布此内容后,我可以按预期通过互联网从 .Net 客户端获取此模型的预测。

作为同一项目的一部分,我最终希望通过预测完全消除互联网依赖性/附属延迟。据我了解,这可以通过打包模型并下载在本地计算机上运行的 docker 镜像并通过评分 Web 服务公开模型来实现。

为了打包模型并将其下载为 Docker 镜像,我使用了以下 Python 代码,这将在我的本地 PC 上执行:

import azureml.core
print(azureml.core.VERSION)


from azureml.core import Workspace
ws = Workspace.get(name="TestMLWorkSpace", subscription_id='XXXXXX-a9c4-4426-XXXX-XXXXXXX', resource_group='MyResourceGroup')

from azureml.core.experiment import Experiment
experiment = Experiment(workspace=ws, name='TestAutomobileSampleExp')

list_runs = experiment.get_runs()
for run in list_runs:
print(run.id)

list_experiments = Experiment.list(ws)


from azureml.core.model import Model
import os

model = Model(workspace=ws, name="amlstudio-regrealtimeendpoint")
model.download(target_dir=os.getcwd(), exist_ok=1 )

from azureml.core import Environment
from azureml.core.model import InferenceConfig

env = Environment.get(workspace=ws, name="AzureML-Minimal")
inference_config = InferenceConfig(
environment=env,
source_directory="./",
entry_script="./score.py",
)



package = Model.package(ws, [model], inference_config)
package.wait_for_creation(show_output=True)

package.pull()
#checked image id using ---> docker images
# replace image id from the result above in the following command
# docker run -p 6789:5001 --name mycontainer c262eaa7bab9

# http://localhost:6789/score

现在,当我运行此脚本时,docker 镜像会下载到我的计算机上,并且可以使用 docker 运行。

问题是什么?

作为创建推理配置的一部分,我需要指定一个名为 Score.py 的入口脚本我似乎无法运行 docker 镜像,因为入口脚本可能不正确。

这是我的 Score.py 目前的样子:

导入操作系统导入json

从 azureml.core.model 导入模型导入日志记录

def init():
global model
logging.basicConfig(level=logging.DEBUG)
model_path = Model.get_model_path(model_name='amlstudio-regrealtimeendpoint')
print(Model.get_model_path(model_name='amlstudio-regrealtimeendpoint'))
#How do I load the model here??


def run(input_data):
try:
data = json.loads(input_data)['data']
data = np.array(data)
result = model.predict(data)
return json.dumps({"result": result.tolist()})
except Exception as e:
result = str(e)
# return error message back to the client
return json.dumps({"error": result})

我根据 Microsoft Material 构建了此入口脚本,但它不起作用,并且 Docker 镜像无法启动。

我的问题是,

  1. 推理配置中我的源目录是否正确?鉴于我只想让模型在本地运行并能够在本地提供预测,我的源目录应该是什么?
  2. 我应该对此条目脚本进行哪些更改才能使评分在我的计算机上本地运行?

谢谢

最佳答案

故障排除文档: https://learn.microsoft.com/en-us/azure/machine-learning/how-to-troubleshoot-prebuilt-docker-image-inference

如果您想构建封装模型及其依赖项的 Docker 镜像,可以使用模型打包选项。输出图像将被推送到您工作区的 ACR。

您必须在 inference configuration 中包含一个环境对象使用 Model.package()。

package = Model.package(ws, [model], inference_config)package.wait_for_creation(show_output=True) # 或 show_output=False 隐藏 Docker 构建日志。包.pull()您还可以生成 Dockerfile 并下载在环境之上构建镜像所需的所有资源,而不是完全构建的镜像。

package = Model.package(ws, [model], inference_config,generate_dockerfile=True)package.wait_for_creation(show_output=True)package.save("./local_context_dir")

关于azure - 无法在本地运行 Azure ML 模型,有关输入脚本的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68390066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com