作者 | 神经星星

来源 | HyperAI超神经(ID:HyperAI)

近日,PyTorch 发布了 1.5 版本的更新,作为越来越受欢迎的机器学习框架,PyTorch 本次也带来了大的功能升级。此外, Facebook 和 AWS 还合作推出了两个重要的 PyTorch 库。

随着 PyTorch 在生产环境中的应用越来越多,为社区提供更好的工具和平台,以便高效地扩展训练和部署模型,也成了 PyTorch 的当务之急。

近日 PyTorch 1.5 发布,升级了主要的 torchvision,torchtext 和 torchaudio 库,并推出将模型从 Python API 转换为 C ++ API 等功能。

除此之外,Facebook 还和 Amazon 合作,推出了两个重磅的工具:TorchServe 模型服务框架和 TorchElastic Kubernetes 控制器。

TorchServe 旨在为大规模部署 PyTorch 模型推理,提供一个干净、兼容性好的工业级路径。

而 TorchElastic Kubernetes 控制器,可让开发人员快速使用 Kubernetes 集群,在 PyTorch 中创建容错分布式训练作业。

这似乎是 Facebook 联手亚马逊,在针对大型性能 AI 模型框架上,宣战 TensorFlow 的一个举措。

TorchServe:用于推理任务

部署机器学习模型进行规模化推理并非易事。开发人员必须收集和打包模型工件,创建安全的服务栈,安装和配置预测用的软件库,创建和使用 API 和端点,生成监控用的日志和指标,并在可能的多个服务器上管理多个模型版本。

上述每一项任务都需要大量的时间,并可能会使模型部署速度减慢数周甚至数月。此外,为低延迟在线应用优化服务是一件必须要做的事情。

此前使用 PyTorch 的开发人员,均缺乏官方支持的部署 PyTorch 模型的方法。而生产模型服务框架 TorchServe 的发布,将改变这一现状,它能够更容易地将模型投入到生产中。

在下面的例子中,将说明如何从 Torchvision 中提取训练过的模型,并使用 TorchServe 进行部署。

#Download a trained PyTorch model
wget https://download.pytorch.org/models/densenet161-8d451a50.pth#Package model for TorchServe and create model archive .mar file
torch-model-archiver \--model-name densenet161 \--version 1.0 \--model-file examples/image_classifier/densenet_161/model.py \--serialized-file densenet161–8d451a50.pth \--extra-files examples/image_classifier/index_to_name.json \--handler image_classifiermkdir model_store
mv densenet161.mar model_store/#Start TorchServe model server and register DenseNet161 model
torchserve — start — model-store model_store — models densenet161=densenet161.mar

TorchServe 的测试版本现已可用,其特点包括:

  • 原生态 API:支持用于预测的推理 API,和用于管理模型服务器的管理 API。

  • 安全部署:包括对安全部署的  HTTPS 支持。

  • 强大的模型管理功能:允许通过命令行接口、配置文件或运行时 API 对模型、版本和单个工作线程进行完整配置。

  • 模型归档:提供执行「模型归档」的工具,这是一个将模型、参数和支持文件打包到单个持久工件的过程。使用一个简单的命令行界面,可以打包和导出为单个「 .mar」文件,其中包含提供 PyTorch 模型所需的一切。该 .mar 文件可以共享和重用。

  • 内置的模型处理程序:支持涵盖最常见用例,如图像分类、对象检测、文本分类、图像分割的模型处理程序。TorchServe 还支持自定义处理程序。

  • 日志记录和指标:支持可靠的日志记录和实时指标,以监视推理服务和端点、性能、资源利用率和错误。还可以生成自定义日志并定义自定义指标。

  • 模型管理:支持同时管理多个模型或同一模型的多个版本。你可以使用模型版本回到早期版本,或者将流量路由到不同的版本进行 A/B 测试。

  • 预构建的图像:准备就绪后,可以在基于 CPU 和 NVIDIA GPU 的环境中,部署T orchServe 的 Dockerfile 和 Docker 镜像。最新的 Dockerfiles 和图像可以在这里找到。

用户也可以从 pytorch.org/serve 获得安装说明、教程和文档。

TorchElastic :集成的 K8S 控制器

当前机器学习的训练模型越来越大,如 RoBERTa 和 TuringNLG,它们向外扩展到分布式集群的需求也变得越来越重要。为了满足这一需求,通常会使用抢占式实例(例如 Amazon EC2 Spot  实例)。

但这些可抢占实例本身是不可预测的,为此,第二个工具 TorchElastic 出现了。

Kubernetes 和 TorchElastic 的集成,允许 PyTorch 开发人员在一组计算节点上训练机器学习模型,这些节点可以动态地变化,而不会破坏模型训练过程。

即使节点发生故障,TorchElastic 的内置容错功能也可以暂停节点级别的训练,并在该节点再次恢复正常后恢复训练。

TorchElastic 的内置容错能力支持断点续传

此外,使用带有 TorchElastic 的 Kubernetes 控制器,可以在硬件或节点回收时问题上,在被替换了节点的集群上,运行分布式训练的关键任务。

训练任务可以使用部分被请求的资源启动,并且可以随着资源可用而动态扩展,无需停止或重新启动。

要利用这些功能,用户只需在简单的作业定义中指定训练参数,Kubernetes-TorchElastic 软件包便可以管理作业的生命周期。

以下是用于 Imagenet 训练作业的 TorchElastic 配置的简单示例:

apiVersion: elastic.pytorch.org/v1alpha1
kind: ElasticJob
metadata:name: imagenetnamespace: elastic-job
spec:rdzvEndpoint: $ETCD_SERVER_ENDPOINTminReplicas: 1maxReplicas: 2replicaSpecs:Worker:replicas: 2restartPolicy: ExitCodetemplate:apiVersion: v1kind: Podspec:containers:- name: elasticjob-workerimage: torchelastic/examples:0.2.0rc1imagePullPolicy: Alwaysargs:- "--nproc_per_node=1"- "/workspace/examples/imagenet/main.py"- "--arch=resnet18"- "--epochs=20"- "--batch-size=32"

微软、谷歌,就问你们慌不慌?

这次两家合作推出全新 PyTorch 库的操作,其背后也许有着更深层的意义,因为「不带你玩」这个套路,在框架模型发展的历史上,已不是第一次出现。

2017 年 12 月,AWS、Facebook 和微软宣布,他们将共同开发可用于生产环境的 ONNX ,以此来对抗谷歌 TensorFlow 对工业界使用的垄断。

随后 Apache MXNet 、Caffe2、PyTorch 等主流深度学习框架,都对 ONNX 实现了不同程度的支持,这方便了算法及模型在不同的框架之间的迁移。

AWS、Facebook 和微软当初欲用 ONNX 一统框架江湖

而 ONNX 想打通学术界和产业界的愿景,实际上并没有达到当初的预期,各家框架依然用各自的服务体系,基本上只有 MXNet 和 PyTorch 深入到了 ONNX。

而如今,PyTorch 推出了自己的服务体系,ONNX 则近乎失去了存在的意义(MXNet 表示不知所措)。

另一方面,PyTorch 在不断的升级更新之下,框架的兼容性和易用性,正在逼近甚至赶超最强劲的对手 TensorFlow。

虽然谷歌有自己的云服务和框架,但 AWS 的云资源和 Facebook 的框架体系联合,强强联手之下,恐怕谷歌也将难以招架。

而微软已经被曾经 ONNX 三人组的两个小伙伴踢出群聊,下一步不知做何打算?

【END】

更多精彩推荐

NB-IoT 连接数过亿,开发者如何抓住新机遇?

华为云跻身Gartner报告中国三强,预示云计算市场的未来变局?

☞数据库激荡40年,深入解析PostgreSQL、NewSQL演进历程

☞黑客用上机器学习你慌不慌?这 7 种窃取数据的新手段快来认识一下!

☞超详细!一文告诉你 SparkStreaming 如何整合 Kafka !附代码可实践

☞Libra的Move语言初探,10行代码实现你第一个智能合约

你点的每个“在看”,我都认真当成了喜欢

PyTorch 1.5 发布,与 AWS 合作 TorchServe!相关推荐

  1. PyTorch 1.5 发布,与 AWS 合作 TorchServe

    内容概要:近日 PyTorch 发布了 1.5 版本的更新,作为越来越受欢迎的机器学习框架,PyTorch 本次也带来了大的功能升级.此外, Facebook 和 AWS 还合作推出了两个重要的 Py ...

  2. PyTorch 1.5发布,与AWS联手推出TorchServe

    导读:近日 PyTorch 发布了 1.5 版本的更新,作为越来越受欢迎的机器学习框架,PyTorch 本次也带来了大的功能升级.此外, Facebook 和 AWS 还合作推出了两个重要的 PyTo ...

  3. PyTorch 1.9发布,支持新API,可在边缘设备中执行

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨机器之心 编辑丨极市平台 导读 PyTorch 团队发布了 P ...

  4. 董明珠今晚开启抖音直播首秀;传苹果将去掉 iPhone 闪电接口;PyTorch 1.5 发布 | 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自视觉中国 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦, ...

  5. 专注创新 共创未来——2021南大通用产品发布暨生态合作伙伴大会成功举办

    2021年9月1日发布的<关键信息基础设施安全保护条例>,确立了我国关键信息基础设施安全保护的专门制度,也为信息技术应用创新的终极目标指明了方向和意义.数据库管理系统作为信息化系统三大基础 ...

  6. PyTorch 1.12发布,正式支持苹果M1芯片GPU加速,修复众多Bug

    作者丨陈萍 来源丨机器之心 PyTorch 1.12 正式发布,还没有更新的小伙伴可以更新了. 距离 PyTorch 1.11 推出没几个月,PyTorch 1.12 就来了!此版本由 1.11 版本 ...

  7. 消费新品周刊 | 卡西欧发布本田赛车合作款手表;FILA推出时尚凉拖鞋系列

    卡西欧.FILA 斐乐.阿迪达斯.迪士尼商店.麦当劳发布最新产品. 消费品 卡西欧发布本田赛车合作款手表 卡西欧计算机株式会社(Casio Computer Co.)宣布推出ECB-10HR,这是一款 ...

  8. PyTorch 1.3发布:能在移动端部署,支持Colab云TPU,阿里云上也能用

    本文经AI新媒体量子位(公众号ID:qbitai)授权转载,转载请联系出处. 本文约2700字,建议阅读7分钟. 本文向你介绍 PyTorch1.3 的新特性. "我要转PyTorch!&q ...

  9. PyTorch 1.3发布!能在移动端部署,支持Colab云TPU,阿里云上也能用

    点击我爱计算机视觉标星,更快获取CVML新技术 晓查 一璞 发自 凹非寺 量子位 报道 | 公众号 QbitAI "我要转PyTorch!" 看到1.3版本的新特性之后,有开发者在 ...

最新文章

  1. 你居然还不知道Mysql存储引擎InnoDB分为内存架构、磁盘架构?
  2. python 三数之和
  3. 为什么说下一个十年的主战场在Serverless?
  4. Java 数组与容器之间的转化 实现数组动态赋值
  5. 微软职位内部推荐-Software Engineer II-Search
  6. 泛泰A870(高通APQ8064t 600 cpu) Mokee4.4.2(Android4.4) 图赏
  7. 除了搜岛国老师的作品,以图搜图还有什么骚操作?
  8. 案例▍Python实战 爬取万条票房数据分析2019春节档电影状况
  9. 批量修改excel表格的名字(无需编程经验)
  10. 计算机桌面来回闪烁,电脑桌面图标一直闪
  11. Java Wed学习总结
  12. OIO、NIO、AIO小结
  13. scratch案例——音乐
  14. Linux平台基于poll实现网络编程IO多路复用
  15. Git提交记住用户名和密码
  16. 笔记本电脑锁屏密码能输入,但解锁后键盘不好用
  17. WordCount 案例
  18. 计算机基础:今天一次把 Unicode 和 UTF-8 说清楚
  19. spring boot 虚拟路径url中文无法访问
  20. 批处理命令 删除文件,重命名文件

热门文章

  1. 字节输入流-InputStream demo3
  2. iOS中将后台JSON数据转化为模型的总结
  3. 【转】MongoDB资料汇总专题
  4. 对C#中的Close()和Dispose()的浅析
  5. 懂了这些,你才真正懂了C
  6. 编程之美--高效率算出1的数目之扩展问题
  7. 郁金香VC外挂教程(全) 翻录版 免Key(精品教程)
  8. hduoj Stars 二维树状数组
  9. 设置gradle远程仓库_有幸得到Alibaba内部Gradle实战笔记,趁双节来狂补
  10. 第一章 密码学和加密交易的介绍