前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习算法部署平台Cortex更新,支持TensorFlow、Pytorch等主流框架

机器学习算法部署平台Cortex更新,支持TensorFlow、Pytorch等主流框架

作者头像
新智元
发布2019-10-21 14:45:30
1.3K0
发布2019-10-21 14:45:30
举报
文章被收录于专栏:新智元新智元


目前,我们利用机器学习算法来预测结果,最终目的还是为了生产服务。由于生产环境和要求复杂多样,将机器学习模型部署至生产环境,往往需要特定的平台工具。Cortex就是这类平台工具中的一种。

近日,Cortex发布了版本更新,提供了大量新特性,提升了使用体验,能够更方便快捷地将机器学习模型预测作为网络服务部署到生产流程中。

一起来看看本次更新的内容吧。

主要功能和特性

自动扩展:Cortex能够自动扩展API,已处理生产环境下的工作负载。

多框架支持:Cortex广泛支持TensorFlow,Keras, PyTorch, Scikit-learn, XGBoost的多个机器学习框架。

CPU/GPU支持:Cortex可在CPU或GPU基础设施上运行推理任务。

滚动更新:直接将更新应用在API上,无需花费专门的时间下载。

日志传输:Cortex可将运行日志从部署模型传输到用户的CLI上。

预测监测:可检测网络量度,并追踪预测结果。

最小化的声明式配置:部署配置仅由一个cortex.yaml文件定义。

下面举例说明如何利用Cortex将OpenAI的GPT-2模型作为AWS的服务进行部署。需要注意的是,开始之前需要先在AWS账号中安装Cortex。

1、部署配置

定义部署和API资源。“部署”是指一起部署的一组指定的API资源。API可以让模型作为网络服务使用,提供实时的预测结果。下面的设置将从S3 bucket下载示例模型。生成模型的代码下载地址:

https://colab.research.google.com/github/cortexlabs/cortex/blob/0.9/examples/text-generator/gpt-2.ipynb

代码语言:javascript
复制
# cortex.yaml

- kind: deployment
  name: text

- kind: api
  name: generator
  model: s3://cortex-examples/text-generator/gpt-2/124M
  request_handler: handler.py

2、添加请求处理

该模型需要编码数据进行推理,但是API应该接受自然语言的字符串作为输入,还应该对推理输出进行解码。这可以使用pre_inference和post_inference函数在请求处理程序文件中实现:

代码语言:javascript
复制
# handler.py

from encoder import get_encoder
encoder = get_encoder()


def pre_inference(sample, metadata):
    context = encoder.encode(sample["text"])
    return {"context": [context]}


def post_inference(prediction, metadata):
    response = prediction["sample"]
    return encoder.decode(response)

3、部署到AWS

部署到AWS和从CLI上运行cortex deploy一样简单,后者使用cortex.yaml文件中的声明式设置,并在集群上进行创建操作。Cortex会将模型容器化,令模型可以使用TensorFlow服务,使用负载平衡器公开端点,并在Kubernetes上协调工作负载。

代码语言:javascript
复制
$ cortex deploy

deployment started

可以使用跟踪部署状态。以下输出表明请求了该API的一个副本,并且可用于预测。如果负载增加,Cortex将自动启动更多副本,而如果有未使用的空闲容量,则会自动关闭副本。

代码语言:javascript
复制
$ cortex get generator --watch

status   up-to-date   available   requested   last update   avg latency
live     1            1           1           8s            123ms

url: http://***.amazonaws.com/text/generator

4、提供实时预测

获取端点后,就可以发送请求了。

代码语言:javascript
复制
$ curl http://***.amazonaws.com/text/generator \
    -X POST -H "Content-Type: application/json" \
    -d '{"text": "machine learning"}'

Machine learning, with more than one thousand researchers around the world today, are looking to create computer-driven machine learning algorithms that can also be applied to human and social problems, such as education, health care, employment, medicine, politics, or the environment...
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档