PyTorch 1.5 发布,与 AWS 合作 TorchServe

  • A+
所属分类:技术资讯

PyTorch最近发布了1.5版本的更新,PyTorch(一种越来越受欢迎的机器学习框架)这次也带来了巨大的功能升级。Facebook和AWS还联合发布了两个重要的PyTorch库。
关键字:PyTorch AWS TorchServe
随着PyTorch在生产环境中的使用越来越多,为社区提供更好的工具和平台以有效地扩展培训和部署模式也成为PyTorch的首要任务。
PyTorch 1.5最近发布了一些功能,例如升级主要torchvision、torchtext和torchaudio库以及将模型从Python API转换为C API。
此外,Facebook还与Amazon合作推出了两个重型工具:TorchServe模型服务框架和TorchElastic Kubernetes控制器。
TorchServe旨在为大规模部署py torch模型推理提供干净、兼容的行业级路径。
TorchElastic Kubernetes控制器使开发人员能够快速使用Kubernetes集群,以便在PyTorch中生成容错分布式培训作业。
Facebook似乎是携手亚马逊,在大型性能AI模型的框架上宣传TensorFlow的措施。
TorchServe:用于推断
为大规模推理部署机器学习模型并不容易。开发人员必须收集和打包模型人工效果,创建安全的服务堆栈,安装和配置预测的软件库,创建和使用API和端点,生成用于监视的日志和度量,并尽可能在多个服务器上管理多个模型版本
其中的每项任务都需要相当长的时间,模型部署速度可能会降低几周或几个月。此外,在线应用低延迟优化服务也是必须的。
使用PyTorch的开发人员没有正式的支持方法来部署PyTorch模型。生产模型服务框架TorchServe的发布将改变这种情况,使模型更容易投入生产。
以下示例说明了如何从Torchvision中提取经过培训的模型,以及如何使用TorchServe进行部署。
现在可以使用TorchServe的测试版本,其特征是:
原始生态API:支持预测推断API和模型服务器管理的管理API。
安全部署:包括安全部署的HTTPS支持。
强大的模型管理功能:通过命令行界面、配置文件或运行时API完全配置模型、版本和单个工作线程。
模型存档:提供运行模型存档的工具,这是将模型、参数和支持文件打包为单个永久工件的过程。使用简单的命令行界面提供PyTorch模型所需的全部内容的单个“。mar”文件中。这个。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配置的简单示例:
微软,谷歌,就问你慌不慌吗?
对于新的PyTorch库操作,两种合作关系在这一方面可能有更深的意义。因为“not your play”这个例行程序并不是框架模型开发历史上第一次出现。
2017年12月,AWS、Facebook和Microsoft宣布将共同开发可用于生产环境的ONNX,以对抗Google TensorFlow的工业使用垄断。
然后,关键的深入研究框架(如Apache MXNet、Caffe2和PyTorch)将提供对connectx的不同级别的支持,从而使算法和模型可以在不同的帧之间轻松迁移。
AWS、Facebook和Microsoft最初希望使用ONNX集成框架
但是ONNX打破了学术界和产业界的愿景,事实上,正如当初预想的,每个框架仍然使用自己的服务体系,只与MXNet和PyTorch连接在一起。
PyTorch现在推出了自己的服务系统,ONNX几乎失去了存在的意义(MXNet说他不知所措)。
另一方面,在持续升级更新中,PyTorch正在接近(甚至追赶)TensorFlow,tensor flow是框架兼容性和易用性的最强大对手。
虽然谷歌有自己的云服务和框架,但是AWS的云资源和Facebook的框架系统相结合,谷歌似乎也很难赶上。
微软已经被ONNX三人组的两个小伙伴赶了出来,不知道下一步怎么办?

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: