开发部署时间从几个月到几分钟:eBay的大规模AI平台实践

2020 年 1 月 01 日

开发部署时间从几个月到几分钟:eBay的大规模AI平台实践

本文将介绍eBay的人工智能转型是如何通过一个统一开放的现代化人工智能平台实现的。


本文最初发布于 eBay 技术博客,由 InfoQ 中文站翻译并分享。



你是否曾经想要找一件物品,却难以用语言来描述它?现在,有了 eBay 的现代化人工智能平台提供的计算机视觉功能,这项技术可以帮助你根据你点击的照片或图像找到物品。用户可以进入 eBay 应用程序,拍下他们正在寻找的东西的照片,只需要几毫秒,平台就会显示出与图像匹配的物品。用户不仅触发了计算机视觉技术,还利用了一些先进的人工智能功能,包括深度学习、分布式训练和推理。该计算机视觉算法对 5 亿多张图片和 eBay 的 14 亿份清单进行筛选,找到在视觉上相似的最相关的清单。


eBay 之所以能够实现如此有效的、大规模的、精确的人工智能,一个主要原因是 Krylov——eBay 最先进的现代化人工智能平台,其目标是提高 eBay 的人工智能生产率,并加速大规模人工智能模型的上市时间。


人工智能平台正对所有行业的领军企业产生了巨大的影响。像谷歌这样的公有云提供商使用人工智能平台提供了许多产品和服务。Facebook 的人工智能平台名为 FBLearner Flow,可以对新闻源进行个性化处理,并过滤掉攻击性内容。在 Uber,机器学习平台米开朗基罗(Michelangelo)提供了一种能力,让顾客能够准确预测他们通过 UberEats 点的餐何时送达。


类似地,eBay 从头开始构建了 Krylov,目标是将其作为一个可伸缩的、多租户的、基于云的人工智能平台,以支持各种规模的人工智能用例。仅在 2019 年,eBay 的数据科学家每月就使用 Krylov 运行数千个模型训练试验,这些试验涵盖了各种人工智能用例,如计算机视觉、自然语言处理(NLP)、销售规划建议、买方个性化服务、卖方价格指导、风险、信任、运输估计等等。



图 1 eBay 的 AI 策略


从几个月到几分钟


在 Krylov 之前,数据科学家需要几周甚至几个月的时间来建立一个具备生产力的模型。他们需要采购和管理基础设施,将数据转移到机器上,并安装框架——有时还会遇到问题,带来额外的生产管理费用。在大型数据集上训练模型不能跨节点伸缩。


现在,人工智能云上的基础设施可以按需使用,数据科学家可以访问最新的软件、硬件、模型和运行时,如 Notebooks、Tensorflow、PyTorch 和 H20。通过这些运行时,我们可以对 BERT(用于语言理解)或 ResNet(用于计算机视觉)等模型在我们的 14 亿库存清单上进行大规模的训练。


数据科学家可以使用分布式训练在大数据集上训练模型。他们可以同时进行试验和超参数调整,记录和可视化试验,并部署最好的模型试验。例如,我们的人工智能研究人员使用 Krylov 来训练神经机器翻译模型、用于推荐系统的深度和广度模型,以及用于增强图像搜索的计算机视觉模型。这是提高模型精度和缩短 eBay 机器翻译技术上市时间的关键。机器翻译技术对实现跨境贸易贡献巨大,占 eBay 国际收入的 59%。


Krylov 允许我们的人工智能团队最大限度地利用 eBay 拥有的海量数据,包括批量数据和实时数据。如果将数据看作是人工智能和机器学习的燃料,那么 Krylov 就是由这种燃料驱动的复杂的交通工具。


这是一种快速发展的交通工具。如今,数据科学家可以在不到一分钟的时间内,通过流行的软件框架(Tensorflow、Scikit Learn、数学库、Jupyter Notebooks 等)在自己选择的计算配置(GPU、高内存多核心)上构建一个 AI 工作空间。以前,这个过程可能需要几天。


数据科学家还可以使用 Python、Java 或 Scala 接口运行自动化 AI 工作流(管道),以试验各种方法(超参数),并记录他们的试验及比较试验的输出。在大型数据集和模型上进行超参数调优和运行分布式训练的能力显著提高了模型的准确性。


为了更好地管理系统中传输的大量数据,eBay 设计并构建了自己的专用服务器。新的服务器可以让 eBay 的数据科学家和工程师加速开发新功能,将开发时间从几周减少到几个小时。


在业务影响方面,部署时间有巨大的改善。eBay 现在可以将模型训练自动化,并将模型部署到个性化或通用推理平台上,只需几天,而以前需要几个月。这导致了一些重要功能的改进,比如图像搜索,它允许购物者通过上传相似商品的图片来浏览他们想要的商品。


建立统一的人工智能平台团队


Krylov 是高度创新的,它的开发方式也是如此。


eBay 的统一平台需要跨不同的用例集,比如计算机视觉、自然语言处理(NLP)和推荐系统。因此,开发人员和数据科学家有各种各样的需求。这是一个为期多年的平台转型。实现 Krylov 是一项打破各种竖井并跨职能和地理区域开发和执行统一愿景的实践。


为了领导该项目,我们组建了统一人工智能计划核心团队(ICT)。ICT 包括来自 AI 平台团队的代表(该团队是服务的提供者)、平台的所有者和构建者。此外,人工智能平台还依赖于硬件、计算、网络、存储和数据服务。


ICT 的第三个组成部分是 AI 领域团队,即平台的内部客户,例如广告、计算机视觉、NLP、风险、信任和营销等方面的 AI 研究和工程。对于日常的 AI 生命周期管理,这些人工智能团队已经从定义、实现和采用这个平台获益。


这些专家一起为 eBay 创建了一个统一的 AI 愿景,包括平台的战略、路线图和关键原则。这是一个实践过程。在不同的地方,来自领域团队的研究人员和工程师会以内部开源的方式参与到平台某些部分的构建。因为这些工程师和研究人员更接近领域问题(AI 生命周期),或者在过去已经为他们的特定需求构建了框架/平台,所以他们能够提供关键的输入。在某些情况下,有些框架和平台被纳入了“统一 AI 平台”,因为它们很好地解决了一个特定的问题,并有助于加速平台向更广泛的 eBay AI 社区的发展。


此外,我们还设立了一个 eBay 机器学习(ML)工程奖学金项目,任何在 eBay 的工程师都可以加入到人工智能平台团队中,类似于一个实习项目,帮助构建产品待办列表中的平台特性。这个奖学金项目的目的是让 eBay 工程师熟悉 ML 的概念和技术。参与者会获得来自资深领域专家的关于 ML 工程概念的指导。


内部开源模型和 ML 工程奖学金项目不仅有助于代码贡献,而且也在我们扩展我们的科学家和工程师的技能集时,作为平台开发的反馈机制。


了解痛点


在构建 Krylov 的探索阶段,为了更好地理解构建 eBay 人工智能的难点和挑战,跨不同地理位置的 eBay 全球团队协同工作。这包括理解需求和希望;对人工智能研究人员和开发人员的日常生活表示理解和感激;并研究行业中现有的方法。


分阶段构建、采用和转换人工智能的多年时间里,需要:


  • 通过强大的计算能力(GPU、高内存多核心)轻松、安全、高效地访问数据的人工智能训练集群;

  • 训练平台:可自动训练工作流及交互式工作空间、SDK、客户端(Python、Java、Scala、REST);

  • AI模型生命周期管理:模型试验管理、模型管理服务、部署服务、AI Hub(基于Web的UI)

  • 模型服务平台和反馈循环:将AI模型作为服务绑定到试验框架和监控系统(操作以及模型性能)实现部署;

  • 用于建模、部署和推断由数据发现、准备、特性存储和服务以及反馈循环组成的生命周期的数据生命周期抽象;

  • 此外,该平台必须建立与几个关键的原则,以解决eBay不同数据科学家和工程团队的人工智能用例和操作模式。我们确立的主要原则有:

  • 支持异构软件框架——Tensorflow、PyTorch、Cafe、Notebook以及任何选用的框架;

  • 异构硬件架构——支持GPU、高内存CPU;

  • 支持大规模;

  • 以开源的方式使用开源技术。



图 2 使用 AI 平台进行端到端的 AI 模型生命周期管理



图 3 AI Hub(用于模型端到端生命周期管理的 UI)显示了在 AI 项目中与合作者进行的模型训练试验



图 4 AI Hub 显示了一个 AI 项目中两个模型训练试验之间的指标对比



图 5 AI Hub 显示了一个 ML 模型训练工作流(DAG)的可视化,在这里用户可以看到状态以及工作流中每个任务的更多细节。用户还可以附加日志和资产、指定配置和查看部署状态。


平台建成后,我们将为 AI ICT 团队提供预览、Alpha 和 Beta 访问,让他们提前访问并测试平台。这种迭代式的、具有统一愿景和执行力的协作帮助 eBay AI 社区为自己构建了一个统一的平台。


虽然早期的结果取得了成功,但这并不意味着我们已经完成了全部工作。人工智能是一场没有终点的进化之旅。展望未来,我们将通过 eBay 的人工智能托管市场继续创新之路,我们也会继续分享我们的发现。


原文链接:


eBay’s Transformation to a Modern AI Platform


2020 年 1 月 01 日 09:002324
用户头像
蔡芳芳 InfoQ高级编辑

发布了 502 篇内容, 共 227.9 次阅读, 收获喜欢 1364 次。

关注

评论 2 条评论

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

如何在 Mac 上优雅的截图和录屏

Winann

macos 效率 效率工具 Mac

游戏夜读 | Scikit-learn的2018自述

game1night

JVM源码分析之Object.wait/notify实现

猿灯塔

JVM

一篇文章搞定Java处理Excel的各种疑难杂症

知春秋

Java Excel POI

游戏发行中学到的重要经验(严肃长文)

谢锐 | Frozen

独立开发者 游戏开发 游戏出海 移动互联网

Web3极客日报#140

谢锐 | Frozen

区块链 独立开发者 技术社区 Rebase Web3 Daily

找一个更好的理由

史方远

职场 成长 工作

“四个维度” 讲明白什么是微服务!

攀岩飞鱼

微服务架构 单体系统 架构设计 团队组织 康威定律

记一次MHA切换故障踩的坑

一个有志气的DB

MySQL 高可用 复制 主从同步 故障分析

为什么软件开发很难外包

刘华Kenneth

外包 DevOps 风险 背锅

Azure App 部署Django 和 PostgrSQL

yann [扬] :曹同学

Python azure

战略懒惰有多可怕

Neco.W

创业 重新理解创业 初创公司

大一到大三总结

迷羊

学习 经历

香港科技大学与OSL海科签订无毒海洋防污技术独家授权协议

极客编

零基础如何学架构

兆熊

架构

Leetcode 556. Next Greater Element III

隔壁小王

算法

Binlog2sql恢复误删除的数据

一个有志气的DB

MySQL 安全 数据

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (八)好单元测试的特质

编程道与术

Java 编程 软件测试 TDD 单元测试

决战下半场:小程序技术助力金融APP重回C位

fino星君

小程序 数字化转型 app重构

看完这篇HTTP,跟面试官扯皮就没问题了

cxuan

https okhttp

谈谈控制感(4):损失的后果很严重

史方远

职场 心理 成长

阿里巴巴泰山版《Java 开发者手册》,也是一份防坑指南

古时的风筝

Java规范 Java开发手册

浅析 - CocoaLumberjack 3.6 之 DatabaseLogger

Edmond

ios sqlite log4j CocoaLumberjack DDLog

elasticsearch源码解析(一)——restapi

罗琦

elasticsearch 源码分析 RESTful

谈谈双亲委派模型的第四次破坏-模块化

寻筝

Java JVM

MySQL安全-审计

一个有志气的DB

安全 MySQ

我画了35张图就是为了让你深入 AQS

一枝花算不算浪漫

AQS jdk源码

看完这篇,你也是字符编码大神(ASCII、Unicode、UTF-8、UTF-16、UTF-32)

Meandni

Java 面试 Unicode utf-8 utf-16

经历过疫情,你懂得了什么

Winann

疫情 个人成长 生活 成长

初次见面

KAMI

高仿瑞幸小程序 09 云数据库初体验

曾伟@喵先森

小程序 微信小程序 前端 移动

开发部署时间从几个月到几分钟:eBay的大规模AI平台实践-InfoQ