三分钟搞定你的深度学习开发环境,青云QingCloud 上线推理引擎服务

百家 作者:QingCloud 2019-11-11 13:50:05

随着人工智能应用场景越来越广泛,深度学习在图像识别、语音语义、自动驾驶、大数据学习等实践场景下都取得了不俗的成绩,如何快速部署一套深度学习平台从而满足业务需求,已经成为企业讨论的热门话题。



为了更快地帮助企业构建深度学习平台,青云QingCloud 推出了 Inference Engine 推理引擎服务,为用户提供一站式的模型部署与推理方案。


1

推理引擎是什么?


训练和推理是机器/深度学习的两个重要组成部分。用户通过各种深度学习框架如 Tensorflow, PyTorch 等训练好模型后,将模型部署到生产环境、管理模型版本并提供 API 用于推理,是机器/深度学习产生价值的不可或缺的环节。


一个成熟的推理产品除了要支持多种推理框架、多种加速器(CPU/GPU)之外,还需要支持诸如推理 API (HTTP/GPRC) 负载均衡、模型上传、模型存储、模型部署、水平/垂直伸缩、推理引擎日志/推理 API 访问日志查看等诸多功能。


Inference Engine 推理引擎旨在解决上述问题,为用户提供一站式的模型部署与推理方案,并为以后模型市场的推出打下坚实的基础。


架构图


Inference Engine 由三种角色构成:


● 边缘代理/负载均衡器( Edge Proxy & Load Balancing ) :采用云原生技术栈里的 Envoy 用作边缘代理和负载均衡器;


● 模型服务( Model Serving ) :加载模型并提供 HTTP/GRPC 推理服务的引擎,这里以Tensorflow Serving 举例;


● 模型库( Model Repo ) :用于存储训练好的模型。用户既可以使用能私有部署、适用于私有云等不能访问外网环境并且兼容 S3 协议的私有对象存储 MinIO,也可以使用 QingCloud 公有云对象存储, 来存储模型并供模型服务加载。此外,用户也可以上传模型到模型服务节点本地磁盘相应目录,并加载到 Tensorflow Serving,用做单节点试验用。


2

推理引擎服务优势


一键部署 灵活易用


Inference Engine 推理引擎通过 AppCenter 交付,可一键完成云端部署,并提供应用全生命周期管理能力(创建、扩容、监控、健康监测等),开发者仅需上传模型即可快速拥有生产环境可用的 AI 推理引擎。


支持主流推理框架


集成针对 Intel CPU 优化的 CPU 版 Tensorflow Serving ,未来还将陆续支持 ONNX Runtime / OpenVINO 等主流推理框架,助力用户快速部署机器/深度学习推理环境。


支持 CPU、GPU 多种加速模式


支持使用 GPU 或仅使用 CPU 进行机器/深度学习推理,同时可根据自身需求选择单节点或分布式部署模式。


Inference Engine 推理引擎 CPU 版基于第二代 Intel 至强可扩展处理器 ( 代号CascadeLake ) ,其采用了 Intel DeepLearning Boost VNNI 技术,AI 推理性能与上一代型号 CPU 相⽐提升高达 100% 。不同于训练阶段,配合针对 CPU 优化的推理框架,CPU 可以在推理环节发挥更重要作用,与 GPU 相比可以为用户提供更低成本选择。


性能测试


模型支持多种存储方式


支持本地磁盘存储、对象存储以及兼容 S3 协议的 MinIO 私有对象存储等多种存储方式存储模型。集成对象存储命令行工具,通过配置对象存储相关参数,可便捷地从对象存储中获取模型,完成推理。


支持多种部署方式


支持单模型服务节点+本地模型存储、多模型服务节点+私有对象存储模型库( MinIO 对象存储)、多模型服务节点+公有云对象存储模型库( QingCloud 对象存储或其他兼容 S3 协议的公有云对象存储) 等多种部署方式。


按需计费 灵活掌握开发成本


支持按需付费、包月、包年计费模式,为用户提供更加全面和灵活的成本管理支持。


3

推理引擎服务最佳实践


方式一:单模型服务节点+本地模型存储


本部署方式只部署一个模型服务节点,模型保存在该模型服务节点的本地系统盘,无需部署模型库节点。


仅适用于试验性用途或者低访问量的情况。


  • 服务详情




  • 模型存储


模型存储在模型服务节点的 /data/models 目录下,内置了 resnet 和 Tensorflow 官方演示模型 saved_model_half_plus_two_mkl 两个模型



  • 服务配置


此种部署方式需要将配置参数的 s3.type 设为 none



方式二:多模型服务节点+私有对象存储模型库


本部署方式部署多个模型服务节点以及一个模型库节点,模型保存在模型库节点的 MinIO 对象存储中。


适用于无法访问公网的私有云部署或没有公有云对象存储访问权限的场景。


  • 服务详情

 


  • 模型存储


模型保存在 MinIO 对象存储中,MinIO 对象存储的模型存储路径为 /data/minio/data/models 目录,内置了 resnet 和 Tensorflow 官方演示模型 saved_model_half_plus_two 两个模型。可以直接用 linux 文件系统命令将模型拷贝到 MinIO 的模型存储目录中,也可以使用 s3cmd 来管理 MinIO 中的数据。


 

  • 服务配置


此种部署方式需要将配置参数的 s3.type 设为 minio


注:MinIO 的 access key 默认为 AKIAIOSXODNN7EXAMPLE

secret key 默认为 wJalrXUtqFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

二者均可以通过配置参数 s3.access.key 和 s3.secret.key 设为用户自定义的 key



方式三:多模型服务节点+公有云对象存储模型库


本部署方式部署多个模型服务节点,本地不部署模型库节点,模型保存在 QingStor® 对象存储模型库中。


适用于可以访问公网,并有公有云对象存储访问权限的场景,模型存储成本相对较低。


  • 服务详情



  • 模型存储

 

模型保存在公有云对象存储中,比如模型放在 QingStor® 对象存储的 Bucket models 中,则模型库根目录就要设为 s3://models


注:s3://models 为青云公开的模型存储库,s3://datasets 为青云公开的数据集


任何青云用户都可以用自己的 key 访问,或者直接访问url 比如 http://datasets.pek3b.qingstor.com/test/cat.jpg





  • 服务配置


此种部署方式需要将配置参数的 s3.type 设为 QingStor , 并更改相应的 access/secret key 为自己的 key



注:s3.type 设为 QingStor 并设置相应的 key 后, QingStor® 对象存储也可以用 s3cmd 访问,用法详见 s3cmd 命令详解。



赶紧点击阅读原文,注册体验吧。



广告时间

扫描小程序码立即报名


为了让更多的技术爱好者及用户能够近距离与我们展开交流,并快速 Get 到青云QingCloud 最新的技术、产品和正确的使用姿势,我们启动「CIC 2019 全国巡展」,巡回成都、西安、沈阳、深圳、太原、石家庄、苏州、上海、武汉、杭州 10 座城市,小伙伴们抓紧时间报名吧。

- FIN -

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接