12 月 21 日~22 日,由鹏城实验室(PCL)、中关村视听产业技术创新联盟(AVSA)主办,OpenI 启智社区(OpenI)承办的「OpenI/O 2019 启智开发者大会」在深圳召开。本次大会以“平台筑基、标准张脉、开源赋能”为主题,邀请了来自百度、腾讯、华为、鹏城实验室、小米、微众银行等公司的产业界专家,与高文院士、黄铁军教授等多位学术界领袖,围绕“AI 开源基础设施及环境”、“深度学习与强化学习”、“联邦学习与开源数据湖”、“5G+AI+AVS 及全国 AI 大赛”、“AI 开源教育与治理”、“Open Source Community Leadship”六大主题坐而论道,共同探讨人工智能的边界和方向。
小米集团副总裁、集团技术委员会主席崔宝秋在会上发表了题为“小米的开源战略与实践”的主题演讲,详细阐述了小米开源战略的原则和制定依据,以及小米基于这些原则开展的开源实践。崔宝秋表示,开源软件促进了自由软件的发展,让工业界更好更深度拥抱开源。但是今天我们需要重新考虑自由软件精神,开源不应该有国界,我们在 AIoT 时代要做更加开放的开源,除了代码的开源、模型的开源,也要注重数据的开源、数据的共享。
InfoQ 根据速记将演讲内容整理如下(在不改变原意的基础上略有删减):
尊敬的各位嘉宾、各位同学,大家下午好,今天我分享的题目是“小米的开源战略与实践”。我是小米集团技术委员会主席,也是正式制定小米开源战略、发起小米开源委员会的负责人。我个人从 1995 年去美国读书时就成为了自由软件的爱好者,此后到信仰者,到之后开源软件的推动者、项目制定管理者,再到小米的开源战略。我跟开源接触算起来差不多有二十四五年的时间了。我今天分享的不仅是小米的开源战略与实践,更多是我认为业界应该怎么拥抱开源、怎么打开源这一仗。今天由于中美关系和各个企业之间的竞争让开源有了国界,让开源的公司之间有了界限,我觉得都不应该。
讲小米的开源战略,我们必须先聊一下什么是开源、什么是开源文化、什么是开源的理念和精神、为什么要拥抱开源。在生活中,无论是个人爱好者还是企业使用者,拥抱开源的过程中会有哪些坑、会犯哪些初级错误;再讲一下为什么制定小米的开源战略。
开源是一个理念、一个运动,“开源”这个词是 1998 年出现的,最早叫自由软件。我一直说自己是自由软件的爱好者和信仰者,当 1998 年“开源”这个词出现的时候我不太认同,为什么要出现这个词呢?1998 年我对“开源”这个词有些反感,认为自由软件才是未来。但不得不说的是,开源软件促进了自由软件的发展,让各个企业、工业界更好地更深度拥抱开源,从一个侧面推动了自由软件或者开源软件的蓬勃发展。今天自由软件的精神也是需要我们重新考虑的,因为突然间开源有了国界,在 AIoT 时代要做更加开放的开源,我们要让开源软件更加自由。
开源软件重要的里程碑,我认为是下面几个节点,包括 AI 开源的几个关键节点,这些节点都能证明开源运动、开源软件的发展非常快。
自由软件,我认为一个标志事件是 1983 年发起 GNU 这个项目,它是开源版本的 Unix,后面 Linux 1991 年才出现,当我最初看到 Linux 代码的时候,觉得 90%或者 80%以上都来自 GNU。Richard Stallman 在 1985 年成立了自由软件基金会,这都是早年我特别喜欢的。1998 年 2 月份 Eric Raymond 创造了一个新词叫 Open Source。这是过去几年的里程碑事件。
Linux 操作系统的内核,从计算机操作系统开始,到后面随着谷歌搜索引擎的出现,出现了云计算,用上万台、几十万台服务器做大量信息存储、计算、搜索,再到后面的数据科学、数据科学家、数据驱动、数据挖掘、数据智能,这一条线下来,都离不开自由软件和开源软件。小米在几年前就采用了自由软件或者开源软件,现在小米用的开源软件更多了。
2016 年因为 AlphaGo 事件,我们进入到新一轮 AI 春天,很多人包括我在内也在想,AI 时代会不会有更多人来开源他们的软件、开源他们的系统,开源会不会遇到一系列挑战?但是很快,我的担心、业界很多人的担心都变得没有意义了,因为 AI 的巨头都在纷纷开源,包括谷歌在内,他们开源了一系列 AI 算法、框架,背后的一个理由是巨头想通过开源快速占领 AI 领域的领头羊地位。
不管是系统框架还是模型、数据,国外的巨头都在深度拥抱开源。从早期操作系统到后面的云计算、大数据,再到今天的 AI,开源软件无处不在。
今年小米进入了手机+AIoT 的新时代,我们在公司内外都在讲,AIoT 也离不开开源软件。小米的 AIoT 是跨云边端的一体的 AI 能力系统,从云到边缘计算、到端上的 AI 推理,都需要开源软件。如果说早期是 C(Cloud)到 B(Bigdata)到 AI,在 AIoT 时代我们需要更加深度地拥抱开源。
我想讲的第一部分,开源力量势不可当。
1995 年我到美国接触到了 Linux 等,对我个人来讲,读这些开源代码是一种享受,我认为开源代码是人类的财富。今天开源代码应该成为全球人类的财富,而且应该是无国界的。
从一个企业的角度,我们为什么要拥抱开源?下面是过去几年我总结的,今天我觉得还不会过时。
第一,站在巨人的肩膀上,已经有很多人写了大量优质的软件,大家没有必要再去重新造轮子。开源软件不管是在 C、B 还是 A 的时代都非常成熟,有很多已经成为事实标准,比如 Hadoop、TensorFlow。利用开源软件有助于打造良好的公司文化。真正做技术的公司,大家都喜欢开源,这些代码很漂亮,无数开发人员在不断优化和迭代这些开源软件,大家互相学习,每个人代码水平和技术水平都会提高。如果使用一些比较有名的、已经成为事实标准的开源软件,会让你的企业一下发现大量人才,比如 Hadoop,你用自己的一套东西在市面上找不到人才,拥抱开源软件,可以让更多喜欢和热爱开源的人才加入你们。
第二,开源的精神。拥抱开源是小米的工程文化,开放与共享是小米的价值观,也是我们经常提的两个关键词。今天上午的演讲中,大家可能听过无数遍的开放和共享,这是开源精神的两个非常重要的关键词。
2000 年左右,我看到 Linux 兴起,到 2012 年我回到中国跟很多 CTO 交流,我发现对开源真正了解的人不是很多,而且几乎所有公司都在犯一些错误,这是我总结的几个大家常犯的错误,包括一些国外巨头也在犯,因为巨头中也有人的认识是不一样的,这些错误是每家公司或者很多团队会一次一次重复犯的错误。
第一个比较常见的是“拿来主义”,很早以前中国很多公司采纳 Linux 的时候,大家都在拿来,却没有反馈和回馈社区,那时候很多人不真正懂开源,不懂自由软件。
这些年好了一些,到了云计算和大数据时代,大家开始懂开源,但是缺乏共享。缺乏共享有很多个原因,有一类是不知道共享,我为什么要共享呢?不理解;有些人知道应该共享,有一定的共享精神,但是因为各种原因而不愿意共享,这是我的宝贝、这是公司的财富,我不愿意拿出去;有些人懂得共享,也愿意共享,但是懒得共享,我花了一个星期、两个月写了一些软件,还要再花一些时间写测试用例、写文档,给别人证明我的代码是好的、是有用和通用的,太麻烦了。
几年前,小米在 HBase 这个项目中的一个贡献是我们两个星期搞定的,并且将性能提升了 5 倍,这个速度很多社区的人不相信,我们花了几个月、接近半年时间证明提升 5 倍的数据是真实的,这个努力远超过写软件改进的时间,所以很多人懂得共享、愿意共享,但是懒得共享。有的企业懂得共享、愿意共享、愿意花时间共享,但是社区有可能不接受他的共享,谁认识你呢?你的代码到底有什么用呢?没有可信度,这就是我们缺乏的一些东西。
第三,很多企业不够真正开放。有的人为了开源而开源,说开源了多少个项目,开源之后再也没有维护过,没有社区、没有互动、没有迭代,只是开源了一个项目,然后再来一个,开源的东西可能也没有多大价值。有的公司不愿意长期投入,不愿意在开源上花功夫投入人力,不愿意回馈社区。
还有一些团队不愿意打造社区,不知道怎么打造社区,最后开源可能慢慢变成无源之水,干涸了。
刚才提到的问题,总结起来一个是缺乏共享、不愿意共享或者共享不被接受,不管什么原因,经常会有这么两个模式的对比。一个是和社区主干、社区分支不断融合在一起的健康模式;一个是缺乏共享、不愿意共享、懒于共享或者是开源不被社区接受,最终形成一个本地版本,公司的分支和社区分支渐行渐远,被社区无情抛弃。
7 年多前我来小米就讲了,我们要站在巨人肩膀上,还要为巨人指方向,要赢得话语权,让他知道小米的贡献是好的,小米的贡献应该被接受,小米是无私共享和开放的。让开源的巨人慢慢听从小米的指挥。
基于这些,我定义了小米开源战略的五大原则,今天看来还没有过时。
第一,快。快速选型、快速定位、快速上线、快速推出产品,这跟小米的互联网七字诀非常像。
第二,绝不重造轮子。很多经验是我个人开发,或以前在学校和公司、与人合作过程中发现的,大家很容易找出现有系统和别人的东西不太好的地方,总会有各种原因要重造轮子,我们要坚决反对重造轮子。
第三,不用则已,要用则精。我记得跟王坚博士有过一次沟通,王坚博士说阿里云要自建,如果用 Hadoop,线上出现 bug 以后,社区推出相应的修复补丁,谁敢决定按下 OK 按键把这个补丁部署下去?阿里云不用开源代码可能有其他的理由,但王坚博士的观点代表了一些人对开源软件的看法。如果你用了 Hadoop,有一个补丁过来都不敢部署上去,我觉得这不能算是掌握开源,不能算是驾驭开源系统。拥抱开源,要不用则已,要用则精,要真正掌握,不能拿轮子跑起来就行了。
第四,坚持开放与共享,这是开源精神。
第五,极力推出自己的 Committer,为什么要推出这个?我就是要为巨人指方向,就是想让巨人接受我的共享、我的提交。
小米从 2012 年开始做了一些事情,在 C、B、A 时代都开源了一些东西,这方面就不讲了。下面分享四个简单的案例,讲一下不同侧面、不同维度小米在开源过程中的打法。
第一个案例我认为是非常经典的案例,可以说是小米七年前制定的开源战略的完美实践,那就是 HBase 选型、使用和贡献。当年快速选型,选了几个版本和系统,我力推 HBase,后来组建团队,到今天一共推出了 9 个 Committer、3 个 PMC,同时小米的张铎同学也被选为 HBase 这个项目的主席,这间接表明我们赢得了话语权。小米在 HBase 的贡献去年占整个社区贡献的 23%,今年前段时间估计占了 33%,这个比重在不断增加。
HBase 选型站在巨人肩膀上,快速满足了小米各种业务线对存储的需求。但是它的性能有一定的不可预测性,对一些敏感的应用会有问题,我们就立项做小米自己的开源项目 Pegasus,内部自研了两年,最后 2017 年开源。最近中科院搞了一个大奖,我们也获奖了,这是 C 和 B 时代的开源项目,最近我们又发布了最新版本。
第三个案例,刘明老师提到的MACE,是小米贡献的移动端深度学习框架。小米是一家手机公司,也是一家个人设备公司,我们非常在乎端上的 AI 推理能力。MACE 的 M 原来打算解读为 MI,我当时觉得不太好,应该改成 Mobile,因为开源以后,这个项目未来可能就不仅仅属于小米了,我在这里也呼吁更多企业加入进来。MACE 已经应用到了很多场景,视觉、语音、自然语言,每天调用 50 万次,非常多,也获得了一些奖励和认可,相关的近期规划我就不再讲了。
第四个案例,KALDI。对语音熟悉的会了解这是国际知名的开源语音识别工具,作者是Daniel Povey,原霍普金斯大学的教授,由于各种原因离开霍普金斯大学后,一开始去了 Facebook,后来他说要到中国来。我们听到消息之后就跟他接触,最后小米 PK 掉所有竞争对手,包括高校、大小互联网企业和大小公司,成为他最终的选择。吸引他的理由有三个,第一个是小米强大的手机+AIoT 生态,第二个是小米对技术人才的重视,第三个理由我认为是非常重要的理由,就是他充分认可小米的开源文化。我给他发了很多 PPT,讲小米的开源战略是什么、我们为什么拥抱开源、未来的计划是什么,当时有一条说的是我们要团结中国所有的互联网公司,把中国的开源力量推向世界,他说他也想做。所以,小米的开源文化、对开源的拥抱是吸引 Daniel 加入小米的主要原因。
最后,讲一下开源的未来。
我如何看开源的未来?我认为开源是软件的未来,开源是 AI 的未来,我觉得开源的未来会非常辉煌。在 AI 时代,我想呼吁广义的开源,除了代码的开源、模型的开源,我们也要注重数据的开源、数据的共享。今天的 AI 还是大数据 AI,有多少数据就有多少智能,在未来小数据 AI 到来之前,我们还需要共享更多数据,当然,隐私数据除外,我们能共享的要考虑共享一下,尤其是知识图谱。今天的小爱同学和其他所有智能助理有多聪明、多伶俐、知识面多广,就来自于有多少知识,知识图谱是一种比较特殊的数据。一两年前,我积极推动OpenBase这个项目的发展,小米要成为最大的赞助商,我们希望打造最大的中文知识图谱。
另外,我想讲一下更加开放的开源。今天上午几位演讲嘉宾讲到完全的开源、完全的开放,其实我想表达的是更加开放的开源。今天有一个倾向,就是把开源和开放混为一体,开源叫开放平台就行了,那是弱化了开源,我想讲的是更加开放、更加极致、更加跨企业、跨国界的开源,我们要避免开源领域形成的寡头垄断。有一些公司通过自己强大的生态优势,慢慢控制了一些本来开源的项目和生态,慢慢变得不是那么开放的生态、不是那么开放的开源,我希望在这里呼吁开放、共享、平等、全球化。要真正做到开源全球化,最终让开源没有国界。
这是我今天分享的所有内容,谢谢大家!
评论 4 条评论