模型部署到澳客彩票下载手机版下载 Functions

这是在澳客彩票下载手机版下载 Functions(一种基于云的无服务器基础结构)中将经过培训的fast.ai模型作为Web服务部署为Web服务的快速指南,它允许您从使用HTTP调用以任何语言编写的应用程序中使用这些模型。 蔚蓝功能提供了开发工具,可以首先在本地或基于云的桌面上构建应用程序,然后将其部署到云中。

价钱

找到澳客彩票下载手机版下载功能定价 这里.

免费试用 可用。在最初的12个月内,最多可免费使用5GB的存储帐户。 蔚蓝功能免费提供每月多达1M个请求。可以找到免费津贴和免费试用的完整列表 这里.

先决条件

开始之前,您必须具备以下条件:

  1. 具有有效订阅的澳客彩票下载手机版下载帐户。 免费创建一个帐户.

在Linux系统或Windows(WSL或WSL2)上,确保已安装以下组件:

  1. 蔚蓝功能核心工具
  2. 蔚蓝 CLI
  3. Python 3.7

注意:通过澳客彩票下载手机版下载订阅,您还可以使用 蔚蓝云外壳 预先安装了澳客彩票下载手机版下载 CLI和Functions Core Tools。

本地开发和测试

您可以在本地使用Linux子系统(WSL)的Windows子系统或云开发VM(例如 蔚蓝数据科学VM)在云端或 蔚蓝云外壳.

运行以下命令以在开发计算机上设置澳客彩票下载手机版下载 Functions项目。

创建一个Function App项目并启动目录

mkdir << Your projectname >>
cd << Your projectname>>
mkdir start
cd start

初始化功能应用

func init --worker-runtime python
func new --name classify --template "HTTP trigger"

这将创建一个功能应用程序,该功能应用程序在收到HTTP请求时将被触发。

复制部署代码模板

git clone //github.com/澳客彩票下载手机版下载-Samples/functions-deploy-pytorch-onnx.git ~/functions-deploy-pytorch-onnx

cp -r ~/functions-deploy-pytorch-onnx/start ..

主要文件是 __ init__.py Forecastonnx.py in start/classify directory. 的 one in the repo works for the Bear detector example in fast.ai. It takes input from the HTTP GET request in “img” parameter which is a URL to an image which will be run through the model for prediction of the type of bear. You can adapt the same easily for deploying other models.

使用ONNX运行时和依赖项创建和激活Python virtualenv

python -m venv .venv
source .venv/bin/activate

pip install --no-cache-dir -r requirements.txt  

导出模型

将fast.ai / PyTorch模型(learn.model)导出到 ONNX 格式以减少内存占用量并允许使用 ONNXRuntime. At the end of the model training (like the Bear Detector sample) in fast.ai, you will have a learn.model. Here is code to generate the model.onnx file for this fast.ai (or Pytorch) model from the learn.model.

dummy_input = torch.randn(1, 3, 224, 224, device='cuda')
onnx_path =  "./model.onnx"
torch.onnx.export(learn.model, dummy_input, onnx_path, verbose=False)

将通过训练Pytorch模型而构建的ONNX模型文件(应具有名称model.onnx)复制到Function App项目中的“ start / classify”目录中。

You also need to create a labels.json in start/classify directory. For the fast.ai 3 class Bear detector example it looks like this ["black","grizzly","teddy"] matching the class label 和 index during training.

在本地运行测试

func start

使用此命令,您的模型已部署到作为澳客彩票下载手机版下载 Functions本地实例托管的Web服务中。在输出中,您将看到Web服务正在监听的端口。通常是7071端口。

在计算机上的浏览器中,可以通过访问以下内容来测试本地澳客彩票下载手机版下载功能:

“ http:// localhost:7071 / api / classify?img = http://3.bp.blogspot.com/-S1scRCkI3vY/UHzV2kucsPI/AAAAAAAAA-k/YQ5UzHEm9Ss/s1600/Grizzly%2BBear%2BWildlife188.jpg”

您应该将模型输出中的预测作为JSON进行查看。

测试输出

现在,您已经在本地验证了模型的部署和使用情况,现在可以将其部署到云中了。

部署到云端

为了将模型部署到云,您必须创建必要的资源,例如存储帐户和Function App。我们将使用澳客彩票下载手机版下载命令行界面(CLI)来执行此操作。

使用澳客彩票下载手机版下载 CLI创建澳客彩票下载手机版下载资源

az group create --name [[YOUR Function App name]]  --location westus2

az storage account create --name [[Your Storage Account Name]] -l westus2 --sku Standard_LRS -g [[YOUR Function App name]]

az functionapp create --name [[YOUR Function App name]] -g [[YOUR Function App name]] --consumption-plan-location westus2 --storage-account [[Your Storage Account Name]] --runtime python --runtime-version 3.7 --functions-version 3 --disable-app-insights --os-type Linux

笔记

  • 如果尚未登录澳客彩票下载手机版下载 CLI。您必须首先运行“ az登录”,然后按照说明使用您的凭据登录到澳客彩票下载手机版下载。
  • 在上面的示例中,我们在westus2中部署资源。如果您更方便,则可以选择另一个澳客彩票下载手机版下载数据中心/区域。
  • 蔚蓝功能支持不同的 托管计划 从具有消费计划的基本实例到高级实例和专用托管。我们使用上面的“消费计划”通常是成本相对较低的方案中最具成本效益的(通常每个订阅每月最多免费请求一百万个请求)选项。
  • 上面,我们设置了一个禁用标志 应用洞察 在此澳客彩票下载手机版下载 Functions应用上。 应用洞察是澳客彩票下载手机版下载提供的一项服务,可帮助您监视澳客彩票下载手机版下载 Functions和其他澳客彩票下载手机版下载服务。我们建议启用Application Insights进行生产部署,并请您参考以下文档: 功能监控 有关其用法的更多信息。

发布到澳客彩票下载手机版下载

pip install  --target="./.python_packages/lib/site-packages"  -r requirements.txt

func azure functionapp publish [[YOUR Function App name] --no-build


It will take a few minutes to publish 和 bring up the 蔚蓝 functions with your ONNX model deployed 和 exposed as a http endpoint. 的 n you can find the URL by running the following command: func azure functionapp list-functions [[YOUR Function App name] --show-keys .

Append &img=[[Your Image URL to run thru model]] to the URL on a browser to get predictions from the model running in the 蔚蓝功能.

现在,您只需要发出HTTP请求,就可以用任何语言编写的应用程序来使用模型预测。

您可以管理澳客彩票下载手机版下载 Portal上已部署的无服务器功能。

蔚蓝门户

有一个伴随 博客文章 以及有关将ONNX格式的模型部署到澳客彩票下载手机版下载 Functions的此方法的一些其他详细信息。