贾扬清开源 AI 框架 Caffe | 开源英雄
采访 | 刘韧,云算科技董事长、《知识英雄》作者、DoNews 创始人 作者 | 李欣欣 刘韧 周扬 责编 | 唐小引 出品 | 《 新程序员 》编辑部 2013 年 6 月,伯克利大学。28 岁的贾扬清( 见图 1 )正在写 Decaf( Caffe 的前身 )。3 个月后,贾扬清博士毕业,此刻,他在和伯克利心理学系的 Thomas Griffith 教授合作,研究一个心理学课题──人类在个人成长过程中是如何形成“类别”概念的。研究中,贾扬清用一个概率框架来表达人的行为,但从图像中提取到的人的行为特征较弱,很难推导出完整的结论。
1984 年,贾扬清生在绍兴上虞县。父母都是中学语文老师。1 岁时,贾扬清最爱听故事,妈妈常拿着图画书给他讲故事。3 岁时,贾扬清已识两三百个字,常常捧着一本书,读得入迷。5 岁,父母带他去新华书店,贾扬清挑了《安徒生童话》,妈妈惊讶地问:书里的字,你能看懂吗?贾扬清点了点头。 贾扬清一家人住在校园,安宁平静,生活规律。6 点,父母起床,去守早自习,贾扬清也跟着起来了。小学六年级,贾扬清从父母所在的学校插班到上虞市中心学校,新环境,贾扬清感到好奇之余也有点自卑感,他更加努力学习,想通过成绩来证明自己。中考,贾扬清以上虞区第三名的成绩考进春晖中学。 初二,流行学计算机,尽管学校有机房,贾扬清父母还是花 7000 多元,给他买了台奔腾Ⅱ。贾扬清凭感觉在机器上捣鼓,试装各种软件、玩扫雷游戏……有一次,贾扬清去同学家玩,看到同学用鼠标在计算机屏幕上的图形界面上点来点去,并向他演示自己在学编程,贾扬清觉得好玩。回家后,他摸索着用 BASIC 写出一个小程序──在方框里输入一个年份数字,屏幕上显示出年份所对应的生肖。 计算机让贾扬清觉得“可以创造出一个新东西。”“很开心。”但贾扬清听父母话,为高考的目标,仍把精力放在学习上。初中,语文老师教同学们写文学评论,贾扬清把《论<西厢记>里诗歌的描写和艺术》当选题,老师很诧异,跟贾扬清的妈妈说:让孩子看《西厢记》是否太早了?妈妈则说“看吧,没关系。”父母教语文,贾扬清家里文学类书多,他常随意从父母的书架上抽出一本书,翻看。拿下一本钱钟书的《谈艺录》,翻了翻,当然“看不懂,又放了回去。”贾扬清看《西方文学史》《荷马史诗》,感觉“外面的世界和我生活的小城是不一样的。”贾扬清看《十四行诗》发现,西方的诗歌讲究韵脚,类似中国古代诗歌平仄。“居然可以相互印证,很有意思……”贾扬清一直对文学感兴趣,但他选了理科。“比起文科,理科可以靠自己的努力,走得更远一点。”又或许,受当时人人都说“学好数理化,走遍天下都不怕”的大环境影响。 高中,贾扬清拿到了全国物理和化学竞赛两个一等奖,英语也获得了综合能力二等奖。数学不突出,父母给他买了“洪恩在线”光盘,大量刷题。“不会做的题,也会买一整本练习题来做,直到熟悉运用为止。”贾扬清数学成绩逐渐好起来,获得了全国数学联赛二等奖。 2002 年,高考,物理试卷的最后一题,贾扬清失误了,痛失 27 分!结果,考了 686 分。贾扬清心之所向是清华计算机系,在跟清华招生办老师讨论后,稳妥起见,第一志愿上,填写了“清华大学自动化系”。当贾扬清打开通知书,看到封面写着“清华是你一生的骄傲”这句话时,很开心。
清华图书馆早上 8 点开门,7 点多,贾扬清已和几位要好的同学站在门前排队等待自习。班里 27 个同学,贾扬清成绩很快又排到了前几名。本科四年,除了学习,贾扬清的生活还是学习。课余,贾扬清把微积分当作研究课题,做《吉米多维奇数学分析习题集》。
清华信息学院由自动化系、计算机系和电子系组成,三个系所学基础科目相同,计算机系偏理论和软件。“自动化系本质上就干两件事——烧锅炉和开电梯。烧锅炉,要让温度迅速升高,到达一定高温后,要让温度维持稳定,这就是控制理论要解决的问题。开电梯也同理。” ⼤三,贾扬清选修了张长⽔教授的《模式识别和智能系统》课,贾扬清忽然意识到, 人工智能最让他着迷的是——从固有经验里突破出去,为可能性去探路。 “这就有事儿可以干了!”而且“人工智能的算法,我们只能说以多少正确率、大概去做某些东西的识别,很多问题既无知也无解。”贾扬清对“机器学习”产生了浓厚的兴趣。“让机器自动帮人做事,把人从低级、重复的劳动中解放出来,是一件有趣、有意义的事。”论⽂阅读课,贾扬清找到《科学》杂志( Science ),朗读了 Geoffrey Hinton 的 《基于神经网络的数据降维》 ( Reducing the Dimensionality of Data with Neural Networks )文章。课后,贾扬清找“神经⽹络”相关的资料,自学,他去了解“玻尔兹曼机”等概念……尽管当时,在人工智能领域,“神经⽹络”处在低潮期。 毕业前夕,贾扬清凭兴趣做了一个课程设计——在交通拥挤的情况下识别单辆汽车。若能识别出有多少辆单辆汽车,便能判定当前路段的拥堵情况。贾扬清和同学们站在四环路上的每一个天桥上,用相机拍了许多经过桥下车辆的照片,手工在照片上做标识。“当时还没深度学习,我用了计算机视觉的经典方法,看识别车辆能到什么程度。”“我觉得这个问题好玩,有挑战,就去探索,也不是上来就能解决掉,若是已经有一个正确方法,就没意思了。” 2006 年 7 月,“好学生”贾扬清本科毕业,免试升入本校读硕士研究生。贾扬清跟随张长⽔教授,攻读模式识别和智能系统专业,正式走上人工智能研究之路。
2008 年 7 月,芝加哥,计算机国际学术会议。天气炎热,穿短袖的贾扬清,被会议厅巨冷的空调吹得瑟瑟发抖。贾扬清心里也忐忑不安,他要反复上台,用英文讲 5 篇国际论文,其中 4 篇都是他陌生的领域,而台下都是来自世界各地的专业人士。
实验室 5 位同学论文入围,但只有贾扬清拿到了美国签证。无奈之下,贾扬清只好“依葫芦画瓢”代讲。导师鼓励他:“你放心,讲得烂,别人都不会记得,你没那么重要。放心讲就行了。”“搞砸了,人家记不住你;搞好了,人家会说,这个人还不错哦!” 学术会议上,欧美同行乐于主动展示自己的风气,对贾扬清冲击很大。国内实验室,大家普遍闷头做自己的科研,欧美人则非常希望自己的科研让更多人看见,他们主动找人攀谈,在讲台旁边支起易拉宝,努力宣传自己的项目。他们讲起自己正做的事,便眉飞色舞,眼里放光,浑身洋溢着自豪感。贾扬清被深深感染。“我学会了跟别人沟通自己做科研背后的想法。当时,我们普遍欠缺这种能力。” 2009 年夏天,25 岁的贾扬清从清华研究生毕业,一口气申请了十几所国外大学的博士生,其中加州大学伯克利分校计算机系提供全奖,学校在加州也甚合贾扬清的心意。那时,人工智能的研究处于摸索场景应用的初级阶段,语音识别、机器翻译、物体识别……就业方向局限在算法领域,从事数据科学家、数据挖掘等工作,还未单独成为招聘门类。
伯克利研讨会上,一位大厂同行主动找到贾扬清说:“我们很喜欢 Caffe。代码里,居然有单元测试!很多时候,搞科研的人写出来的代码真是没法看啊,但你们写的还不错!”这得益于贾扬清在 Google 实习,学写代码时养成了好习惯。
每年的 5 月下旬到 8 月,伯克利放暑假,学生们为培养工业实践经验,多数都会去大厂实习。2011 年,夏天,贾扬清在 NEC 实验室实习,第⼀次接触到稀疏编码( Sparse Coding ),贾扬清做了⼀个⾃动学习每个特征的感知域算法,在 CIFAR 数据集上获得了当时最好的准确率。 博士二年级暑假,Google 邀请贾扬清到公司面试,随即便留下实习。Google 的实习,分产品工程和研究院两个方向。贾扬清在研究院,导师是华人韩玫( 现任平安科技硅谷研究院院长 )。贾扬清做图像识别和视觉图像上视频理解的研究,和图像搜索的团队一起,做精准识别模型,致力提升识别的正确率。后来,他所参与的工作,被集成到 Google Photos 的个人相册里。 置身 Google,贾扬清感受到,几万名工程师分布式协同工作的极致高效。Google 的工程实践流程体系健全,写代码的过程用规范固定下来:要求写程序时,要把单元测试方式写到旁边,方便他人修改后测试;要求用标准的格式写文档。短时间内,贾扬清写代码的能力,被迅速提升。“这一方面,得益于我从众多开源软件中学习;另一方面,我觉得好奇心是衡量学习的普世标准。看到好的代码,自己动手试一试,多写几次,不断改进。”“每个人都有好奇心,就像儿童敢吃任何东西,是因为儿童没有吃的经验,尝试吃新东西的边际收益大,世界真美味的欢乐大于偶尔吃到泥巴的苦。”“上了年纪,可借鉴的经验数据越来越多,就需要用哲学代替经济学,用信仰强行将自己置于探索行动中,而非总是科学理性地在经验中深度学习,选优。” 在 Google 实习,贾扬清“一边学东西,一边改善生活”。Google 食堂饭菜丰盛,有款名为“十磅”的甜点小蛋糕,寓意在 Google 待上一年,体重会涨 10 斤!贾扬清用 Google 的实习工资,换了一辆新车。在 Google 养成的良好工作习惯留痕在 Caffe 的代码里。 2013 年,贾扬清从伯克利毕业,获计算机博士学位。
贾扬清到西班牙开会,患重感冒,深夜去药店买药,不懂西班牙语,打开 Google 翻译的照相机翻译,顺着货架一排排扫描过去,居然找到了布洛芬。
紧急情况下,用自己开发的功能,解决了问题,“感觉很奇妙” 。 Google 收购而来的 OCR 算法本来较简单,无法识别复杂的字体和文字,在云上识别,速度慢,贾扬清和作者一起,第一次将深度学习 OCR 模型做到了手机上。 2013 年,贾扬清入职 Google Brain( 2023 年 4 月,Google Brain 与 DeepMind 合并为 Google DeepMind ),两年后,贾扬清成为 TensorFlow 的创始团队一员。“TensorFlow 第⼀代框架的作者大多还在 Google,二代框架做得深入又完备。被 Google 的产品广泛采用。”TensorFlow 被 Google 公司开源,一度成为 GitHub 上 Star 数超高的项目。在 Google,贾扬清找到了个人的”比较“优势。“我先从 AI 的科研开始,和科学家们有共同语言;做工程,工程师们觉得我写代码不错。”“我能够让两边沟通协作。” 2016 年,贾扬清加入 Facebook 公司( 现 Meta )。Facebook 需要搭建一个支持广告、Feed、搜索推荐、图像识别、自然语言处理、混合现实等所有产品的 AI 底座平台。贾扬清的 4 人团队,小而高效。在 Caffe 的基础上,开发 Caffe2。Caffe2 发布时,“增强现实和虚拟现实”突然流行,Caffe2 仅用了 2 个月的时间就嵌入了手机端。扎克伯格非常开心,亲自发了条动态,官宣了艺术家风格转换功能( 见图 3 )。这是深度学习⽹络首次在超过 10 亿台手机应用。
刘韧:机器翻译靠什么突破? 贾扬清: 以往,机器翻译依赖建立语法规则实现,但两种语言间的句法差异巨大,很难用手写的方式,穷尽定义语法规则。现在,用神经网络,再借助互联网收集数据,训练神经网络,逐步优化、提升其精准度。 刘韧:规则方式和神经网络方式,不同在哪? 贾扬清: 程序员写规则,就会陷入到无尽的规则中,进入规则沼泽,例外之外还有例外,是一个无穷尽的问题。用神经网络,用模糊的方式模糊地解决问题,再通过数据训练逐步提高预测准确率。 刘韧:深度学习和强化深度学习有什么不同? 贾扬清: 强化深度学习意思是,如何把将来获得的收益或惩罚回归到现在。 刘韧:人工智能会在哪个方向上和人争工作? 贾扬清: 简单重复的人类劳动被替换是个好事,人解放出来的时间,可以想更多的可能性。达芬奇有幅非常著名的画叫《岩间圣母》( Virgin of the Rocks ),圣母的主体是达芬奇画的,背景的花草石头是达芬奇的助手画的,达芬奇也需要助手。今天很多画家,他画主体,再找助手把背景填上去。他也可以让 AI 来填背景。就像达·芬奇的助手一样,AI 能提升画家的效率。 刘韧:中美的技术差距体现在哪方面? 贾扬清: 好奇心。我们最优秀的人才在追求执行力,解决具体问题。欧美人更喜欢搞新东西。不得不承认,美国人已经解决温饱很长时间,因此他们玩得更多,玩得多,总能玩出一些新东西。我们在很多方面要追,这事急不来。 关于《 开源英雄 》
《开源英雄》是由 CSDN 创始人&董事长、极客帮创投创始合伙人蒋涛发起,中国著名 IT 记者、DoNews 创始人刘韧领衔,CSDN、《新程序员》联合出品的专访栏目。通过开源开放的 CSDN 写作班,深入访谈全球顶尖开源人物,为广大开发者传递更多、更高质量的信息,透过他们的人生及成长寻找共鸣、共舞开源世界。
自栏目推出至今,我们专访了 Vue 作者尤雨溪、LVS 创始人章文嵩、Linux 内核守护者吴峰光、中国 Linux 第一人宫敏、小米开源奠基者崔宝秋、Caffe 作者贾扬清,如果你有想让我们报道的开源人物,欢迎在 GitCode 上提交 Issues 或 PR。
地址:https://gitcode.net/programmer_editor/Open-Source-Heroes
推荐阅读: ▶ 互联网惊现 AI 鬼城:人类不得入内;阿里云史上最大规模降价,最高降幅达 50%;可致微信闪退的二维码Bug已找到|极客头条 ▶ ChatGPT重磅更新:可关闭聊天历史记录,企业订阅版即将发布! ▶ 蚂蚁链开源跨链技术 加速大规模创新应用“涌现”