gpt4 book ai didi

python - 部署模型时在azure ml入口脚本中导入数据和python脚本

转载 作者:行者123 更新时间:2023-12-05 01:33:51 26 4
gpt4 key购买 nike

我的本​​地系统上保存了一个现有的机器学习模型。我想将此模型部署为 Web 服务,以便可以将此模型用作请求响应,即向模型发送 HTTP 请求并获取预测响应。

当尝试在 AzureML 上部署此模型时,我遇到了一些问题

模型需要在 init() 函数中的入口脚本中初始化,但为了初始化我的模型,我有一个自定义类,并且需要加载几个 txt 文件。

下面是初始化模型对象的代码

from model_file import MyModelClass  # this is the file which contains the model class

def init():
global robert_model

my_model = MyModelClass(vocab_path='<path-to-text-files>',
model_paths=['<path-to-model-file>'],
iterations=5,
min_error_probability=0.0,
min_probability=0.0,
weigths=None)
def run(json_data):
try:
data = json.loads(json_data)
preds, cnt = my_model.handle_batch([sentence.split()])
return {'output': pred, 'count': cnt}
except Exception as e:
error = str(e)
return error

我不知道如何在入口脚本中导入那些类文件和文本文件

我对 azure 不太了解,而且我很难弄清楚这一点。请帮忙。

最佳答案

我找到了解决方案:

解决方案就在那里,我只需阅读官方文档即可。下面我解释了我的问题的解决方案。

在 Azure 机器学习工作室上部署模型时,我们必须准备 3 件事:

  1. Entry Script 是进行预测的实际 Python 脚本。

  2. Deployment Configuration 可以被认为是运行模型的计算机。

  3. Inference Configuration 定义模型的软件依赖性。在这里,我们还可以提供文本/静态文件。

inferece_config 采用名为 source_directory 的参数。我们可以为 source_directory 参数提供文件夹路径,如下所示

inference_config = InferenceConfig(
entry_script="<entry-script.py>",
environment=myenv,
source_directory="<path-to-your-folder>",
)

我们可以将所有需求放在这个文件夹中,包括文本、静态、CSV、python 脚本等文件。 入口脚本也必须放置在此文件夹中。此文件夹将由 azure 直接复制到创建的部署镜像中。这样我们就可以使用常规 python 语法在入口脚本中访问这些文件。

我的解决方案:

如果我有这样的inference_config

inference_config = InferenceConfig(
entry_script="score.py",
environment=myenv,
source_directory='./assets',
)

并将其放在 ./assets 文件夹中

assets
├── my_model_class.py
├── score.py
└── data
└── vocaublary.txt

1 directory, 3 files

然后我的入口脚本(score.py)将如下所示:

from assets.my_model_class import MyModelClass

def init():
global my_model
model_path = os.path.join(os.getenv('AZUREML_MODEL_DIR'),
'my_model.pkl',)

my_model = MyModelClass(vocab_path='assets/data/vocaublary.txt',
model_path=model_path,)

def run(json_data):
try:
data = json.loads(json_data)
prediction = my_model.predict(data)
return {'data': prediction}
except Exception as e:
// do error handling
return error

注意:即使 score.py 存在于 assets 中,我们也必须从 assets.my_model_class 导入文件夹,因为部署后 CWD(当前工作目录)更改为 assets 文件夹的父文件夹

关于python - 部署模型时在azure ml入口脚本中导入数据和python脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64257530/

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