“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

Uber 推出 PyML:加速机器学习开发的秘密武器

  • 2018-11-09
  • 本文字数:1571 字

    阅读完需:约 5 分钟

Uber推出PyML:加速机器学习开发的秘密武器

Uber 一直是加速真实世界机器学习解决方案实现最活跃的公司之一。就在今年,Uber 推出了 Michelangelo、Pyro.ai 和 Horovod 等技术,这些技术以现实世界中机器学习解决方案关键构建块为重点。近日,Uber 推出了一个机器学习栈,这一次是为了缩短从实验到产品的周期。PyML 是一个库,能够以与生产运行时兼容的方式快速开发 Python 应用程序。


PyML 试图解决的问题是大规模机器学习应用中无处不在的挑战之一。通常,数据科学家用于原型模型的工具和框架与相应的生产运行时之间存在明显的不匹配。例如,对于数据科学家来说,使用基于 python 的框架(如 PyTorch 或 Keras)来生成实验模型,然后调整这些模型使其适合于像 Apache Spark ML 管道这样具有特定约束的运行时,这是非常常见的。机器学习技术专家把这个问题称为灵活性和资源效率之间的取舍问题。就 Uber 而言,数据科学家正在使用 Python 机器学习框架构建模型,这些框架需要由 Michelangelo 团队进行重构,以匹配 Apache Spark 管道的约束。


克服这一限制意味着扩展 Michelangelo 的功能,以支持使用主流机器学习框架创建的模型,同时保持训练和优化模型的一致性。

PyML 简介

Uber PyML 的目标是简化机器学习应用程序的开发,弥合实验和生产运行时之间的差距。为了实现这一点,PyML 以下面三个方面为重点:


  • 提供机器学习模型的标准契约。

  • 实现使用 Docker 容器打包和部署机器学习模型的模型一致性。

  • 把集成了 Michelangelo 的运行时用于在线和离线预测模型。


下图说明了 PyML 的基本架构原则。


标准机器学习契约

PyML 模型可以使用不同的机器学习框架编写,如 TensorFlow、PyTorch 或 Scikit-Learn。模型可以使用的数据集类型主要有两种:DataFrames 和 Tensors。DataFrames 存储表格式结构化数据,而 Tensors 存储多维命名数组。在创建模型之后,把它们调整为标准的 PyML 契约定义,这本质上是一个从抽象类 DataFrameModel 或 TensorModel 继承的类。在这两种情况下,用户只需要实现两个方法:一个是加载模型参数的构造函数,另一个是接受并返回 DataFrames 或 Tensors 的 predict()方法。


打包和部署

在创建 PyML 模型之后,可以使用一致的结构把它们打包到 Docker 容器中。PyML 引入了一种基于四个基本构件的标准部署格式:



使用这种结构,开发人员可以使用以下代码打包和部署 PyML 模型。PyML Docker 镜像将包含模型和所有相应的依赖项。模型将可以立即在 Michelangelo 控制台执行。



在线和离线预测

PyML 支持批处理(离线)和在线执行模型进行预测。离线预测被建模为 PySpark 上的抽象。在那种情况下,PyML 用户只需提供一个 SQL 查询,与模型期望输入相匹配的列名和类型,以及存储预测输出的目标 Hive 表的名称。在后台,PyML 使用与在线模型相同的镜像和 Python 环境启动了一个容器化 PySpark 任务,以确保离线和在线预测之间没有区别。执行离线预测相对简单,如下面的代码所示:



PyML 模型的标准双操作(init、predict)契约简化了在线预测的实现。PyML 通过启用 Docker 容器的轻量级 gRPC 接口实现了在线预测,Docker 容器由一个如下图所示的常见的在线预测服务使用。根据请求,在线预测服务将通过 Mesos 的 API 以嵌入式 Docker 容器的形式启动相应的特定于 PyML 模型的 Docker 镜像。当启动容器时,它启动 PyML RPC 服务器,并开始监听来自在线预测服务的 Unix 域套接字上的预测请求。



PyML 通过弥合实验和运行时环境之间的差距,解决了大型机器学习应用程序中其中一个最重要的挑战。除了特定的技术贡献外,PyML 的架构可以适应不同的技术栈,可以作为组织开始机器学习旅程的重要参考。


关于 PyML 的更多技术细节,请查阅 Uber 技术博客:https://eng.uber.com/michelangelo-pyml/


查看英文原文:https://towardsdatascience.com/uber-introduces-pyml-their-secret-weapon-for-rapid-machine-learning-development-c0f40009a617


公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2018-11-09 16:411100
用户头像

发布了 1008 篇内容, 共 372.1 次阅读, 收获喜欢 340 次。

关注

评论

发布
暂无评论
发现更多内容

下一站,冠军|走进2022 OceanBase数据库大赛12强

OceanBase 数据库

数据库 oceanbase

【云图说】 | 第268期 初识开天企业工作台MSSE

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

首批!阿里云容器服务 ACK 顺利通过信通院云原生混部项目评估

阿里巴巴中间件

阿里云 容器 云原生

软件测试/测试开发 | 一步一步学测试平台开发-Vue restful请求

测试人

软件测试 自动化测试 测试开发 测试平台

重磅通知!OpenAI又放大招:官宣开放API接口-3.5版本 需求大涨,机遇与挑战并存,谁能拔得头筹?

加入高科技仿生人

人工智能 开源 openai ChatGPT

新思科技为三星SDS公司开源使用和风险管理提供自动治理解决方案

InfoQ_434670063458

开源 软件开发 新思科技 软件安全

what量化合约系统开发&源码丨clear合约量化系统开发技术(Demo案例)

I8O28578624

Soul 云原生网关最佳实践

阿里巴巴中间件

阿里云 云原生 实践 云原生网关

基于Python+UIautomation的WindowsGUI自动化测试实战(一)-记事本

自动化测试 GUI UIaotumation

ChatGPT潜能很大,问题也是

引迈信息

人工智能 低代码开发 应用开发 ChatGPT JNPF

新思科技发布《2023年开源安全和风险分析》报告

InfoQ_434670063458

开源 新思科技 软件安全

数据库革新拐点已来——MatrixOne Beta Program Recap

MatrixOrigin

云原生 分布式数据库 MatrixOrigin MatrixOne

软件测试/测试开发 | 测试平台开发-前端开发之Vue router路由设计

测试人

软件测试 测试开发 测试平台

瓴羊Quick BI与Power BI之争:数据大屏优势明显

对不起该用户已成仙‖

Apache IoTDB v1.0.1 发布|修复分区计算,优化集群启停流程

Apache IoTDB

IoTDB

基于Python+UIautomation的WindowsGUI自动化测试实战(二)-计算器

Python 自动化测试 GUI UIaotumation

小程序容器作为软件中间件技术不可忽视的价值

FinFish

小程序容器 小程序技术 软件中间件

「资源广场」上线|以开发者为中心,打造开放资源共享平台

Jianmu

jenkins CI/CD 镜像仓库 容器镜像 建木

开源项目的演进会遇到哪些“坑”?KubeVela 从发起到晋级 CNCF 孵化的全程回顾

阿里巴巴云原生

阿里云 开源 云原生 KubeVela

引领云数仓创新浪潮 HashData闪耀PostgreSQL中国技术大会

酷克数据HashData

OpenKruise 开发者不容错过的带薪实习机会!马上加入 LFX Mentorship 计划

阿里巴巴中间件

阿里云 开源 云原生 OpenKruise

Mac应用程序无法打开提示不明开发者或文件损坏的处理方法

魔仙苹果mac堡

Mac软件打不开

详细剖析|袋鼠云数栈前端框架Antd 3.x 升级 4.x 的踩坑之路

袋鼠云数栈

前端‘’

ChatGPT辅助编程

鲸品堂

ChatGPT 企业号 3 月 PK 榜

为企业全方位解决进销存管理难题的ERP套件

力软低代码开发平台

使用metrics-server监控k8s的资源指标

tiandizhiguai

DevOps 微服务 云原生 k8s

Tuxera NTFS2023版读写NTFS磁盘功能工具

茶色酒

Tuxera NTFS2023

ICLR 2023 | 网易伏羲3篇论文入选,含强化学习、自然语言处理等领域

网易伏羲

隐私计算技术路线介绍及对比

隐语SecretFlow

隐私计算

关于前端低代码的一些个人看法

这我可不懂

前端 低代码 低代码开发平台 JNPF 引迈

Apache IoTDB v0.13.4 发布|优化监控功能

Apache IoTDB

IoTDB

Uber推出PyML:加速机器学习开发的秘密武器_AI&大模型_Jesus Rodriguez_InfoQ精选文章