长空搏击,用算法为鲲鹏插上飞翔的翅膀
“我思故我在”,不知道父母当初是不是受到了笛卡尔的启发,给我取了这样一个“我思”的名字。也许正是印证了父母的期望,在整个蓬勃的青春岁月,我一头扎进了技术的浩瀚海洋里。
在外人看来一行行枯燥的代码,庞杂的知识结构,晦涩的逻辑语法,艰苦的科研攻关,在我眼中却是另一番别有风味的“奇异”景象——信息时代为人类插上锋利的羽翼,时间被折叠,我以灵态飞行在多维宇宙自由航行;世界万物固然复杂,我却可以用0和1来掌控和定义……
这一切都深深吸引着我,在古都西安,我用十年时间在计算机的二进制世界里学习和研究,而后加入华为,一头钻进算法的奇妙世界。
2014年,27岁的我从西安交通大学计算机系博士毕业,来到了向往中的华为IT算法部,成为了一名算法工程师,开始“真刀真枪”地参与到商业项目研究和交付实战中。
一天,一个企业存储系统的资源争抢难题横在了我的面前。企业存储是一个非常复杂的系统,对cache(高速缓存)资源的需求各不相同,同时运行必然会出现资源的争抢问题,用户会感觉计算机卡住了。
“可以用负反馈模型来实现争抢资源的调控。”我第一时间想到。这个模型很有“劫富济贫”的意味,比如第一种业务占了过多资源,我就想办法让它释放出一部分,给第二种业务用,跟“拧水龙头”一个道理。我思索着,认为这个理论模型可行。
但很快我发现实际效果并不好。我们的存储系统跟“拧水龙头”不一样,不是在后端“拧一下”,水流就能立竿见影地变小;而是需要一定的时间才能起作用,算法达成收敛非常慢,甚至无法收敛,我忽略了调控迟滞性的问题。
正苦恼着,我忽然想到,我们部门可是“卧虎藏龙”啊,隐藏了很多技术大神,另外一位数学系的博士小伙伴不是正好在做控制方面的研究吗?我赶紧拨通电话,对方一听很感兴趣,我们一头钻进复杂的存储系统里,思考如何从技术角度优化模型。
另一位拥有优秀算法技能、又有工程落地经验的“大神”也伸出援手,“不如把存储系统分成前、中、后三段,分开去看调控动作究竟在哪一段生效。”他建议。“区间调控!”我们的灵感火花再次点燃,顺利将问题精准定位。
我们开始修改模型,将水流减小开始生效的“点”,换成“区间”来衡量。比如“拧一下”之后,水流减小的幅度值在预期区间内,我就判定调控动作有效,可以进行下一步。
经过不断的调测和打磨,模型终于成功收敛,我们的调控目标顺利达成。后来在两台服务器组成的一套更为复杂的阵列环境里面,我们又一鼓作气,成功解决掉“两个水龙头同时流水”的升级版难题。
这段经历让我深刻地感受到,在这如同战场一般的激烈商场里,公司需要的是面向商业竞争力的算法研究,不再只是学校里的学术创新。我顺利走出了“象牙塔”,适应了身份的转变,甚至感到更加兴奋,能将自己所学应用于实践中并获得商业成功,这种从“研究”到“落地”的感觉,简直不能更棒了!
2020年,随着组织调整,我和团队一起来到新成立的计算产品线。
经历了前几年的摸爬滚打,此时我在大数据机器学习算法领域积累了不少经验,围绕着安平、金融等行业客户的痛点问题,展开算法联创项目,取得了扎实的成果,在客户层面建立起了华为的口碑。
而来到计算产品线,我内心深处有按捺不住的兴奋和期待——2019年伊始,当华为宣布重磅推出业界最高性能ARM-based(基于ARM架构)处理器——华为鲲鹏920时,意味着基于ARM的华为TaiShan系列服务器将肩负起新的重要使命,也体现出公司携手产业伙伴推动ARM的产业发展的决心。站在多样性计算时代的浪潮前,风云四起,我和团队做好了准备,即将扬帆起航。
机遇与挑战并存。在前期与客户进行联创时,我们收集到了很多客户的声音。一方面,在服务器市场占有率处于绝对领先地位的X86服务器,其软件生态经过近40年的发展和沉淀,业界已有应用软件几乎都基于X86架构做了针对性的深入优化,能够发挥出极致性能,形成强大的竞争力优势;而我们在这个“巨人”面前,还有着很大的差距。
另一方面,对于客户而言,效率就是效益,时间就是金钱。如果ARM服务器算法计算性能慢,即意味着出局,客户将很难再选择我们的产品,后续发展更无从谈起。
当下我的脑海中只有一个最为紧迫的声音——超越。我们需要付出更大的努力,尽快取得突破,才能让客户相信,我们的ARM服务器能够提供更强的性能。
可是,我们的突破口在哪里?在与客户反复交流、调研分析和对比测试的过程中,我发现,随着大数据产业在我国发展的规模越来越大,机器学习算法已被广泛应用于安平、金融、政务等行业中,成为大数据应用中常用的工具和方法。我们的行业客户,大部分都采用了主流生态的算法包来构建业务系统,在数据规模比较小的时候,这些开源算法包能够很好地解决业务问题。但是随着接入的数据规模越来越大,算法的计算量、通信量都膨胀得难以评估,导致很多模型需要花费数天的时间才完成,有的甚至无法完成计算,对客户的实战业务产生了很大的影响。
既然机器学习算法不仅在客户联创工作中被高频使用,对端到端的业务性能的影响也是最大的,那么在大数据算法领域助力鲲鹏生态构建竞争力,将会是一个非常合适的突破口!“如果能打造一个面向鲲鹏的高性能机器学习算法库,不正是一个很好的开始吗?”我看到了希望的曙光。
这时,客户的话也给我们打了一剂强心针——“处理大数据业务的时候,机器学习算法运行在ARM服务器上,计算精度和结果都没有问题,性能上的一些差距,我认为你们是可以攻克下来的。”客户的这句话,让我们倍受鼓舞,大家憋着一股劲,决心一定要做到最好,把我们当前的软硬件能力发挥到极致,交上一份满意的答卷。
作为机器学习算法团队的技术负责人,我带领团队开始着手研究。
为了能够解决困扰客户业务的性能问题,我和主管、专家们每天反复研讨商量至凌晨,最后我们做出了一个“惊人”的决定:给机器学习算法库设置了一个极具挑战的数字目标——0和50%。“0”代表客户一行代码都不用改,“50%”意味着调用我们的算法库,就可以在鲲鹏上获得相比业界最优算法在X86上50%的性能提升。
一提出这个目标,我们就收到了很多专家的善意提醒:“机器学习算法经过了10年以上的迭代发展,大量顶尖科学家们已经做出了大量成果和贡献,理论研究已经相对成熟,要想通过原理优化达成性能大幅提升?这基本不可能。”
我心里清楚,这是必须赢得的战斗。想要在性能上实现“超越”性的竞争力,同时考虑到未来演进,我们ARM的算法优化指标必须提升50%甚至以上,才能拉开优势,领先业内1~2代产品。而这是一次极为艰巨的考验,就像奥运会上代表了人类奔跑极限的田径100米项目,在拼尽全力的情况下,成绩越往上提升0.1秒,越是难如登天。
作为团队的负责人,我的内心虽然忐忑,但也更加坚定:我,我们,都没有退路,也不允许自己后退。提升20-30%当然是一条更轻松容易的道路,但这又有什么意义呢?不断挑战超越、拉开距离,助力产品打造世界级的竞争力,就是我们这个创新型团队存在的价值。
我们立马着手对业界算法库、学术研究论文进行细致调研和追踪。调研的过程极其繁琐,又很有意思,我们仿佛打开了宝藏大门,持续不断地打破原有认知,获得了很多新思路。一些平时大家普遍认为非常“经典”的算法,比如线性回归;以及不同的算法库,比如开源组织的算法库、业界大厂的算法库,居然各自采用了完全不同的原理实现了算法。
而学术界对于机器学习算法的研究也正处于高热状态,每年有创新研究成果发表公布,这意味着,要想通过原理优化达成性能目标,也并非完全不可能。我和团队小伙伴们逐渐坚定了信心,我们为客户提供一个“零”学习成本的高性能机器学习算法库,成功机会还是很大的!
目标清晰了,我们开始以不同维度筛选业内优秀算法,进行排序,随着范围一圈圈缩小,最终锁定了由优化领域的大牛Jorge Nocedal等提出的“二阶优化器算法(LBFGS)”。
L-BFGS算法有两大优势——收敛速度快、内存开销少,在业界具有强大竞争力。而且,它在机器学习的线性模型类算法中被广泛使用,业界的机器学习算法库也随处可见它的身影。我们只要继续优化这个已经应用相当成熟的算法,就有很大机会获得最后的胜利。

机器学习算法团队
没想到,实际情况并不顺利。
我们尝试了各种方案,想尽诸多办法,耗费大量时间进行优化,效果都不太好。有时,刚有个别场景起了些效果,但一转头却发现其他场景下又恶化了。反反复复的优化工作从3月初持续到了6月底。这种感觉如同“铁锤砸棉花”,令团队成员感到非常无力,信心在日渐减弱。之前业界通用的那句“魔咒”开始缠绕着大家的思绪,“不可能通过算法原理创新达成性能大幅超越的目标……”
但我深知,算法研究就是需要不断地剥茧抽丝,从千头万绪中找到正确的方向。大家太需要成功一回了,这时说任何“鸡汤”都不如打一场阶段性的胜仗。我一不做二不休,梳理了100多篇发表在顶刊和顶会上的论文,对其成果进行追踪;随即关闭其他所有事务,从早到晚集中全力攻坚十余天。不知道从哪来的干劲,面对这恐怖的信息量,我的脑子里只浮现出一个字——“啃!”
十几个日日夜夜过去,我终于把这100多篇论文啃完,记录了不少问题和优化思路。其中有的尝试提升迭代效率,有的尝试降低计算复杂度,有的尝试减低计算量;各种不同的优化思路让我大开眼界,兴奋不已,进一步坚定了能够突破困局的信心。
我将这些文章的优化思路,分门别类,并汇总成一个表格,记录下他们解决的问题、算法思路、测试场景及测试结果。我知道,靠我一个人很难快速取得突破,需要兄弟们一起上了。我开始组织大家进行头脑风暴,分析合理性、设计实验验证想法,开始进行优化。
最初的想法在验证过程中发现不少问题,提升迭代效率的情况下,会使得计算复杂度变高,最终的计算性能难以达成我们的要求;降低计算复杂度或计算量的情况下,性能虽然能够满足我们的要求,但是模型的精度会下降……真的是“性能准度难两全”。
我静下心来,把当前已有的分析结果进行了梳理,又求助了部门的算法专家,决定要抓住“牛鼻子”,先解决主要矛盾,再解决次要矛盾。经过不断失败、不断复盘,最终,功夫不负有心人,受到数值优化领域一个数学定理的启发,我们设计并优化了一种方法,称它为LBFGSX(即“对LBFGS加速”之意),这个算法能够极大提升计算效率,相比原始的LBFGS算法能够提升1倍,而且在各种规模的数据集下都是有效的,我们终于抓住了牛鼻子!也许,这就是算法研究工作的魅力,捅破这层窗户纸之后,一切都会显得那么简单,那么美好。
接下来,我们在公司内外很多关键局点都进行了PoC(比拼测试),客户对测试效果非常满意,并感到十分惊讶,“这么大的数据集,不用增加集群资源,你们的算法就能跑下来,真是厉害!我们原来不敢上的几个应用可以规划上线了。”“你们究竟是怎么做到的?”听到客户如此发问,我不由地一阵心酸,整个过程之艰难,团队挑灯夜战的一幕幕,走马灯一样地在我脑海里转动。
的确,我们做到了。当结果显示——所有算法在鲲鹏的环境都能领先主流开源算法50%以上,我们的算法在鲲鹏社区成功上线的时候,一切过往的艰辛瞬间烟消云散,不值一提。“没有一个冬天不可逾越,没有克服不了的困难”,此刻的激动、欢欣和欣慰,都化成了更加坚定的信念。

智子2020项目结项-大数据算法团队合影
回顾LBFGS算法优化的经历,虽然成功了,但也让我深刻认识到,我们这个团队在数学方法的掌握和优化方面,是存在明显短板的,而对于算法的探索,数学是非常关键的能力源。在一次业务例会上,部长了解到这个问题后,建议道,“我们有一个绝佳的资源宝库——莫斯科研究所,专家们都以数学见长,可以想办法形成合作,应该能够解决你们的问题。
于是,针对每个技术方向,我组成不同的攻关小分队,由我们的博士对接莫斯科的数学专家,希望在各个技术方向全面开花。
然而没过多久,我就发现大家在跟莫斯科研究所的数学专家们对接时很消极,有博士甚至问我,能不能让他自己solo(单独工作),不浪费时间对接专家了。还没整明白这是怎么回事,我又发现项目例会上,专家们对与我们的合作也感到不满。这简直就是“双向奔赴”的互相嫌弃啊!“彼此的重视程度不够”、“很多信息反馈很不及时”、“经常提出反对意见”……专家们细数起“N宗罪”。
我坚持数学能力必须提升,合作一定要进行下去。那么如何能够把莫斯科的专家们和我们融合成一个团队?我把这件事情拎出来作为必须要解决的头等大事。
我了解到,知识背景迥异,是彼此间最大的鸿沟。我们的博士们非常了解业务背景和需求,交流时往往从业务背景的角度来介绍;而莫斯科的专家们,则更熟悉数学语言。我们需要将机器学习算法中的关键问题抽象成数学问题,让数学家们既能充分领会我们的诉求,又能最大限度发挥他们在数学上的造诣。
我带着大家努力提升用数学语言跟专家们交流的能力,经过磨合之后,我们终于能够顺利沟通与合作了,收获的惊喜也随之而来——有一次,莫斯科研究所的专家Andrey在我们LBFGS优化工作的基础上,又进一步进行了模型简化,提出了一种更巧妙的计算算法,使得算法性得到进一步提升。这让我们终于感受到,补齐数学短板,共同合作创新才是王道!
对于Andrey的贡献,我特意找我们部长申请了激励卡,由本地团队的主管颁发给他。没想到平时一贯严肃且不苟言笑的Andrey非常开心,说自己的工作很有成就感。

我在莫斯科攻关期间
就这样,我们和强大的莫斯科数学家们一发不可收拾,发展为最佳拍档,一起合力攻关多个算法,贡献了大量创新成果。其中提出了一种二阶优化器算法,比我们当时提出的算法收敛速度更快;还有一种分布式矩阵计算算法,计算效率更高,能够应对更大规模的数据场景……我们发自内心地感受到了这份价值感,纵使彼此相隔千山万水,也无法阻断共同为业务成功而拼搏的信心。
让我们更有成就感的是,算法库上线后得到了很多客户的青睐,并形成了商业落地:在江苏,客户部署了我们的算法库后,核心算法的计算性能大幅提升,在未额外增加硬件成本的前提下,部署了更多的业务模型,还打造成样本点进行复制推广;在上海,客户的数据中心的数据处理量由1个省市扩大为3个省市,我们的算法库经受住了客户扩大4次数据规模的严苛考验,成功支撑了客户业务……这也许只是华为计算产业万里长征中的微小一步,未来还有更大的舞台等着我们去创造。
接下来,我和我的团队将继续挑战更多的算法、更高的计算性能目标,并伴随鲲鹏将算法库推向更多的合作伙伴,将我们不断积累的算法优化经验,贡献给鲲鹏生态的开发者们,携手产业伙伴推动ARM产业发展,真正用算法给鲲鹏产业插上翅膀,展翅高飞长空搏击!
本文来自《华为人》
相关阅读:
17年华为维护生涯,我总结了这“N个一”
辞掉海外轻松又体面的工作入职华为,他说要的就是“不稳定”
一位90后华为人回顾5年海外生涯:三十而已,三十而励
拿下“编程界的奥林匹克”竞赛世界冠军,22岁的她加入了华为
入职华为2年,24岁的他两破光传送性能难题
华为硬核少女入职两年半一路破格,蜕变从她初生牛犊当项目经理开始……
拒绝任正非请吃饭,开通第一个北极圈内的GSM网络:他在华为的经历远不止这些……
一个华为二十年老兵的存储往事
数学系小仙女不写代码求“破圈”,一年把华为这个社区做火了
华为海外常驻9年,他对家人说了这番话
华为海外15年,浮生一瞬间,我的退休告别贴
最新最全 2020 云状态报告「69页PDF下载」
RightScale 2019年云状况调查报告:35% 的云支出被浪费「附50页PDF下载」
更多文章请关注

文章好看点这里[在看]👇