搞深度学习框架的那帮人,不是疯子,就是骗子
编者荐语:
这是一部深度学习框架的发展史!
以下文章来源于亲爱的数据 ,作者亲爱的数据
原创:谭婧
世间有一种软件,名叫“深度学习框架”。
在人工智能的江湖,常听人言:得框架者,得天下。
多年以前,一面画着大 G 的大旗在高处飘扬,美国谷歌公司的深度学习框架占据大半江山。万万没有想到,一场大风暴来了。
2018 年,脸书公司“同款”对标产品把一款前辈产品吸纳进来,联剑并肩,威力大增。一年后,火力全开,专拣敌人的罅隙进攻。连冲数剑,杀开一个缺口,有守有攻,看看就可闯出。放眼学术圈,更是独领风骚,顶级学术会议的胜利快报像雪片一样飞来。
小心低头,王冠易掉,谷歌框架的王者时代,结束了。
历史总是吊诡,一些无名之处会发生极为有名的战役。战事残酷而隐秘,高深晦涩的技术仿佛咒语,牢牢挡住人们的视线。
美国白宫《2019 年国家人工智能研发战略规划》报告中,美国将中国视为人工智能主要对手,进行了深刻观察。
“中国人工智能发展势头很猛。” 这话猛一听,真让人高兴。
后半句是个打击:“中国人工智能缺点亦十分明显,硬件、算法、人才……人工智能框架创新能力薄弱。”
“硬件” “人才”……这题我会,这题我会,“框架”是个啥?
假如人工智能深度学习是太平洋上的一个岛屿,算法是岛上茂盛的植被,框架和芯片则是地质结构,算法建在框架和芯片之上。
深度学习框架,头顶两个光环亮闪闪,第一个,基础软件。
几乎所有的深度学习开发者,都要用深度学习框架。
几乎所有的深度学习算法和应用,都是用其实现的。
作为一种复杂基础软件,有这样一条原则:极少数人“造”轮子,大部分人“用”轮子。
框架研发门槛高不可攀,本质上,这类产品是大型科技企业才“配”拥有的基础设施,小门小户造不起。
多说一句,打败围棋大师李世石的人工智能阿法狗(AlphaGo)听过吧,框架也是其背后的底层技术。
谷歌科学家的凡尔赛是:“我们让阿法狗更顺畅”。
(一)上半场:美国科技大厂的豪门恩怨
简单地说,深度学习框架=深度学习操作系统。
世间最流行的两个深度学习框架,谷歌公司的 TensorFlow 和脸书公司的 PyTorch。
开发者压力山大,
需要“精通”这两个,
或至少“熟练”其中一个,
甚至,“辅修”第三个框架,“选修”第四个。
谷歌与脸书,作为美国科技企业,其框架产品的流行度,像极了可口可乐和百事可乐。
快乐肥宅水统治世界,兵家必争之地必属枭雄。大型科技企业想尽一切办法取得技术上的领先优势,深度学习框架不会错过,也无法绕过。
算法突破、数据爆发、算力增长的“铁人三项”支撑了 AI 的浪潮,唯一能将“铁人”整合的系统软件,是深度学习框架。
它好比底座,对下,完成对底层硬件的调度;对上,支持模型搭建。
人工智能的一堆新玩(算)意(法):人脸识别、图像分类、图像检测与分割、语音识别、广告推荐、GAN、强化学习等等,被封装在软件框架里。
封装,不是封印。
孙悟空冲着框架大喊:“人工智能,叫你一声,敢答应吗?”
Siri(用机械女声回答):穿豹纹超短裙的那位,你有事找我?
一般来说,只有超大型科技企业才能支撑“操作系统”的开发。
深度学习的“操作系统”萌芽于高等学府,但早期工业雏形出现在美国科技豪门,是大公司竞争的舞台,也是全球计算机技术精英群体,最精锐部队的角逐。
使用全国通用感叹词:“卧槽,深度学习框架是硬科技。”
把全球 AI 顶级精英俱乐部的会员分成两类:一类是原创 AI 算法的发明者, 一类是 AI 框架的发明者。
前一类是加钱阅读的部分,后一类是本文的重点。
请大家记住这些名字,因为这些“精神小伙”,对深度学习框架的发展至关重要。
现任阿里巴巴技术副总裁贾扬清,浙江绍兴人,从初中三年级开始接触电脑,他一直觉得自己学编程挺晚的。
2002 年是他高考那一年,浙江省是高考界的领跑者,清华大学计算机系的分数线很高,他去了清华自动化系。
在科学界,瑞士是物理和数学领域的领跑者。也在 2002 年,瑞士戴尔莫尔感知人工智能(Idiap)研究所诞生了第一个机器学习库 Torch。
欧洲最高山脉阿尔卑斯山的雪顶千年不化,山脚下的瑞士名城马蒂尼(Martigny),既是登山爱好者的天堂,又是葡萄酒产区。
这是个做学术的好地方,自 1991 年以来,这里的研究所就是全球人工智能和认知智能领域的领导者之一。
机器学习库 Torch,出自“葡萄酒产区”研究所的一份研究报告(三位作者分别是:Ronan Collobert、Samy Bengio、Johnny Mariéthoz)。
其中一位作者姓本吉奥(Bengio),没错,这位眉毛粗粗的科学家,就是深度学习三巨头之一,约舒亚·本吉奥(Yoshua Bengio)的兄弟。
2007 年他跳槽去了谷歌。
Torch 意为火把,成为框架旷野的第一颗火种。
“库”(Library)是一系列事先编写好的代码集合,在编程中调用,可以减少重复工作。
加拿大蒙特利尔大学的深度学习框架的开发,始于 2007 年,Theano 是行业祖师爷。
框架和图灵奖获得者颇有渊源,约舒亚·本吉奥(Yoshua Bengio)和伊恩·古德费洛(Ian Goodfellow)都有参与 Theano。
库和框架的不同之处,在于境界。
库是兵器库,框架则是一套武林绝学的世界观,程序员在这个世界观的约束下去练(编)拳(程)法(序),结果被框架所调用。框架接管了程序的主控制流。
反正,框架比库厉害多了。
有了框架,才能做到只关注算法的原理和逻辑,不用去费事搞定底层系统、工程的事。生命短暂,都想走捷径。话不能这么说,都 996 了,生产队里的驴也得歇歇。
转眼间,贾扬清已经在美国加州大学伯克利分校攻读博士学位。也是在此期间,他开启了计算机视觉的相关研究。
那时候,他常被一个问题困扰:怎样训练和设计深度学习的网络?为此,贾扬清想造一个通用工具。
著名的 Caffe 框架的发音和“咖啡”相似,是“快速特征提取的卷积框架”论文的英文简称。巧合的是,这个框架像咖啡一样流行。
这是贾扬清第一个 C++项目,多年以后,他在阿里巴巴回忆:“最开始的时候没有测试,代码纠错(Debug)成了最痛苦的事。”
2013 年的 Caffe 框架是他的成名之作。在工业场景的计算机视觉系统上,Caffe 稳健快速,是无可争议的王者。
这一年,Parameter Server(参数服务器)的两位著名教授走向台前,邢波(Eric Xing)教授和 Alex Smola 教授,现在两位均在美国卡内基梅隆大学(CMU)任教。
参数服务器是个编程框架,也支持其他 AI 算法,对深度学习框架有重要影响。
高校实验室善于技术创新,深度学习框架的很多精髓创意源于此地。但是,深度学习框架复杂性高、工程量极大,长期负责复杂产品,高校并不擅长。
事实也证明,多年后,高校出生的深度学习框架,都以某种方式“进入”企业,或者被企业赶超了。
嗅觉敏锐者,业已出发。
2015 年 11 月,TensorFlow 开源,由谷歌大脑团队开发。谷歌的搜索、油管、广告、地图、街景和翻译的背后,都有其身影。
谷歌开源 AI 产品备受瞩目。若论起名的原因,TensorFlow 直译,张量(tensor)在图中流动(flow)。由此也可获知,数据流图是框架的重要技术。
再往细说,数据流图由算子组成,算子又分为大算子和小算子。Caffe 是大算子抽象,TensorFlow 是小算子抽象。小算子好处是灵活,坏处是性能优化难。
TensorFlow 原创者之一是谷歌天才科学家,杰夫·迪恩(Jeff Dean)。
为什么说他是天才?
赞美之词就免了。在 2000 年下半年的时候,Jeff Dean 的代码速度突然激增了 40 倍,原因是他把自己的键盘升级到了 USB 2.0。编译器从来不会给 Jeff Dean 警告,但 Jeff Dean 会警告编译器。
笔者承认,这确实是两个段子,出处无考。
2015 年是一个重要的年份,何恺明等人的研究成果,突破了边界,在准确率上再创新高,风头一时无二。
谷歌 AI 研究员弗朗索瓦·乔莱特(Francois Chollet)几乎是独自完成了著名的 Keras 框架的开发,为谷歌再添一条护城河,大有“千秋万代,一统江湖”的势头。
这时候,喊一嗓子“深度学习是下一个重大技术趋势”,已经没有压倒性的反对意见了。
美国西雅图素有“阿拉斯加门户”之称,微软公司总部位于西雅图卫星城,从那里开车 13 个小时就能到达谷歌公司总部所在地山景城。在 AI 的跑道上,很多人在追赶谷歌,但是,微软既没有好车,也没有弯道,压力大了,方向盘也能捏碎。
按理说,背靠微软的产品本应有个好前途,框架却都没有流行起来。
英文单词 Minerva 的意思是“智慧女神”,这是微软亚研院一个孵化项目的名字,由当时的副院长张峥发起,项目组成员有纽约大学王敏捷和北京大学肖天骏。
现在张峥在亚马逊上海 AI 研究院做院长。两名大将也随之前往,现在均是张院长麾下主力。
后来,就没有后来了。开源(Github)给女神画上了句号。
2016 年,从先后关系上讲,CNTK(Cognitive Toolkit)伸手接过女神的接力棒,可惜魔障难消,用的人少,没有推广开,于 2019 年停止维护。
GitHub 上的悼词是:“在这个版本之后,没有新功能开发的计划。”
这意味着,微软已经放弃了 CNTK。
两次前车之鉴,微软仍没有认输的打算。
因为深知框架的重要性,也因为微软的电脑里,绝不会长期使用贴着别人家 logo 的 AI 工具。
2016 年,贾扬清从谷歌 TensorFlow 团队离职,跳槽到了 Facebook 公司。与谷歌挥手道别,四载光阴(实习两年,工作两年),往事依稀,他的内心充满感怀。
西雅图作为美国的超一线城市,华盛顿大学是城市招牌之一,华人武术宗师李小龙就毕业于此。“天才少年”陈天奇也在这里取得了计算机博士学位。
陈天奇在 AI 圈的名气,不比李小龙在武术界低,且都是少年成名。
陈天奇读博士的第二年,一个叫做 MXNet 的项目开始了,这是一个名牌大学联合学术项目。
仅仅一年时间里,就做出了完整的架构。团队中还有一位闻名遐迩的大神,李沐(现任亚马逊公司资深主任科学家,principal scientist)。
2016 年 5 月,MXNet 开源,浓缩了当时的精华,合并了几个原来有的项目,陈天奇 cxxnet、参数服务器、智慧女神、颜水成学生林敏的 purine2。
所以,MXNet,读作“mixnet”,mix 是中文“混合”之意。
可巧了,从华盛顿大学到亚马逊公司全球总部不到 6 公里,开车只消 10 分钟。总部大楼抱着两个“温室大球”坐落于市中心。可能是近水楼台先得月,这次亚马逊公司火眼金睛,行动迅速。2017 年 9 月,MXNe 被亚马逊选为官方开源平台。
江山代有才人出,该退休时就退休。同一年,祖师爷 Theano 官宣退休。
这时候,贾扬清借鉴谷歌 TensorFlow 框架里面的一些新思想,实现了一个全新的开源 Caffe2。三十而立的他,成长为遍历世界级产品的第一高手。
谷歌 TensorFlow 在人间潇洒走一回。未曾想一场大风暴正在酝酿。
2018 年,PyTorch 接纳 Caffe2 后,意外崛起,上演令谷歌框架王冠落地的戏剧性一幕。
易用性确实可以抢客户,但谷歌没有想到脸书抢了这么多。
后来者确实可以居上,但谷歌没有想到脸书仅用如此短的时间。
改旗易帜,有人哗然,有人唏嘘。
谷歌出发最早,为何没有独坐钓鱼台?为什么是脸书抢了市场?
谷歌野心非常大,初期想做很大很全的工具。虽然完备性很强,但是,系统过度复杂。虽然以底层操作为主,有很多基础的功能,但是这些功能没能封装得很好,需要开发者自己解决(定义),手动工作过多。
三个 AI 开发者凑在一起,花生配酒,吐槽谷歌 TensorFlow,十有八九。
甲有点激动,说:“实在太难用了,想骂脏话。”
乙表示赞同,说:“简直就是一个缝合怪。”
“一座屎山,还要往屎上堆屎。”丙说完,深埋头,叹口气。
虽然 TensorFlow 可直接使用天下排名第一又易上手的 Python 语言来编写程序,算子库丰富,TPU 加速,但是,一些个性化规定琐碎,新概念层出不穷,开发者要视其为一种新的编程语言来学习。
再者,系统非常复杂,代码又长又臭,难以维护。更糟的是,API 很不稳定,易变脸。API 好比电脑键盘,键盘上的字母位置天天变,谁受得了?你想要一个活着的祖宗吗?
仅仅是丢市场还不够惨,PyTorch 框架带火了背后的技术(动态执行等),脸书开始左右技术趋势。
谷歌仰天长啸,潸然泪下,口中默念:“万万没有想到。”
命运像水车的轮子一样旋转,有时高,有时低,而亚马逊公司的 MXNet 从来没高过。
知乎上有两篇非常火的高赞帖,可一窥其端倪。
李沐:《为什么强大的 MXNet 一直火不起来?》。
贾扬清:《如何看待亚马逊 AI 李沐团队大批人员离职?》。
谈起亚马逊和 MXNet 框架的缘分,就不得不提起一位美国卡内基梅隆大学的高人,Alex Smola 教授,他也是李沐在 CMU 的博士导师。
2016 年 7 月,Alex Smola 教授从 CMU 重返工业界,加入亚马逊 AWS 担任副总裁级别的科学家(职级为 Distinguished Scientist)。大半年后,2017 年 3 月,李沐加入 AWS,直接向老师 Alex Smola 汇报。
师徒同框,双手比 V。
此时,巨头已整装列位,兵马齐发。
微软岂能袖手旁观,微软在智慧女神和 CNTK 两次滑铁卢之后,依然斗志昂扬准备第三次入局。
这次,微软思路清奇地设计了 ONNX(全称 Open Neural Network Exchange),一种开放式深度学习神经网络模型的格式,用于统一模型格式标准。
ONNX 是脸书和微软合作力推的,贾扬清也是发起者之一,目标剑指“标准和生态”。
说白了,一个 PyTorch 模型可以被导出 ONNX 文件格式的模型。
不止于此,随后,微软基于 ONNX 这个桥梁研发了一个推理用的 ONNX Runtime 框架,低调地在 2018 年最后一个月开源。
想做“标准”,得大家伙都同意。
ONNX 没成为标准,若论原因,可能是 ONNX 还做得不够好吧。
ONNX Runtime 框架的“新功能”暴露了巨头之间的动态竞争关系。
这一次,微软站队脸书,给 Pytorch 机器学习库做了几个 “好用的部件”。
若论其中一个原因,可能是微软和脸书没有云上的竞争关系,这几年脸书公司的定位依然还是互联网公司,没有发展云计算。
亚马逊云(AWS)、谷歌云、微软云则斗红了眼。
第三次进军框架,微软的策略是,强攻不下,组队打怪。若有一日,Onnx Runtime 框架有希望挑战 Pytorch 框架,肯定调转火力,支持自家。
真正的竞争激烈,不是玩家多,而是高手多。短短几年之内,几座技术巅峰,拔地而起,各有各的精绝。
其一,谷歌和亚马逊是计算图的拥趸。两者都以更高的、令人赞叹的工业级工程质量把计算图抽象推向新高度,把表达能力推向新的里程碑。
其二,脸书公司在计算过程中没有计算图的概念。但在解决易用性上,超常发挥。
谷歌皇冠跌落,给后来者“跌出”希望,留给中国队的时间不多了。
(二)下半场:中国队的出征
2014 年的某一天,北京海淀区丹棱街 5 号接待了一位特殊的客人。
这位来自美国 CMU 的教授,名叫邢波,此时任微软亚研院顾问一职,他擅长的领域包括大规模计算系统。他也是 AI 科学家俱乐部的白(ding)金(ji)会(da)员(lao)。
恰在此时,微软亚研院副院长马维英(现任清华大学智能产业研究院讲席教授、首席科学家)找到一位研究员,名叫袁进辉,他是清华大学计算机专业的博士,师从张钹院士。
知识使人年轻,很多科学家,年逾不惑,双肩包+步行,背影仍像学生。而袁进辉却头发花白,笑容谦和,像是在校园里散步的退休教授,其实他是 1981 年的。
马维英副院长和袁进辉谈起,谷歌较先起步,已将大规模主题模型的训练系统技术,应用到谷歌广告系统和推荐系统的关键组件中。邢波教授近期既然到访北京,那不妨合作。
于是,邢波教授团队和袁进辉团队双剑合璧。这场合作的成果,被表扬了。主管全球研究院的微软副总裁周以真女士评之为该年度看到的最令人激动的成果,不过这是后话。
那时候的动力,一方面来源于超过谷歌,直道超,没有弯道。另一方面,业界有多位知名科学家和资深工程师,已经在同一问题上酝酿已久。难度可想而知,条件却捉襟见肘。没有可供使用的集群,没有工程师团队的支持。
按打游戏的说法,微软想上分,那就要看一下配置。推算一下可知,即使是当时最先进的算法,在当时的硬件环境中训练目标规模的模型,至少要半年时间。
再看一下,双方阵容。
提起邢波教授的团队,恐怕 AI 学术圈无人不知,其本人位列论文发表贡献第一(2018),其学生很多已是名校教授,每年发表的论文数量,源源不断地为 CMU 名列全球大学计算机科学与人工智能的排名第一“贡献力量”。
“微软代表队”是袁进辉研究员,还有一个实习生高飞。
这个条件,这个目标,看了只想眯眼说“呵呵”。
美国宾州匹茨堡和中国北京,时差十几个小时。袁进辉后来回忆:一年多的时间里,每天邮件不断,每周好几次电话会议,技术难题不讨论透彻不罢休。只要足够幸运,就会在错误的道路上迅速挨揍,只要高手够多,不足之处就不会被放过……马维英和刘铁岩两位大佬,羽扇纶巾,幕后帷幄。
项目结束的时候,2014 年已近尾声。大家伙的心声是:“缺少任何一个人,结果都不是大家看到的样子。”
那一次,袁进辉为破坏式创新的威力,窒息。
这次合作,成果是 LightLDA。它的算法结果是一流的,系统实现是一流的,仅用数十台服务器,完成之前成千上万台服务器才能做的事,所以得到周以真女士的高度评价。
民(zhi)间(hu)评价:“要我说,LightLDA 那是真的正经贡献,又 smart,又是解决关键问题,又真 work,正经把 Topic Modeling(主题模型)在大数据时代的潜力大大地提高了。”
当时,北京大学计算机科学技术系网络与信息系统研究所,研究分布式系统的肖臻教授也给与 LightLDA 相当的肯定。这事,被肖臻的学生以敬仰袁进辉大神事迹的口吻在知乎讲过。
而今复盘,大势的端倪早已显露,大数据、大模型、大型计算架构设计呼之欲出。而这个领域的学者,普遍在 2018 年才意识到这个问题的重要性。
微软亚研院不愧为 AI 黄埔军校,技术前瞻性极强,但是,复杂基础软件的成功,不是仅靠“单刀赴会”。
大公司必胜,那是夸海口。
大公司必争,才是真灵验。
坐标北京西二旗,百度大厦和百度科技园。
技术大牛背景的李彦宏,牵着搜索入口的现金牛,依着“牛脾气”治理百度,他看不上云计算,这倒让阿里巴巴笑了。
其实,看不上云计算的技术大佬不止一位,自由开源软件 GNU/Linux 的鼻祖理查德·斯托曼(Richard Stallman)也多次在公开场合“怼”云计算。
巧合的是,他俩观点出奇地一致:云计算不是技术创新,而是一种商业模式创新。
李彦宏睥睨云计算,却对人工智能,满眼小星星。
百度深度学习研究院(IDL)在人工智能的江湖里,是桃源仙境般的存在,处处大神,遍地高手。高水平科学家、研究人员、工程师密度之大,令人惊叹,感觉连保安都要会编程才配在门口刷工作证。
昔日盛景,已成绝响。
时间拉回到 2013 年,百度第一位 T11 徐伟,同时也是百度深度学习框架 PaddlePaddle 的原创者和奠基人。
每一家科技巨头的深度学习框架的首位指挥官,均非等闲之辈。徐伟也是 Facebook 早期研究员,Facebook 产品矩阵丰富,他负责大规模推荐平台,在多个产品背后显神功。
可能是有法律文件约束,百度大神科学家的离职,大多不公开原因。徐伟离职加盟地平线,他将手中的接力棒交给了另一位神级技术大牛,撸码一绝的王益。
见过王益的人会说一个词,“聪明绝顶”,重音在后面两个字上。
王益在知乎谦虚地自称“四十岁老程序员”,言谈之间一副老技术专家的低调本色。他在加入百度之前曾任谷歌研究员,是少见的“APAC 创新奖”获得者(参与开发一个分布式机器学习的工具)。王益是清华大学机器学习和人工智能博士,师从清华大学周立柱教授。
有一次在知乎分享程序员成长经验,他轻描淡写地说了一句:“我有一位恩师,徐伟。”
细节总是让人容易忽略,早年,王益曾向徐伟抱怨:“某某团队好像就是想用他们自己研发的工具,不用 PaddlePaddle?”
后来,王益在回复一位网友跟帖时解释当时这一问题存在的合理性:“设计 PaddlePaddle 是技术换代的时候,步子大,当时来不及优化用户体验,不愿意用确实有道理。离开后,后来人持续优化了体验。内部组织结构调整也促进了新技术的接纳。”
这也印证了一位百度匿名 AIG 离职科学家高管对笔者的独家透露:“百度内部曾经有两个类似的产品,最后敲定 PaddlePaddle 的人,是陆奇。”
了解此事的人不多,也正因此,采访前夕,这位科学家高管仍在反复向笔者强调——“请务给我匿名”。
百度最早出发,生态建设也最早起步。
2017 年年末,百度市场部的朋友找笔者交(chi)流(fan),给 PaddlePaddle 出谋划策。那时候,开源框架的运营和推广已经全面拉开:北航软件学院的教材出版、顶级学术会议模型复现、高校宣讲……
据说,陆奇离职前,仍然紧盯 PaddlePaddle 的进展。
一山行尽,一山青。框架的玩家,不止科技大厂。
人工智能独角兽旷视科技是从 2014 年起内部开始研发框架。在 2021 年的采访中,旷视天元的负责人田忠博告诉笔者:“原因很简单,仅以当时的开源框架,没有办法真正做好科研,才会有自己做深度学习框架的想法。”
举一例,就能说明问题。
旷视科技有一篇 ShuffleNet 的学术论文,仅用 Caffe 提供的“工具”,永远也探索不到 ShuffleNet 这件事情的可能性。由此看来,旷视科技早已参悟,研究和工程的共振,离不开强大框架的支持。
百度 PaddlePaddle 开源时间点是在 2016 年 8 月。现在看来,这是历史性的一刻,尤其在中美摩擦的历史背景下回看,更不敢皱眉设想,一旦美国忌惮中国的人工智能发展势头,把深度学习框架彻底掐死。
百度的出征,代表着中国队上场了,标志着中国科技企业参与到人工智能最残酷的战役之中。
2017 年,AI 盛极一时,独角兽频现,融资快讯爆炸。而 PaddlePaddle 作为国内唯一的开源深度学习框架,此后两年多,都是孤家寡人。
2018 年 7 月,百度成立深度学习技术平台部,由 2011 年就入职百度的马艳军总负责。
毕竟是国产框架,2019 年,百度 PaddlePaddle 有了中文名,名叫“飞桨”。国外产品连个中文名都懒得起。
零的突破之后,新问题是,“用工业级的质量,把创新在框架上实现出来”。
2019 年 2 月,一流科技获得千万级 Pre-A 轮投资,袁进辉是创始人兼 CEO。此事之后,才有些小道消息传出,早在 2017 年初,快手创始人宿华就投了一流科技,天使轮。
“小伙子睡凉炕,全凭火气壮。”一家只有几十人团队的初创公司也来做复杂基础软件。投资人一脸懵逼地进来,一脸懵逼地离开。
谁都会挑用起来顺手的锤子。框架在一家公司内部很难统一。
百度内部“军令如山”,必须统一使用飞桨。
旷视科技内部可以用任何开源框架,员工中自发使用天元框架者居多。
微软亚研院的情况是:很多工程实现是实习生完成,干活时会让同学们继续用熟悉的框架干活,很难强行统一用 CNTK。
互联网科技公司大多是软件起家,华为则被戏称为“泥腿子们”终于“洗干净脚进城”的硬件厂商。是啥不重要,能打就行。所以,华为要拿出来单聊。
华为在开源软件世界里,风评不高,前脚还有:“鸿蒙失火,殃及池鱼” (禁止谐音梗,扣钱)。
华为 MindSpore 的行动颇为迅速,可惜,在群众情绪上,被鸿蒙拖了后腿。
2018 年 10 月 10 日,上海。华为全联接大会上,肯德基外卖全家桶套餐,不对,讲错了,是 AI 战略与全栈全场景 AI 解决方案。这是华为高层首次提起 MindSpore 这个事儿。
2019 年,10 月 15 日,14 点 02 分,王益在网上突然发帖问了一句,这“开源框架”什么时候开源啊?有匿名采访者告诉笔者:“贾扬清回了一句,‘Show me the code’。”笔者没有找到原文或者截图。
按工作流程,华为 MindSpore 官方进驻知乎,先发了一个“Read me 文档”(翻译为“阅读指南文件”)。结果,人在家中坐,祸从天上来,很多人误以为“开源”只有“Read me”而已,热度直接飞起。
最息事宁人的评论:“沸腾就完事了,想那么多干嘛。”
最佳画面感评论:“站在马里亚纳海沟里挥舞道德的内裤。”
神评论:“按揭开源。”
网友的才华,从手机屏幕里喷出来。
哪怕华为员工看到这些评论,也笑出了猪叫,细一想,要克制,便在暗地里捂嘴笑。
一位老牌厂商高管在采访时,告诉笔者:“华为不了解生态系统对软件的影响。这就是为什么他们在发布手机操作系统时,没有考虑如何构建生态系统。”受访人要求笔者匿名。
这一评价,一针扎在要害上。
外国框架并不成熟,也不完美,这也是国产框架参战的部分原因。
有人发问:“为什么要再做一个框架?”
华为内部也有人扪心自问:“MindSpore 解决的特色问题到底是什么?”
可能是 2020 年正式开源前夕,
可能是华为中央软件院总架构师金雪锋博士、算法科学家于璠博士、开源社区运营团队负责人黄之鹏等人第一次“齐聚”会议室,
可能是一场“元老会”。
笔者了解到,在华为内部组织结构中,MindSpore 属于昇腾产品团队,也归属于计算产品线。这是一个和华为“小云”同级别的 BU。
匿名采访者透露,MindSpore 在内部也是要承接业务部门需求的。
MindSpore 再早之前的研发时间线不得而知,因为“事关”华为最敏感的“部(xin)位(pian)”。
细细翻阅三位科学家的公开观点,
第一位,华为 MindSpore 首席架构师金雪锋博士。
第二位,一流科技创始人袁进辉博士。
第三位,谷歌公司 Waymo 自动驾驶汽车感知和规划任务机器学习平台资深研发工程师、阿帕奇基金会 MXNet 项目委员会委员、Horovod(是 Uber 开源的一个深度学习工具)技术委员会委员袁林博士。
他们共同认为:“市场需求没有很好地满足,技术没有收敛,创新还有空间。”
国外框架出发时,广阔天地,大有可为,国产框架正好相反。好摘的果实都已被摘走,只剩高高树顶上的,还有那零散摔落在地的。
国货当自强,同情分不要也罢。
国产深度学习框架的建设者,藏好后退的发际线,在时代的噪音里,纵身一跃。
2020 年,国产深度学习框架井喷。
3 月 20 日,清华大学计图(Jittor)。
3 月 25 日,旷视科技天元(MegEngine) 。
3 月 28 日,华为 MindSpore。
7 月 31 日,一流科技 OneFlow。
四家国产,同期开源。五家国产,旌旗列阵。这一年最有可能被追认为国产深度学习框架的“元年”。
守旧的经验是,既然国外开源了,就抓紧学。既然人家成了事实工业标准,就尽力参与。总是慢了好几拍,Linux 这轮就是这样。
引用某游戏厂商的经典台词是:“别催了,在抄了,在抄了。”
可惜竞争从来不是游戏。
深度学习框架的台词是:“不能照抄,不能舔狗,舔到最后,一无所有。”
2020 年,国产框架在技术上不是单纯的跟随者角色了,也有很多创新点可圈可点。
飞桨作为国内最早的开源框架,模型库是最丰富的。以模型库的形式沉淀成深度学习框架生态的一部分,生态也起步早。
古人云:“不谋全局者,不足以谋一域” 。有匿名采访者认为:“华为是国内投入框架研发最坚定的大公司。”
可以观察到,华为剑指全栈 AI 战略,投入非常大。硬件算子库、基础软件、平台、产业基金、联合项目、标准、论文专利、人才,几乎所有的地方都发狠力。
华为内部技术高管(笔者被反复要求匿名)告诉笔者:“大厂发展深度学习框架一定不是为了卖钱,而为了发展生态。华为发展深度学习框架,一方面是自主可控,一方面是坚定地发展 AI 全栈能力。Mindspore 并没有拘泥于自家的芯片,不能仅仅视为一款产品,而是战略级的平台,这是明确公开说的。”
翻看所有的宣传稿件,不难总结出,华为有全场景,端边云协同,比如,华为自己有手机业务,方便对硬件做指令级优化。
但是,华为做的远不止这些。
第一,在拿 MindSpore 为抓手,来解决深度学习之外的、以前在超算领域关注的一些计算任务(科学计算)。其它框架虽然也有这个目标,但华为想到了,也做到了。
第二,AI 有个公开的槽点,即被黑盒问题所累。然而,牵扯到 AI 安全的问题,既基础,又前沿,搞得人少,困难多。对于基础软件来说,又格外重要。
华为金雪锋博士有一个表述:“按 DARPA(美国国防部先进研究项目局)的说法,可解释 AI 的目的,就是要解决用户面对模型黑盒遇到的问题,从而实现:用户知道 AI 系统为什么这样做,也知道 AI 系统为什么不这样做,用户知道 AI 系统为什么做错了。
这个问题被华为关注,无疑提高了国产框架段位。你在研究拳法,我在研究拳法背后的哲学根基。
华为 MindSpore 开源后,很多质疑的声音消失了,酝酿了半天的道德制高点没有骂出来,憋得怪难受。
不过,有些批评,华为确实该虚心接受,不是外人,都能过去。
(三)如何竞争?
滔滔江水,浪奔浪涌,摩尔定律却日渐消失于地表。
需要在硬件层面对 AI 进行优化浮出水面,因为在微观层面的编译器优化,需要和硬件厂商合作。这是华为的独家优势。在所有框架公司里,唯独华为有芯片。
官宣用语:“用昇腾+MindSpore,构建华为数字底座”。
华为被特朗普轰炸了几轮,印象十分深刻。
在独家硬件的加持下,MindSpore 的名场面是,有开发者感受到“快到飞起”的兴奋。
这也不是唯一的路,因为深度学习编译器也登上了舞台。巧不巧,这又是一个底层技术。
所以说,深度学习框架门槛高不可攀,算法、底层硬件、操作系统、分布式系统、编译器,一个都不能少。
TVM 编译器在 2017 年开源,能够在任何硬件后端上有效优化和运行计算,可作为框架的后端。学术方面,进展也迅速,比如“如何利用 TVM 直接参与硬件设计过程的迭代,使得加速器设计在一开始的时候就可以直接获得软件的支持和目标的具体反馈”。
TVM 的背后是陈天奇团队,与其竞争的还是中国人民的老朋友,谷歌(MLIR)。
国产框架,万箭齐发之势。
创业公司代表队唯一的队员,一流科技袁进辉博士则放出豪言:“要做出世界上速度最快的。”
AI 科学家的豪言壮语,比起罗永浩的那句“收购不可避免走向衰落的苹果公司,并复兴它”,也没克制。
天下武功唯快不破。
他认为,第一,在分布式深度学习里,计算仅仅是一个方面,多个 GPU 上任务的协同需要频繁地把数据在 GPU 之间传来传去。数据在数据流图里行走(flow),想走得快,算得快,吞吐量得大,得将数据通信也设计成数据流图的一部分,不能让传输成了瓶颈。
第二,哪里需要数据通信,需要什么形式的数据来进行通信,都要开发者去编程实现,这很麻烦,框架应该自动实现。
袁进辉博士的总结是:“OneFlow 有两个创新点:一会自动安排数据通信。二把数据通信和计算的关系协调好,让整体效率更高。”
2020 年,多节点和多设备的训练成为深度学习的主流,这一趋势符合袁进辉创业之初的判断,而这一思路可追溯到 2014 年他在微软亚研院的思考。
袁进辉团队的短板明显存在,AI 研发投入“壕无人性”,直白一点:创业公司穷。不过,2021 年春节前,高瓴创投独家领投一流科技 A 轮融资,总额 5000 万元人民币。
框架,A 面是各有特色,B 面是什么呢?
答案是,大规模。
这世界上唯一能够碾压国内一线城市房价增速的,只有 AI 模型的规模。虽然硬件和软件的进步已经将每年的训练成本降低了 37%;但是,AI 模型越来越大,以每年 10 倍的速度增长。
人工智能模型就像宇宙飞船飞向太空最远处,正在探索能力的边界,拓展人类的想象力。
大模型,跑步前进,工业级实现,拔腿直追。
迈入大型模型训练时代,要求深度学习框架能够在面临数百台、数千台计算机的庞大规模时,有效地进行训练。
比如,对于单个设备或多个设备数据并行这种简单场景的支持已经足够优秀,但在模型更大或者神经网络拓扑更复杂时,通用框架的易用性和效率都大打折扣,有这种需求的工业级应用只好下血本研发定制方案。
大规模训练是当前各厂商竞争的一个焦点,谁输谁赢仍有变数。但可以肯定的是,只待“百团大战”的第一枪打响后,就是全方位的比拼(易用性,完备性,高效性)。
坏消息是,国产在市场和生态上与美国巨头依然有很大的距离。
好消息是,这不是一个完全被动的局面。
甚至,国产框架的竞争也在细分,分化出局部战役。
框架分为训练和推理两部分,训练框架难度大,推理框架次之。
华为推理框架已经做到了生产级别,交付到了华为手机上。在手机巨头厂商中,框架的玩法,各不相同。
都知道,苹果机器学习框架 CoreML 的代码是高度商业秘密。
巨头的动作出其不意地整齐划一,端侧深度学习推理框架,BAT 已经全部出手。
百度 Paddle Lite、阿里巴巴 mnn、腾讯 ncnn、华为移动端推理框架 Bolt(华为诺亚方舟实验室开源)、OPEN AI LAB 的边缘 AI 推理框架 Tengine ,甚至连小米也有,MACE。
单论技术难度,这些同类产品比深度学习框架低很多,但也各怀绝技,各有千秋,只是误放在一起比来比去,就不是内味儿了。
深度学习框架的战场上,全行业最拔尖的团队悉数上场。
(四)开源也竞争
做基础软件,
一要决心,
二要耐心,
三要开源,
因为是大投入、长周期、抢生态。
关于开源与生态,笔者最想采访的是美国硅谷创投圈资深人士,思科云计算事业部研发老大徐皞。
多次联系,终于得到他的回复。
他告诉笔者:“生态系统对操作系统而言,比操作系统本身更重要更难发展。这个道理很简单:操作系统可以雇几百个人写出来,生态需要恳求几万、几十万、几百万的人去写应用才算数。对手机电脑而言,多数用户是为应用买单,而不是为操作系统买单;对框架而言,多数用户是为能不能快速解决商业问题而买单。”
开源是一个隐秘的角落,“大教堂与集市”的比喻口口相告,代代相传,是开发者眼中独一无二的圣地,挤满了来自全世界贡献与分享的热情,胸前佩戴“开源项目主要贡献者”的奖章,是江湖地位的象征。
曾几何时,开源软件是对抗大公司的侠者。
而如今,大公司却对开源软件越来越青睐。巨头对开源的投入,其背后是生态,是为了占领市场。开源软件的开发,不再是开发者之间松散的合作。
开源软件公司有更多主导,开源软件的开发效率和质量都有所提升。
开源的“不竞争”是另一种形式的竞争。眼下这几年,开源商业模式有变。徐皞认为:“开源软件真正兴盛,真正有突破,也就是五到十年的事情,开源软件商业模式依然在非常早期。”
开源软件的背后是竞争,是研发与工程的投入,不投入,怎么占领。
Linux 是有很多家的贡献,但是安卓代码 1200 万行,全部是谷歌工程师自己写的。
看看美国公司对开源市场的投入力度,中国公司不能落后,更应该主动投入,占据,甚至主导。
开源和闭源,隔山两相望,且看那密密麻麻的布防,哪个山头都有重兵。
开源软件世界里,框架虽为一隅,却极尽奇观。最好的思想,最好的代码都悉数拿出来了。这是分享,也是一种较量。
前美国国防部咨询顾问,史蒂夫·马奎斯的说法是:“开源项目,来源于最纯粹的竞争。如果一个开源项目在商业世界获得了成功,那决不会是出于侥幸,决不会是因为其它竞争者恰好被规章制度所累、被知识产权法约束、被人傻钱多的金主拖垮。一个开源项目胜出了,背后只会有一个原因——它真的比其他竞争者都要好。”
有借有还,再借不难。“借用思路”是爽了,但又诱发更深层次的竞争。
上帝说,要有光。
特斯拉说,要有电。
开源说,要有代码。
若问深度学习框架将带来什么,得想清楚深度学习的未来在哪。
听说过深度学习又被称为软件 2.0 吗?作为数据驱动范式的顶峰,从数据里自动推导出程序,而不是必须靠程序员绞尽脑汁手动书写程序,这是一个划时代的进步。
深度学习可能从一个小小岛屿,演进成一个大陆板块。
在接下来的十年,深度学习软件有机会变成每个软件工程师医药箱里的必备“药丸”(不要乱想,不是蓝色的那种)。人类最重要的计算机软件将由其创造,自动驾驶,药物发现……
开源软件的玩法自由奔放,但也有公地悲剧、PR 铜臭。深度学习框架是一款理解成本很高的软件,群众基础薄(mei)弱(you)。于是,有人用“AI 平台”一词,胡乱指代,张冠李戴,故意混淆,真令人作呕……大过节的,算了算了。
有决心,就有私心,有疯子,就有骗子。
时间总能给出答案。
结语:
古人云,按经济学的规律办事。
大约两百多年前,英国经济学家杰文斯指出,技术成本降低,将提升技术的普及度,从而扩大市场规模。
起初,戴着大粗金链子,说错了,戴着领结的大英煤老板十分担心,掐指一算:第一次工业革命让蒸汽机效率提升,每台用煤量减少,总的用煤量会下降,生意要下滑。
结果事实正相反,用煤量大幅增加,好开心呀,因为蒸汽机使用成本降低了,使得蒸汽机用得更广泛了。
框架的道理也一样,降低了研发人力成本,降低了计算资源成本,带动市场规模扩大。
两百年后的今天,人工智能深度学习算法的大火,创造了算法软件包史无前例的机会,软件开发中的标准化就是把每个人都要干的活统一起来,成为工业化的环节。
深度学习框架牛就牛在把共性提炼抽象出来,用最简约的代码实现,代码越简单越牛。
软件流水线提升整个行业的水平,彻底替代手工打造的落后局面。
图为:贾扬清在阿里巴巴公司的工位
搞深度学习框架的那群人,
他们,可能是同学同事同行,亦狂亦侠亦友。
他们,必然是浩宇璀璨群星,风雷意气峥嵘。
贾扬清,化身修罗,重回故里,现任阿里巴巴技术副总裁。
陈天奇,学府道场,CMU 大学教书,投入深度学习编译 TVM。
李沐,蒲团打坐,驻守美国亚马逊,现任资深主任科学家。
徐伟,开山老祖,现任地平线 AI 首席科学家。
王益,绝顶神僧,谷歌、腾讯、蚂蚁金服美研主任科学家,2021 年初去脸书公司。
袁进辉,苦炼金刚,网名老师木,清华博后,微软科学家,穷酸创业。
林敏,羽化成仙,跳出三界,研究基础理论去了。
无论是产品,还是生态,最终,市场会决定胜出者。
人工智能头顶高科技花环,被高高捧起,又被左右开弓扇耳光,灵魂三逼问:到底行不行?啥时候突破?谁杀死那只独角兽?
突破难规划,创新难计划,独角兽不拼命也不行……此后,深度学习框架,对于国外开发者同样重要。
需要发问的是:如何才能做出全球大流行的开源深度学习框架?网友质问的原话是:“你敢超过吗?”
(未完待续,这篇文章太长了,转发后,去你的收藏夹吃灰吧。)
《亲爱的数据》出品人:谭婧
▊《TensorFlow:实战 Google 深度学习框架(第 2 版)》
郑泽宇,梁博文,顾思宇 著
新老谷歌专家联袂巨献
深入原理|走访主创|结合真实项目
(京东满 100 减 50,快快扫码抢购吧!)
▊《深度学习框架 PyTorch:入门与实践》
陈云 著
本书包含 PyTorch 基础知识+实战案例两部分
配套源代码文件供下载、读者交流 QQ 群
(京东满 100 减 50,快快扫码抢购吧!)
评论