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

Posted 新智元

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习算法部署平台Cortex更新,支持TensorFlowPytorch等主流框架相关的知识,希望对你有一定的参考价值。


AI WORLD 2019世界人工智能峰会明日开幕!

【倒计时1天】 10月18日,2019中关村论坛平行论坛——AI WORLD 2019世界人工智能峰会将在北京启幕。峰会由海淀区政府、中关村科学城管委会主办,新智元、海淀园管委会、智源研究院承办。新智元杨静、科大讯飞胡郁、微软王永东、华为王成录、英特尔宋继强、旷视及智源学者孙剑、滴滴叶杰平、AWS张峥、依图颜水成、地平线黄畅、autowise.ai黄超等重磅嘉宾中关村论剑,重启充满创新活力的AI未来。新智元还将现场揭晓AI Era创新大奖,并重磅发布AI开放创新平台和献礼新书《智周万物:人工智能改变中国》。峰会多平台同步直播,敬请期待!直播链接:


【腾讯科技】
客户端:https://view.inews.qq.com/a/TEC2019101600718500    
PC端:http://v.qq.com/live/p/topic/74606/preview.html
【海淀融媒】
上午场:m.365yg.com/i6748195040323062540/      
下午场:m.365yg.com/i6748216659368184584/
【新浪科技】
http://video.sina.com.cn/l/p/1728577.html




  新智元报道  

编辑:大明
【新智元导读】机器学习算法部署平台Cortex发布版本更新,提供API自动扩展、多框架支持、运行日志传输,GPU和CPU基础设施均可使用,可以更方便快捷地将机器学习模型的预测结果用于生产环境。与AI大咖一起参与讨论吧~
目前,我们利用机器学习算法来预测结果,最终目的还是为了生产服务。由于生产环境和要求复杂多样,将机器学习模型部署至生产环境,往往需要特定的平台工具。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

# 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函数在请求处理程序文件中实现:
 
# 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上协调工作负载。

$ cortex deploy

deployment started
 
可以使用跟踪部署状态。以下输出表明请求了该API的一个副本,并且可用于预测。如果负载增加,Cortex将自动启动更多副本,而如果有未使用的空闲容量,则会自动关闭副本。
 
$ 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、提供实时预测
 
获取端点后,就可以发送请求了。

$ 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...

参考链接:
https://github.com/cortexlabs/cortex?utm_source=share&utm_medium=ios_app&utm_name=iossmf

以上是关于机器学习算法部署平台Cortex更新,支持TensorFlowPytorch等主流框架的主要内容,如果未能解决你的问题,请参考以下文章

Alink:基于Flink的机器学习平台

软考 - 07 机器学习应用开发平台

软考 - 07 机器学习应用开发平台

如何线上部署用python基于dlib写的人脸识别算法

数据人不得不知的机器学习平台

爱奇艺机器学习平台建设实践