在 Azure ML 中操作自定义 R 模型,而无需在每次调用 Web 服务时加载它

Operationalize custom R model in Azure ML without loading it on every call of web service

我正在尝试将 R 模型作为 Azure ML 中的 Web 服务提供。

模型在本地训练,使用Xgboost等包。由于大小超过 130 MB,我在直接从 AzureML 包提交它时遇到了问题。解决方法是将所有包和模型作为 zip 文件上传到 Azure 并从那里获取。

当前的问题是,每次调用服务时,模型都是由 Azure ML 从 zip 文件加载的,这使得响应时间非常慢(4.5 秒)。 我如何重组代码,以便模型只从文件中加载一次。感谢您的帮助。

这是它在 AzureML 中的样子 这是执行 R 脚本中的内容

这里有一个 clever trick 用于 运行 初始化步骤,只是第一次,而不是在每次后续调用时。

我的理解是,您可以将脚本的前 3 条语句(即第 11 行)包装在以下 if 语句中:

if (!is.element("my_env", search()))

if 语句还将包含 my_env 变量的初始化,如该博客中使用的示例所示: