>>返回主页
京东商城前台技术服务总监 徐奇琛:海量平台技术服务智能化实践

2018-03-21 14:40

  刚才主持人也说了BATJ的海量业务趋势,确实大家的增长速度都很快。去年我们在大量的做AI方向试点和投入,也积累了一些经验,前几天我稍微更新了一些新的话题,2017年理论上来说应该是人工智能的元年。

  首先简单自我介绍,我自身还是奶爸一枚,希望大家能够把工作和生活做的更均衡一些。主要也是做技术运营相应的工作,最初在腾讯这边做运维管理相关的工作,渐渐的我把自己的部门叫做技术服务部,就是说还是希望贡献技术服务的能力在产品研发的方向做更多一些技术支撑扩展,包括质量保障,运维的平台都会去做从事。个人更多也乐于做分享和学习,会参加比较多的联盟跟相应的社区的内容讨论。

  最开始晓玲这边同步做一些相应的devops规范也是圈内的朋友们业务时间做的总结,一方面在周末的时间写一些书,另外也会为整个行业做相应的沉淀。曾经很长时间在腾讯,从事腾讯的社交平台,在腾讯的各个方向比较多一些,社交、网媒和相应的一些广告、电商我都呆过,曾经也是负责整个易迅网的运维团队,现在是运维、质量、工程效率、技术服务开放平台的一些工作。

  今天的分享主要是跟大家聊一下关于AI方面自己的一些思考和一些实践。

  我刚刚提到2017年是人工智能的元年,一方面整个的业态都在向这个趋势上去转,2017年谈AI谈的非常多,各个公司有相应的实践,归根到底,我简单用一句话说,就是从梦想到现实的一个思考。

  正如莎士比亚说的,一千个人眼中可能有一千个哈姆雷特的形象。我们AI在各个行业、各个职能的一些思考,其实我觉得也会有很多的一些发散的方向。我相信大家脑中也会有一些自己的列举,包括很多人其实认为AI就是一种代替人工的,比如说无人驾驶或者无人送货、配送,把人做代替。第二是基于深度学习的方法,可能是更多的增效的方式,再到智能硬件、机器人、智能算法等等之类的。我觉得AI涵盖的范畴足够多,想象空间也足够多,可以有更多的实践的场景。

  但是其实真正到了比较实质的结果归结成0跟1,确实很多方向大家都非常认可,但是绝大部分公司,就像我PPT说的,它还处在一种更多的知识积累的阶段,其实还没有完全地能够寻找到它的场景跟它的开展方式,更别说产品了。

  但是比较残酷的是整个业界的领先者他们的速度非常快,大家可以看到大家在这些巨头在产品化和milestone的达成上面已经有一些自己的阐述,我觉得这是冰火两重天的境地。

  看一下行业和我们公司的AI分享,再到我们整个部门做的技术服务的AI方向的一个大趋势是怎么样的。首先这应该都是一些行业的领先者或者是AI的领航者,大家可以看到基本上也会有很多的BAT级别的翘楚,包括国外的一些顶尖的互联网巨头,Google、Amazon、Apple,国外顶尖的公司AI领域的投入是非常快的。大家看无论是从组织结构有专门为AI去设定相应的部门或者是岗位,AI Lab或者是风投部门,到一些具体的产品,OS、智能硬件,所以真正在AI上的里程碑已经初步呈现了,而且我们更多接触到这样一些产品。

  AI业务,这里列举了腾讯,腾讯的布局非常快,它在相应的业务上的关联,把AI做的也会非常快,包括个性化或者是社交的内容,其实也会跟AI做相应的接入。

  这个我们要看一下京东在做哪些AI的方向。这个是我上周做PPT的时候列举了这四个方向,一是零售大模块上,京东相应在采销的模式下面需要去做很多的采购跟相应的库存的管理,所以怎么样去做到非常最优的采购策略,所以我们现在是有一个专门的部门做相应的供应链的管理,也会去做成本优化。二是京东金融,会相应的在个性化的金融产品的推送以及对于相应的用户的信用分控管理做大量的实践。三是互联网产品,大家熟知的用户体系,用户行为的预测分析。四是运输物流,不知道大家有没有注意过,前一段时间冬奥会北京八分钟,应该有接近二十秒其实都是去展现京东亚洲一号的一个仓库,是完全的无人化的仓库去完成相应的分拨、投递的场景,当时看了以后也是相当激动。大家如果真的到京东在亦庄的总部去参观一下的话,大家会发现这种无人化的模式其实还是相当好的,无人车、无人送货这些都会在你身边经过。以上是业务方向的四个模块。

  说了行业、也说了公司。我们看一下整个技术服务层面AI可以分哪些方向去做,哪些是我们可以去从事的方向。第一块是智能运维,有智能监控,趋势数据的预测,其实有很多行业的试点已经开展。第二块是用户体验,一会儿我会花相对时间比较长去描述我们在用户体验这边的试点,因为用户对于互联网业务来说其实是至关重要的,就是我们怎么去挖掘用户体验里面产生的舆情,产生的一些产品研发方面的缺陷是我可以去通过AI技术去帮助我们更加高效地做这件事。第三是技术驱动业务的反哺,我觉得一方面要促进技术、促进业务的成长,其实我们很多的一些业务,从传统的方式来说是会有一些瓶颈,所以我觉得还是希望用一些算法去对于它做一些纠错或者是降低它的成本。第四块是在其他的技术服务商,不单单在运维,相应的一些自动化测试或者是性能或者是一些建议优化、决策上面AI也会带给业务很多的帮助,归根结底大家可以看到整张图围绕的是有足够多的海量数据去做支撑,在数据上面有不同的算法得到最终的决策和最优路径。

  AI的前景,刚才杨文兵花了很长时间跟大家介绍CMDB,包括像BAT有海量的业务场景,坦率说就是有数据的前提下,又有相应的痛点,这就是可以去做AI的一些前提。所以我也列举了一些为什么很多公司现在没有去做AI或者没有快速地去做算法平台或者是相应的产品化的一些试点,所以我更多的觉得现在还是根本没有痛点或者是说没有需求,这个可能是我做不做AI的一个本质,因为有痛点才会有场景,最终会有相应的落地。

  有场景会有相应的资源投入,在智能化的领域需要有很多的人才和一些配套设施的投入,这里我在后面会列举很多京东在这里的投入,包括人才、包括美国研发中心也会有大量的算法人才的加入,公司也会集中化地去规划很多算法平台、很多基础的GPU的平台。

  再来说规划,规划希望在整个团队里面对于整个AI的方向并且和业务是有一个合理化的规划,所以这是我对AI的一个理解吧,就是到底做不做或者怎么做。总结一句话就是结合特定的场景(痛点),通过海量数据的持续学习以及算法持续优化解决复杂问题并且持续达到一种更优的路径,永远没有最优。

  然后这是一个对于团队能力模型的一个定义,刚刚CMDB大家也知道,其实做很多的平台或者是一些基础能力的补充其实也会使你的团队更加的完善跟更加的标准化,我也是列举了现在通用的团队需要去成长的阶梯。第一级还是在业务野蛮的生长期,我们更多得用海量的一句话是叫做先扛住再去优化,这个时候根本没有时间去思考AI,先思考怎么活下去,所以这里有一些词大家听着会似曾相识,大家都经历过这样的阶段,你的成本没有太多的管控、组织结构相应来说是无序的、各种最佳实现的反驳都会有,我们处在野蛮生长阶段,先保证活下去。

  第二阶段经过业务的发展期,团队相对成熟,系统也有一些开源、流程约束也可以帮助团队减少一些风险,局部工具投入提高效率,规范算法、质量可以保障,数据的流控,度量能力初步建设。

  我觉得这两级其实不是太适合去考虑做智能化,连CMDB都没有,怎么做相应的调度,能量的管控都没有度量好,有可能在迁移过程中业务就垮掉了。降级开关的设定也没有逻辑的便利,这些都是阻碍你智能化的、AI规划的一些前提。

  真正到了第三级把它称之为更加标准化的阶段,我们可以叫做主动可控的一个阶段,就是我们也是通过比较快速的一些沉淀,就是我们发现我们的架构变成了一个三层比较合理化的架构了,可以去部署,各种执行操作平台去标准化地收敛,大量的标准化的操作,数据意识初步具备,流程有自助化可以缩短我们的执行,变更管控、测试体系,测试相对更加体系化,重视相应的容量和用户的管理,这些都逐步达到了一个相对来说可控的一个标准化的架构,包括团队的能力模型。

  再往上就更加适合了,更加稳定了,监控不单单是一些技术监控了,可以从用户、从应用到基础到相应的业务领域全部打通,我们把它叫做更加立体化的监控模式,监控、收敛、测试、算法、能力、相应的基础设施的完善都是能够让你更加好的去应用。

  所以其实还是会从下往上,大家理一理自己团队所处的阶段,真正把团队基本的前置能力和基本流程包括平台化的能力打造起来之后,才到了我们真正去思考是不是到了做AI的阶段。其实我的团队也是这么成长过来的,先还技术债,还完技术债之后再想一些更高阶的,包括AI这些。

  这张图相对比较简单,相对来说我是把它浓缩的比较聚焦一些,一方面其实我们在达到第三个阶段之后,确实是做了大量的人才的储备,其实包括AI是很需要大量的算法人才的加入,这个大家其实也知道,算法人才现在整个行业都是非常紧缺的,我们更多的可能还是在美国那边会有很多的算法人才的储备,我后面会讲很多的项目其实也是跟美国研发中心很多的一些算法工程师一起去做相应的实施,我觉得还会去做很多界定方面的工作。

  还有技术领域的投入,技术的投入集中在整个团队的技术积累,包括云、设备资源、AI的平台化的一些建设,再到业务是否驱动这些场景,我觉得这是首先比较重要的三个因素。再到底层的一些平台,我这里提到了AI一些算法平台,基于云的分布式的GPU的资源,这些都是支撑你AI发展的最底层,包括大数据,构成了你比较基础的AI的资源的底层平台。

  再从业务层面来看的话,我们会接受到更多组件化的系统,可以帮助你一些业务场景可以更快地接入算法,更快地接入一些相应的系统,包括有很多的一些切换、ABTEST的能力。

  再到最终就是一种场景化跟规划,这里其实还是基于下面的一个支撑,相对来说是可以去快速的去帮到你去做相应的实践。所以其实我觉得架子还是要搭好,架子搭好之后后面相对来说比较顺畅跟容易一些。

  我刚才也说了很多,我们也来看一下最近做了哪些AI的实践,怎么样摆脱人工操作,怎么样通过机器做相应的切换。

  我觉得做运维的看这张图再熟悉不过了,一张中国地图,全国各地的网络延时之类的一些数据,大家觉得智能调度,容灾切换的调度是很容易去做AI化的一个尝试。确实我们也是把这块的相应的切换跟容灾的分级操作,不是说所有的操作都是一刀切,从A机房切到B机房就可以了,而是要根据不同的场景持续地去学习你需要的切换策略。中国环境比较复杂,包括一些业务要有国际化的战略,这就让我们发现我们的网络会变得更加复杂,我们看到整个32个省份,大家经常说的三大运营商还会去面临一些中小运营商以及一些海外运营商的(竞争和挑战),整个商城主要是三地九个接入中心,怎么把资源合理运用,让你的用户更加快速、更加安全地去避开一些风险,所以我觉得是基于大量的数据需要去做的。

  通用的方式是大家经常去做数据的补充,数据的切换更多的是看网络层面,我觉得这远远不够,如果相应的容灾切换只看网络的话是会遇到很多问题,所以我们做的进一步的数据方面的补充就是我们更多的把用户端的数据会去做相应的一些可用性、探测性的一些检测,所以我们会把基础监控跟用户端监控的两部分数据首先会做AI方面的一些加工跟数据提炼,会把各个区域的一些用户的IP,因为现在特别是一个移动互联网时代,大家看到的IP跟以前PC时代会有很大的差异,所以这个IP的动态回收的机制会更加的快,我们也会有一个持续的机制帮助发现一些各个省份,真正的用户的IP确认它有没有一些可用性的问题,再结合到类似于比如说像IDC等等这样的一些基础的网络数据去做多重因子的一个判断。有了这些数据之后,我们再来看整个的全国的一个区域,再到整个IDC或者是CDN,从相应的一些切换,有没有一些预警,相应的一些预警之后的策略设定,这个都会有大量的动作跟相应的AI的一些因子会去做相应的前置条件的判断。

  我们现在真正去做切换已经不需要人了,因为我记得很清楚,现在经常晚上跟朋友在一起吃饭的时候,可能看到微信的管理端会PUSH一些切换后的通知,比如说某个节点有问题,切换到另外一些备份地区,再到一些重大故障,基本上都会通过没有人工介入的方式去参与,我觉得这也是几年内整个AIOps领域比较大的改变。

  四年前我还在腾讯的时候,当时很多的大流量的切割是不允许的,或者是不放心通过机器去做最终的切换。所以其实大家更多把切换叫做为自助化再到自动化,没有真正的智能化和无人化。现在我们整个京东商城,至少我这边所有业务的容灾切换都会基于一些AI化的操作,最终收到的就是切换动作完成的通知,或者有一个预警可能马上就要切换的通知,所以最终可能就是事后去做一些确认,所以这会大量地减少在响应时间上面的一些缩短,所以这是第一个智能场景,我们把它叫做为智能调度。在座很多朋友的公司也会去做,但是不一定做的这么彻底,就是完全无人化。

  来说第二个场景,我相信其实也是大家都会去投入的一个方向,我们把它叫做一种精准告警的预测,预测这个事还是要基于大量的数据分析和数据建模做一些判断。我们看一下图上面的曲线,首先看一下准不准,就是我们的曲线,预测的曲线跟最终的曲线基本上是没有任何区别,连毛刺都是一模一样的,这根曲线就是某个核心业务的收入、订单,一些核心指标的曲线,我们会把很多维度的监控和数据做不同的分类跟关联。整个CDN的网络波动性是相对比较高的,但是核心网络数据还是可以通过算法把它做精准化的预测。我相信不是简单地做一些算法方面的,比如去一些燥点,那个数据出来肯定不会那么准,而且营销类的电商业务受活动的波动或者是活动品类的波动其实还是会相当巨大的,这个我们首先也会去取一个月的数据,就是逐减吧,最远的一天它的权重会越来越小,所以每一天会有它的一些计算逻辑在里面。最终的最终,我们团队也在不断地更新自己的算法,所以对于我们所有核心类的业务指标基本上是95%以上是非常精准的,所以我们现在基于的相应的一些告警也会去对于那种波动性比较大的IDC的告警或者是网络的告警做大量的收敛。

  你可以看到通过这种算法精准化核心的数据做了优化之后,我们可以去掉基础的一些告警,相应的网络功能性的告警可以收敛80%,确实网络类的告警误告警机率很大。CDN的告警下降量会更大,所以我们把CDN的误告率收敛了90%。误报警现在是非常非常少的,一个季度可能也就是核心要去看的也就是几十条告警,这几十条里面真正90%是非常准确的,而且是真正做了操作的。所以这是一个基于监控的一个预测再做一些智能化收敛的场景,我相信在基于业务的一个理解的过程中,其实也会帮助大家做很多事。其实我们原来更多还是一个值班的微信群,各种技术团队拉在一起,风吹草动大家都看监控,这样就会很累。基于预测模式,准确率就会相当高了。

  这里再延伸一下,叫做更加立体化监控的概念,你真正监控、告警链条的顶端还是你业务出问题了,因为你基础的监控数量实在太多了,你一定要去建立那种相应的分析的方式,你会建大量的数据模型打通中间的关联,业务出问题再来反射到IDC到系统的问题可能相对会快一些。这也是一个场景,在这里跟大家分享一下。

  第三块应该说整个行业,至少用户反馈维度会重点去做的。这个分辨率比较差,大家可能看不太清楚。这里我就简单展开说一下,其实我刚才在一开始的阶段一直强调用户反馈这样一个模块,因为整个互联网产品的用户反馈实在太重要了,不单单是客服人员看用户反馈,我们现在整个产品研发体系的所有人都会去看用户反馈。但是,每天要看多少用户反馈?五万条?你怎么看?

  第一阶段我们会有一些叫做用户智控团队,一个组(7、8个女孩子)每天对着几万条线做分类,分类之后发现天都黑了,所有的数据都还没有跑完,大家可能都会经历这样一个阶段,就是数据是不实时的,过几天看到前天的数据出来,有一个功能不可用其实影响了很长时间了。因为有些问题不能从监控上面完全体现,用户的反馈和你的舆情能够帮助你得到更多的数据。在那个时候我们做了第一步改进是比较简单,就是写一些程序,做一些分类的标签,用高性能的方式做大量数据的分类,五万条数据先会分成用户的、客服的级别和相应的产品研发的级别,产品研发的级别是我们重点要去关注的,某个结算业务不可用了,某个页面打不开,升级升不了,像这些问题会有不断的二级和三级分类。即便如此,也是一个非常耗时的阶段,其实也是帮助当时一天能够看到相应的数据。

  第三阶段像我图上面画的,开展了一个AI化的探索,首先我切一半的用户反馈给到相应的AI数据建模团队,他们会做大量的算法。这个图提到分类的算法比较多,所以这里也经历了差不多半年的时间,我们整个把真正需要一天时间去加工、完成的相应的一些AI的数据做了大量的一个优化,基本上做到了实时,相应的准确率很高,原来通过程序第一轮解决40%是还没有分类的,小姑娘要再去分类,现在要用不断的算法迭代的方式,应该是剩不到10%,也就是几千的用户反馈是需要人工再去分类的,这个效率提升是极高的,而且是所有的团队都能第一时间看到对应他模块和对应他服务项目的用户反馈,这是非常有价值的。

  再结合整个用户反馈平台的链条打造,可以把这个做的更加产品化,包括相应的报表推送、报警推送,后面可能都在微信上面第一时间了解到自己的程序有没有出一些BUG。

  这里简单看一些数据,一开始描述说过了,更多还是从人工的分类方式打标,这种模式不可持续,对于用户问题的调整基本上也起不到什么帮助。通过学习,每个团队合作,提升输出的时效性和准确率。原来4天、7人无休40%,到现在基本上90%,是一个实时的数据。每周都会有不同的模型都会出来,每个月数据提升一个点到半个点,对于海量数据来说这个点是可观的。

  场景四,啄木鸟系统,电商的特点是流量浪费。大家可以想像,当你打开一个电商APP,有一个你很想参与的活动,打开之后发现活动不存在,或者是打开相应的图片,图片的耗时相当大,互联网是二八原则,超过两秒钟很多人不耐烦,超过八秒钟很多人会放弃产品的使用,所以其实我当时是规划了这样一个产品,把它叫做啄木鸟,还是把整个运营流量,每天几万个活动,把它可用性和用户性能做起来。第一期做的非常成功,无论是可用性等等,覆盖了京东各个终端,把所有产品都覆盖了,大家第一时间可以看到自己的问题。去年的数据9月份应该是查到了12900个活动问题,10月份发现了2.2万个活动问题,这个数量级可能又增加了,这里可以节省很多活动的流量,当然也会去减少人为的、人工的介入瓶颈。我觉得首先已经达到目的了,但是这个分析跟AI还没有关系。

  我们会遇到什么问题呢?我们检测出这些有问题的活动,需要推送给各个事业部做相应的一些修复,公司的事业部这么多,你的这些问题怎么分类,你还是要通过人吗,这就需要AI来解决,这也是用到了经典的贝叶斯的算法,对事业部做一些归类,最终让准确率趋于比较高的阶段,而这还不够。继续新的需求就来了,当你把场景覆盖好之后。当你点开一个今天的家电活动,但是我打开之后发现还是偏向于服装类的,这就有一些文不对题了,我们更多做一些图象识别的方式,真正把这种可用性问题的活动抓出来进一步提升用户体验。

  后面就简单说一下,具体用到集中化的图象识别接口的一些支持。

  这是简单的优缺点,当分类算法关联性比较强的话,它的准确率其实是会大大降低的,所以这个大家如果在相应的一些数据算法的实践阶段的话,其实都会有一些总结,就是发现它的一些优缺点。

  最后做一个总结,我觉得整个基于AI的探索,各个公司都没有去停滞,无论是对于整个的画像体系,这三个方向是我们后面在技术服务领域去聚焦的,对于画像体系的性能,性能画像的用户,所有的用户数据,我们要分析它的舆情、体验和问题,不单单是监控,是叫做画像体系,这个思维还是可以扩展的更大一点。包括你的资源、你的服务器、你的设备,这个都是有大量的数据会产生,有数据的地方就有痛点,有痛点的地方就可以通过AI去建立你的场景。再到精细化运营,遇到各种架构问题或者是故障场景,是降级、扩容还是相应的调度,这都是有相应的算法和数据做支撑。最后就是降本增效方面的投入,无人化是我们技术服务的大趋势,就是减少人员的投入,提升效率、减低成本,业务痛点场景优化,用技术反哺业务痛点。

  最后用我比较喜欢的一张图,也是我在夏天的时候拍的,在开飞机的时候,这是一个罗盘,我觉得罗盘就代表你正确的方向,你理解本质之后,你知道你的产品是不是需要在AI方面做投入。第二个就是快速冲刺的飞机在跑道上面,我觉得整体的AI的行业发展趋势就是这样一个阶段,方向已经很清晰了,大家都是在自己的跑道上面去做。最后用一句话,叫做蓄势而为、整装待发,希望大家在自己的业务领域里面找到自己的AI的实战方向,智能化的一些方式帮助大家提升,谢谢大家!

0