HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

小米崔宝秋:开源不该有国界,我们要避免开源领域出现寡头垄断

  • 2020-01-06
  • 本文字数:5355 字

    阅读完需:约 18 分钟

小米崔宝秋:开源不该有国界,我们要避免开源领域出现寡头垄断

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这个项目的发展,小米要成为最大的赞助商,我们希望打造最大的中文知识图谱。


另外,我想讲一下更加开放的开源。今天上午几位演讲嘉宾讲到完全的开源、完全的开放,其实我想表达的是更加开放的开源。今天有一个倾向,就是把开源和开放混为一体,开源叫开放平台就行了,那是弱化了开源,我想讲的是更加开放、更加极致、更加跨企业、跨国界的开源,我们要避免开源领域形成的寡头垄断。有一些公司通过自己强大的生态优势,慢慢控制了一些本来开源的项目和生态,慢慢变得不是那么开放的生态、不是那么开放的开源,我希望在这里呼吁开放、共享、平等、全球化。要真正做到开源全球化,最终让开源没有国界。


这是我今天分享的所有内容,谢谢大家!


2020-01-06 14:304786
用户头像
蔡芳芳 InfoQ主编

发布了 798 篇内容, 共 548.6 次阅读, 收获喜欢 2788 次。

关注

评论 4 条评论

发布
用户头像
尴尬了,小米像得是控制,而且没发现有什么顶级开源项目是小米贡献的,从移动到前后端业务……
2020-01-08 14:21
回复
小米在HBase上的贡献呢?
2020-01-10 11:31
回复
我们在小米上市时整理了他们的开源项目,可以了解一下:https://mp.weixin.qq.com/s/mx4Iu4ZFo2rSFyGfffMrJQ
2020-01-10 11:37
回复
用户头像
做到什么程度才算是真正掌握了开源,值得好好思考
2020-01-07 09:48
回复
没有更多了
发现更多内容

【高并发】通过源码深度解析ThreadPoolExecutor类是如何保证线程池正确运行的

冰河

Java 并发编程 多线程 高并发 异步编程

消息队列表设计

Rabbit

多模态内容理解算法框架项目 Lichee 正式开源,为微服务开源社区贡献力量

腾源会

开源

干货分享:细说双 11 直播背后的压测保障技术

阿里巴巴云原生

阿里云 云原生 性能测试 PTS

Golang Gin 框架入门介绍(二)

liuzhen007

11月日更

怎么清空.NET数据库连接池

喵叔

11月日更

腾讯自研分布式远程Shuffle服务Firestorm正式开源

腾源会

大数据 开源 腾讯

flutter小部件知多少?

坚果

flutter 11月日更

一文告诉你 K8s PR (Pull Request) 怎样才能被 merge?

腾源会

k8s

腾讯云原生开源生态专场召开,洞察开源云原生技术发展趋势和商业化路径

腾源会

腾讯云 开源 云原生

赞!一篇博客讲解清楚 Python queue模块,作为Python爬虫预备知识,用它解决采集队列问题

梦想橡皮擦

11月日更

进击的Java(七)

ES_her0

11月日更

我在 IBM 从事开源工作的十一年

腾源会

开源

Serverless 架构模式及演进

阿里巴巴云原生

阿里云 Serverless 云原生 架构模式

Ubuntu系统下《汇编语言》环境配置

codists

汇编语言

Prometeus 2.31.0 新特性

耳东@Erdong

release Prometheus 11月日更

SuperEdge 和 FabEdge 联合在边缘 K8s 集群支持原生 Service 云边互访和 PodIP 直通

腾源会

开源 边缘计算 superedge

腾讯开源全景图再刷新:社区贡献领跑国内企业,获超过38万开发者关注

腾源会

开源 腾讯

【LeetCode】反转链表Java题解

Albert

算法 LeetCode 11月日更

面试官:讲讲雪花算法,越详细越好

秦怀杂货店

分布式 雪花算法

Github webhooks 自动部署博客文章,使用总结【含视频】

小傅哥

GitHub 小傅哥 WEBHOOKS 自动部署 通知回调

在华为云专属月,找到开启互联网第二增长曲线的一把钥匙

脑极体

Android C++系列:JNI操作Bitmap

轻口味

c++ android jni 11月日更

数据库连接池Demo(1)单线程初步

Java 数据库 连接池

架构训练营 模块三 作业

dog_brother

「架构实战营」

腾讯发布 K8s 多集群管理开源项目 Clusternet

腾源会

开源 K8s 多集群管理 Clusternet

[ CloudWeGo 微服务实践 - 08 ] Nacos 服务发现扩展 (2)

baiyutang

golang 微服务 11月日更

模块八作业:设计消息队列存储消息数据的 MySQL 表格

apple

CNCF 沙箱再添“新将”!云原生边缘容器开源项目 SuperEdge 正式入选

腾源会

开源 容器 云原生 cncf

如何评价一个开源项目(一)--活跃度

腾源会

开源

npm必知必会点

废材壶

大前端 npm Node

小米崔宝秋:开源不该有国界,我们要避免开源领域出现寡头垄断_开源_蔡芳芳_InfoQ精选文章