程序员电子刊2017年第五期

!

Contents

CSDN要闻3外刊速递4

封面报道

深度学习在推荐领域的应用8打造企业级云深度学习平台

小米云深度学习平台的架构设计与实现13美丽联合业务升级下的机器学习应用18自然语言处理技术在推荐系统中的应用22智能人机交互在电商领域的技术实践阿里小蜜31浅析强化学习及使用Policy Network实现自动化控制38人工智能创业的风口和泡沫46基于容器的AI系统开发50表示学习在信息推荐系统中的应用54

移动

稳定性与内存优化

小型团队的Android应用质量保障之道59 58同城iOS客户端IM系统演变历程66

欢迎关注CSDN微信公众账号

4Abroad Media 外刊速递

News 资讯2017.04

微秒击杀当今的计算机系统使编程人员能够轻松地在纳秒和毫秒级时间尺度上减轻事件延迟,但在微秒级上却显著缺少技术支持。对于仓库规模计算,这一疏忽会很快

成为一个严重的问题。有效处理微秒级事件,对用于数据中心网络或是新兴内存硬件的新型低延迟I/O 设备来说非常重要。处理器设计人员已经开发了多种技术,通过向存储器系统提供简单的同步编程接口来促进以纳秒尺度工作的多层存储器体系。而在减缓延迟的另一端,计算机科学家也在软件层面上提供了许多技术方法,来解决毫秒级问题。操作系统上下文切换就是一个典型的例子。同步编程模型比异步编程模型更适合用于纳秒和毫秒级设备,并且Google 公司的经

验让我们更倾向于使用同步方法。因为同步程序代码非常简单,更容易被编写,

编译与调试。举一个体现同步模型全局优势的例子,Google 使用了同步输入输出模型以及轻量线程,来重写分布式文件系统Colossus 客户库,在使代码更加简洁易懂的同时,性能也得到了显著提升。

更重要的是,将完成异步事件的压力从

程序员转移至操作系统或者线程库,使

得代码非常简单。这种转变在仓库规模

环境中是非常重要的,因为数以千计的

开发者接触同一代码库,导致每周都会

有大量的软件版本发布。

最近的趋势表明,一些新兴的低延迟I/O

设备可在微秒级上工作。除了微秒级硬

件,我们也对微秒级低延迟存储和通信

的需求逐渐增长。一个关键的原因就是

登纳德缩放比例定律的终止以及2003年

起摩尔定律的减慢,微处理器的性能已

不再稳定快速地提升。为了增强在线服

务,云公司只能增加计算机的数量用于

客户查询。例如,如今一位用户的搜索

查询已经转变成数以千计的远程请求。

用于纳秒级或者毫秒级的技术并不能很

好地运用在微秒级上。我们需要全新的

微秒级优化系统堆栈,重新考虑合适的

分层、抽象、控制与数据平面分离,以及

硬件/软件边界等相关问题。甚至也不再

需要保持处理器全速运转,而是在发生

微秒级访问挂起时让处理器停止运作,

将耗能让给其他未挂起的处理器。运用

这样的微秒级优化设计和相应的更快的

输入输出设备,可以获得新的应用编程

模型,更有效利用低延迟通信,显著提

高仓库规模计算的性能。

将世界数字化

实时通信与协作已成为新一代高清数字

地图的核心部分,可快速反应现实世界

所发生的变化。无人驾驶和施工现场测

量等相关应用,促使众多公司更倾向于

使用实时高精度测绘。英国创业公司SenSat 的测绘技术是由道路建筑工程应运而生的。例如,当一根柱子错位的时候,如果依赖人工测量在相对较晚的工程后期才能人为地被发现问题。但是如果利用航拍无人机每天扫描工地,那么项目管理者就能够根据3D 航拍地图,在需要付出较大代价之前指出错误。现时的一些行政规定限制了无人机可以覆盖的范围,但适合一些集中性的建设项目,比如高速公路桥或立交桥建设。然而,更大规模的应用,比如扩建英国交通最繁重的M4高速公路,则需要更长的调查距离和月数。英国政府正开始逐渐重视改变规定,来使无人机能有更高的自主性来支持M4高速公路扩建等类似的项目。而随着车辆变得更加自主,需要在几乎实时的基础上进行类似的道路详细测绘。当前许多地图绘制公司比如Google 、HERE 和TomTom ,正在使用装有摄像机和LIDAR 传感器的相似车队来测绘道路。不过,地图信息实现自主驾驶行车规划所需的细节水平仍然需要付出巨大

Communications of the ACM

5

Abroad Media 外刊速递

News 资讯2017.04以内容为中心网络因特网在创造之初,主要是为了在电脑与电脑之间传送电子邮件。而今天,人们会花费大量的时间在Net?ix 这一类平台上观看电影,通常同样的电影要在同一时间实时分送给成千上万的用户。所以现如今我们真正所需要的因特网,要能够给用户提供更多的带宽和更少的延迟,并且可以保证安全性。加利福利亚的帕洛阿尔托研究中心(PARC )开发出了一种更好的因特网架构,称之为“以内容为中心网络”

(Content-Centric Networking ,CCN )。该方法是改变信息的组织形式和检索方

法,以此提高网络的可靠性、可扩展性和

安全性。

历经了十年的开发之后,PARC 在2016年1

月发布了CCN 软件的开源代码。近几年,

阿尔卡特朗讯(被诺基亚收购)、华为、

Intel 、松下、三星等公司也对CCN 的研究

与开发做出了大量的贡献。在今年二月,

思科系统公司宣布收购了由PARC 开发的

CCN 平台。

现今的因特网,只有一种数据包——在用户之间传递时既携带内容又携带请求。但是在CCN 网络中,有两种数据包:内容数据包和兴趣数据包。它们共同合作为用户带去所需信息。内容数据包与传统的数据包类似,一个内容数据包中的比特位指定了一个网页中的一个广告、一篇文章中的

一张照片,或者一个视频的前几秒。而兴趣数据包像金毛猎犬一样,用户将它们发送到网络上,它们去寻找到特定的内容数据包,并将内容包带回给用户。一旦CCN 用户点击链接或输入网址,用户的机器会将搜索该内容的兴趣分组发送到CCN 网络中的转发引擎。该转发引擎具有三个主要组件:内容存储,挂起的兴趣表和转发信息库。CCN 通过如下原理工作:一个节点的转发引擎接收兴趣数据包,然后检查它们是否在其内容存储中;

如果没有,引擎接下来会查询待处理的兴

趣表,并且作为最后的手段搜索其转发信

息库;当它是路由信息时,引擎还使用算

法来决定将来存储或缓存哪些内容,以及

如何最好地向用户传递内容。

目前,诸如Netflix 这样的公司花费了大量

资金,在多个区域数据中心建立的内容交

付网络上存储最受欢迎内容的额外副本。

而使用CCN 的话,整个网络就像一个巨大

的内容传递网络,可以以这种方式安全地

复制和存储内容。随着CCN 的使用,接下

来的几十年,因特网将能为更多数以亿计

的用户,提供更快更安全的服务。IEEE Spectrum

的努力。

通过与NVIDIA 的合作,TomTom 希望通

过在车辆本身的图形处理器以及云中运

行更先进的人工智能算法来加速高清地

图的创建,并通过众包的方式来收集最

新的高清地图。而手持设备作为地图数据的丰富来源,这种实时数据流已经反馈到位置驱动的应用程序中,例如美国波士顿所使用的StreetBump 应用程序。数据不仅能突出显示交通堵塞,而且可以根据一段时间内收集的道路地平线分布,来估计高速公路上的实际可用车道数量。美国国家公路运输安全管理局与美国运输部合作,正在加快计划采用车对车(V2V )通信,来实现车辆和智能交叉路口在其周围的环境中共享实时数据。

6Abroad Media 外刊速递

News

资讯2017.04追查俄罗斯最臭名昭著的黑客2016年12月29日,时任美国总统奥巴马宣布对俄罗斯干预2016年美国大选实施制裁。在制裁名单上有一名俄罗斯黑客的名字:博加切夫(Evgeniy Bogachev )。博加切夫被认为在过去多年里利用黑客技术摧毁了世界众多金融系统,并且一直都没有受到应有的惩罚。博加切夫不是一个普通的黑客,他是一个银行大盗,也许是世界上最多产的银行大盗。但是谁也不知道在美国选举的黑客入侵中,博加切夫扮演怎样的角色。美国与俄罗斯计算机罪犯的斗争始于2009年春,当时FBI 在美国奥马哈市发现了两起奇怪的电子盗窃。最大的受害者是支付处理行业巨头First Data 的子公

司,他们在当年五月份损失了四十五万

美元。而后不久,奥马哈市第一国家银

行的一位客户又被盗窃了十万美金。这

两起盗窃似乎都来自于受害者自己的

IP 地址,使用它们自己的登录账号和密

码。检测他们的电脑时发现,这些电脑

都被同样名叫作Zeus Trojan 恶意软件入

侵。在网络安全圈中Zeus 臭名昭著,它

在2006年第一次出现,该恶意软件在网

络犯罪领域和网络安全领域都被看作

是一个杰作——快速、有效、通用。它

的作者像一个幽灵,他只在网上知名。

在网络虚拟世界中,他有很多名字,比

如Slavik 、lucky12345,又或者是其他六

个名字。经过长期的追查后,调查人员

最终锁定了一个真实的姓名:Evgeniy

Mikhailovich Bogachev 。

2015年,美国国务院悬赏300万美元通缉

博加切夫,这是美国有史以来对于计算

机犯罪发出的最高悬赏。但是他没有被

捕。事实上,根据美国的情报人士透露,

美国政府其实并没有怀疑博加切夫切

实参与了俄罗斯影响美国选举的黑客活

动。奥巴马当局之所以将他纳入制裁范

围,只是为了对俄罗斯政府施压,希望俄

罗斯政府可以交出博加切夫以示友好。

但不幸的是,博加切夫和其他俄罗斯计算机罪犯完全不在美国政府的管辖范围之内,因为美国与俄罗斯尚未签署引渡条约。与此同时,网络安全行业又有了新的威胁。在博加切夫的帮助下,新的网络犯罪策略新颖异常,敲诈勒索软件的散布速度正在加快。并且新的僵尸网络,尤其是Mirai ——一个感染物联网的僵尸网络,更加危险。没有人知道博加切夫接下来将会造出什么,有消息称他的行踪已经到了匹茨堡。但是没有真正的讯息可以显示他会再次出现,至少现在还没有。Wired

7人工智能,为我所用

Cover Story

封面报道当心!假如你未还考虑在公司业务中应用人工智能技术,就有被对手超越的风险。人工智能已不单单是发表学术论文、刷新正确率的竞赛,抑或全民参与的新闻事件,它早在为各行各业的先行者们创造着实实在在的利润和商业价值。而且,随着算法改进、硬件升级、架构优化,应用人工智能技术带来的收益还会越来越高。

这些先行者们正在关注哪些关键技术?如何从理论上跨越到企业创新实践?如何实现企业级云深度学习平台?在电商领域如何实现人机交互?除了深度学习之外还有哪些值得我们关注的技术?如何保持足够清醒的头脑并把握创业机遇?

本封面报道汇聚来自百度、阿里、小米、美丽联合、58同城等公司的技术专家,分享实践过程中的开发经验、行业的发展与前沿技术方向,展示这项技术如何才能“为我所用”。

人工智能,为我所用

责任编辑:何永灿(heyc@https://www.360docs.net/doc/2a4254107.html,)

9人工智能,为我所用

Cover Story 封面报道在实现算法前我们主要参考了如下三篇论文:

■Audience Expansion for Online Social Network Advertising 2016 ■node2vec: Scalable Feature Learning for Networks Aditya Grover 2016

■Deep Neural Networks for Y ouTube Recommen

dations 2016第一篇论文是LinkedIn 给出的,主要谈了针对在

线社交网络广告平台,如何根据已有的受众特征

做受众群扩展。这涉及到如何定位目标受众和原始受众的相似属性。论文给出了两种方法来扩展

受众:

1. 与营销活动无关的受众扩展;

2. 与营销活动有关的受众扩展。

在图1中,LinkedIn 给出了如何利用营销活动数

据、目标受众基础数据去预测目标用户行为进而

发现新的用户。今天的推荐系统或广告系统越来

越多地利用了多维度信息。如何将这些信息有效

加以利用,这篇论文给出了一条路径,而且在工

程上这篇论文也论证得比较扎实,值得参考。

第二篇论文,主要讲的是node2vec ,这也是本文

用到的主要算法之一。node2vec 主要用于处理网

络结构中的多分类和链路预测任务,具体来说是

对网络中的节点和边的特征向量表示方法。

简单来说就是将原有社交网络中的图结构,表达成特征向量矩阵,每一个node (可以是人、物品、内容等)表示成一个特征向量,用向量与向量之

间的矩阵运算来得到相互的关系。

下面来看看node2vec 中的关键技术——随机游走

算法,它定义了一种新的遍历网络中某个节点的

邻域的方法,具体策略如图2所示。图2 随机游走策略

假设我们刚刚从节点t 走到节点v ,当前处于节点v ,现在要选择下一步该怎么走,方案如下:

其中d tx 表示节点t 到节点x 之间的最短路径,d tx =0表示会回到节点t 本身,d tx =1表示节点t 和节点x 直接相连,但是在上一步却选择了节点v ,d tx =2表示节点t 不与x 直接相连,但节点v 与x 直接相连。其中p 和q 为模型中的参数,形成一个不均匀的概率分布,最终得到随机游走的路径。与传统的图结构搜索方法(如BFS 和DFS )相比,这里提出的随机游走算法具有更高的效率,因为本质上相当于对

图1 LinkedIn的Lookalike算法流程图

10人工智能,为我所用

Cover Story 封面报道当前节点的邻域节点的采样,同时保留了该节点

在网络中的位置信息。

node2vec 由斯坦福大学提出,并有开源代码,这

里顺手列出,这一部分大家不用自己动手实现了。

https://https://www.360docs.net/doc/2a4254107.html,/aditya-grover/node2vec

注:本文的方法需要在源码的基础上改动图结构。

第三篇论文讲的是Google 如何做YouTube 视频推

荐,论文是在我做完结构设计和流程设计后看到

的,其中模型架构的思想和我们不谋而合,还解

释了为什么要引入DNN (后面提到所有的feature 将会合并经历几层全连接层):引入DNN 的好处

在于大多数类型的连续特征和离散特征可以直接

添加到模型当中。此外我们还参考了这篇论文对

于隐含层(FC )单元个数选择。图3是这篇论文提

到的算法结构。

实现

■数据准备

获得用户的属性(User Profile ),如性别、

年龄、学历、职业、地域、能力标签等;

根据项目内容和活动内容制定一套受众标

签(Audience Label );

提取用户之间的关注关系,微博之间的转发

关系; 获取微博message 中的文本内容; 获得微博message 中的图片内容。 ■用户标签特征处理 根据步骤a 中用户属性信息和已有的部分受众标签系统。利用GBDT 算法(可以直接用xgboost )将没有标签的受众全部打上标签。这个分类问题中请注意处理连续值变量以及归一化。 将标签进行向量化处理,这个问题转化成对中文单词进行向量化,这里用word2vec 处理后得到用户标签的向量化信息Label2vec 。这一步也可以使用word2vec 在中文的大数据样本下进行预训练,再用该模型对标签加以提取,对特征的提取有一定的提高,大约在0.5%左右。 ■文本特征处理将步骤a 中提取到的所有微博message 文本内容清洗整理,训练Doc2Vec 模型,得到单个文本的向量化表示,对所得的文本作聚类(KMeans ,在30w 的微博用户的message 上测试,K 取128对文本的区分度较强),最后提取每个cluster 的中心向量,并根据每个用户所占有的cluster 获得用户所发微博的文本信息的向量表示Content2vec 。 ■图像特征(可选)将步骤a 中提取到的所有的message 图片信息整理分类,使用预训练卷积网络模型(这里为了平衡效率选取VGG16作为卷积网络)提取图像信息,对每个用户message 中的图片做向量化处理,形成Image2vec ,如果有多张图片将多张图片分别提取特征值再接一层MaxPooling 提取重要信息后输出。 ■社交关系建立(node2vec 向量化)将步骤a 中获得到的用户之间的关系和微博之间的转发评论关系转化成图结构,并提取用户关系sub-graph ,最后使用node2Vec 算法得到每个用户的社交网络图向量化表示。图4为简历社交关系后的部分图示。 ■将bcde 步骤得到的向量做拼接,经过两层FC ,得到表示每个用户的多特征向量集(User Vector Set, UVS )。这里取的输出单元个数时可以根据性

图3 YouTube推荐结构图

11人工智能,为我所用Cover Story 封面报道能和准确度做平衡,目前我们实现的是输出512个

单元,最后的特征输出表达了用户的社交关系、

用户属性、发出的内容、感兴趣的内容等的混合

特征向量,这些特征向量将作为下一步比对相似

性的输入值。

■分别计算种子用户和潜在目标用户的向量集,

并比对相似性,我们使用的是余弦相似度计算相

似性,将步骤f 得到的用户特征向量集作为输入

x,y ,代入下面公式计算相似性:

使用余弦相似度要注意:余弦相似度更多的是从方向上区分差异,而对绝对的数值不敏感。因此

没法衡量每个维度值的差异,这里我们要在每个

维度上减去一个均值或者乘以一个系数,或者在

之前做好归一化。

■受众扩展

获取种子受众名单,以及目标受众的数量N ;

检查种子用户是否存在于UVS 中,将存在的

用户向量化;

计算受众名单中用户和UVS 中用户的相似

度,提取最相似的前N 个用户作为目标受众。

最后我们将以上步骤串联起来,形成如图5所示。

在以上步骤中特征提取完成后,我们使用一个2层

的神经网络做最后的特征提取,算法结构示意图

如图6所示。其中FC1层也可以替换成MaxPooling ,MaxPooling 层具有强解释性,也就是在用户特征群上提取最重要的特征点作为下一层的输入,读者可以自行尝试,这里限于篇幅问题就不做展开了。讲到这里,算法部分就已基本完结,其中还有些工程问题,并不属于本次主题探讨范围,这里也不做讨论了。结果我司算法团队根据Lookalike 思想完整实现其算法,并在实际产品中投入试用。针对某客户(乳品领域世界排名前三的品牌主)计算出结果(部分)

图5 Lookalike算法示意图图6 Lookalike算法结构图图4 用户社交关系

12人工智能,为我所用Cover Story 封面报道

可以观察到以上微博ID 的主题基本都是西点企业或西点培训企业,和品牌主售卖的乳品有很高的关联性:乳品是非常重要的西点原料,除终端用户外,西点相关企业就是乳品企业主需要寻找的最重要的受众之一。探讨特征表达除了以上提到的特征外,我们也对其他的重要特征表达做了处理和变换:根据我们的需求,需要抽取出人的兴趣特征,如何表达一个人的兴趣?除了他自己生成的有关内容外,还有比较关键的一点是比如“我”看了一些微博,但并没有转发,大多数情况下都不会转发,但有些“我”转发了,有些“我”评论了;“我”转发了哪些?评论了哪些?这次距上次的浏览该人的列表时间间隔多久?都代表“我”对微博的兴趣,而间接的反应“我”的兴趣特征。这些数据看来非常重要,又无法直接取得,怎么办?下面来定义一个场景,试图描述出我们对看过的内容中哪些是感兴趣的,哪些不是感兴趣的: ■用户A ,以及用户A 关注的用户B ; ■用户A 的每天动作时间(比如他转发、评论、收藏、点赞)起始时间,我们定义为苏醒时间A_wake(t); ■用户B 每天发帖(转发、评论)时间:B_action(t); ■简单假设一下A_wake(t)> B_action(t),也就是B_action(t)的评论都能看到。这就能得到用户A 对应了哪些帖子; ■同理,也可知用户A 在A_wake(t)时间内转发了、评论了哪些帖子; ■结合上次浏览间隔时间,可以描述用户A 对哪些微博感兴趣(posti ve ),哪些不感兴趣(negative )。全连接层的激活单元比对提升在Google 那篇论文中比对隐含层(也就是我们结构图中的FC 层)各种单元组合产生的结果,Google 选择的是最后一种组合,如图7所示。图7 YouTube推荐模型隐含层单元选择对比我们初期选用了512 tanh →56 tanh 这种两层组合,后认为输入特征维度过大,512个单元无法完整的表达特征,故又对比了 1024→512组合,发现效果确实有微小提升大概在0.7%。另外我们的FC 层输入在(-1,1)区间,考虑到relu 函数的特点没有使用它,而是使用elu 激活函数。测试效果要比tanh 函数 提升0.3%-0.5%。感谢我司算法组周维在拟写这篇文章时提供的帮助。附:node2vec 伪码:吴岸城菱歌科技首席算法科学家,致力于深度学习在文本、图像、预测推荐领域的应用。曾在中兴通讯、亚信(中国)担任研发经理、高级技术经理等职务。

表1 部分计算结果https://www.360docs.net/doc/2a4254107.html,/u/2800343060/home 苏州遇见烘焙工作室https://www.360docs.net/doc/2a4254107.html,/u/5936697053/home 烘你欢心烘焙培训https://www.360docs.net/doc/2a4254107.html,/u/5676210405/home 马佐烘焙西点培训https://www.360docs.net/doc/2a4254107.html,/u/3227012590/home 流年InCakeDesign https://www.360docs.net/doc/2a4254107.html,/u/5699041328/home 韩式花朵蛋糕Class

图1 云深度学习平台整体架构14

图2 云深度学习平台分布式训练

15

人工智能,为我所用Cover Story封面报道

体的GPU型号进行更细粒度的调度,这需要我们暴露更底层Kubernetes API实现,这在集群测试中也是非常有用的功能。而无论是基于GPU的训练任务还是模型服务,我们都制作了对应的CUDA容器镜像,通过Kubernetes调度到对应的GPU计算节点就可以访问本地图像处理硬件进行高性能运算了。小米cloud-ml还开放了前置命令和后置命令功能,允许用户在启动训练任务前和训练任务结束后执行自定义命令,对于不支持分布式存储的深度学习框架,可以在前置命令中挂载S3 fuse和FDS fuse到本地目录,或者初始化HDFS的Kerberos账号,灵活的接口可以实现更多用户自定义的功能。还有超参数自动调优功能,与Google CloudML类似,用户可以提交时指定多组超参数配置,云平台可以自动分配资源起多实例并行计算,为了支持读取用户自定义的指标数据,我们实现了类似TensorBoard的Python接口直接访问TensorFlow event file数据,并通过命令行返回给用户最优的超参数组合。最后还有TensorFlow Application Template功能,在Cloud Machine Learning平台上用户可以将自己的模型代码公开或者使用官方维护的开源TensorFlow应用,用户提交任务时可以直接指定这些开源模板进行训练,模板已经实现了MLP、CNN、RNN和LR等经典神经网络结构,还可以通过超参数来配置神经网络每一层的节点数和层数,而且可以支持任意稠密和稀疏的数据集,这样不需要编写代码就可以在云平台上训练自己的数据快速生成AI模型了。

在前面的平台设计和平台架构后,要实现完整的云深度学习服务并不困难,尤其是集成了Docker、Etcd、Kubernetes、TensorFlow等优秀开源项目,组件间通过API松耦合地交互,需要的重复工作主要是打通企业内部权限系统和将用户请求转化成Kubernetes等后端请求而已,而支持标准的打包方式还可以让业务代码在任意云平台上无缝迁移。

云深度学习平台实践

目前小米云深度学习平台已经在内部各业务部门推广使用,相比于直接使用物理机,云服务拥有超高的资源利用率、快速的启动时间、近乎“无限”的计算资源、自动的故障迁移、支持分布式训练和超参数自动调优等优点,相信可以得到更好的推广和应用。

除了完成上述的功能,我们在实践时也听取了用户

反馈进行改进。例如有内部用户反馈,在云端训练

的T ensorFlow应用把event file也导出到分布式存储

中,使用TensorBoard需要先下载文件再从本地起

服务相对麻烦,因此我们在原有基础架构实现了

T ensorboardService功能,可以一键启动T ensorBoard

服务,用户只需要用浏览器就可以打开使用。

管理GPU资源和排查GPU调度问题也是相当繁琐

的,尤其是需要管理不同GPU设备和不同CUDA

版本的异构集群,我们统一规范了CUDA的安装

方式,保证Kubernetes调度的容器可以正常访问

宿主机的GPU设备。当然对于GPU资源的调度

和释放,我们有完善的测试文档可以保证每一

个GPU都可以正常使用,根据测试需求实现的

NodeSelector功能也帮忙我们更快地定位问题。

由于已经支持几十个功能和十几个深度学习框

架,每次升级都可能影响已有服务的功能,因此

我们会在多节点的分布式staging集群进行上线演

习和测试,并且实现smoke test脚本进行完整的

功能性测试。服务升级需要更新代码,但是为了

保证不影响线上业务,无论是Kubernetes还是我

们实现的API Server都有多副本提供服务,通过高

可用技术先迁移服务进行滚动升级,对于一些单

机运行的脚本也通过Etcd实现了高可用的抢主机

制,保证所有组件没有单点故障。

大家可以通过前面提到的文档地址和cloud-ml-

sdk项目了解到更多细节,或者关注我微博(@

tobe-陈迪豪)与我交流。

总结

本文介绍了实现企业级云深度学习平台需要的概

念和知识,基于小米cloud-ml服务探讨了云平台

的设计、架构、实现以及实践这四方面的内容,希

望大家看完有所收获。

陈迪豪

小米深度学习工程师,负责小米云深度学习平

台的架构和实现,目前专注于TensorFlow和

Kubernetes社区。

17

相关主题
相关文档
最新文档