Categories
程式開發

小米崔寶秋:開源不該有國界,我們要避免開源領域出現寡頭壟斷


12月21日~22日,由鵬城實驗室(PCL)、中關村視聽產業技術創新聯盟(AVSA)主辦,OpenI啟智社區(OpenI)承辦的「OpenI/O 2019 啟智開發者大會」在深圳召開。本次大會以“平台築基、標準張脈、開源賦能”為主題,邀請了來自百度、騰訊、華為、鵬城實驗室、小米、微眾銀行等公司的產業界專家,與高文院士、黃鐵軍教授等多位學術界領袖,圍繞“AI開源基礎設施及環境”、“深度學習與強化學習”、“聯邦學習與開源數據湖”、“5G+AI+AVS及全國AI大賽”、 “AI開源教育與治理”、“Open Source Community Leadship”六大主題坐而論道,共同探討人工智能的邊界和方向。

小米崔寶秋:開源不該有國界,我們要避免開源領域出現寡頭壟斷 1

小米集團副總裁、集團技術委員會主席崔寶秋在會上發表了題為“小米的開源戰略與實踐”的主題演講,詳細闡述了小米開源戰略的原則和製定依據,以及小米基於這些原則開展的開源實踐。崔寶秋表示,開源軟件促進了自由軟件的發展,讓工業界更好更深度擁抱開源。但是今天我們需要重新考慮自由軟件精神,開源不應該有國界,我們在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這個項目的發展,小米要成為最大的讚助商,我們希望打造最大的中文知識圖譜。

另外,我想講一下更加開放的開源。今天上午幾位演講嘉賓講到完全的開源、完全的開放,其實我想表達的是更加開放的開源。今天有一個傾向,就是把開源和開放混為一體,開源叫開放平台就行了,那是弱化了開源,我想講的是更加開放、更加極致、更加跨企業、跨國界的開源,我們要避免開源領域形成的寡頭壟斷。有一些公司通過自己強大的生態優勢,慢慢控制了一些本來開源的項目和生態,慢慢變得不是那麼開放的生態、不是那麼開放的開源,我希望在這裡呼籲開放、共享、平等、全球化。要真正做到開源全球化,最終讓開源沒有國界。

這是我今天分享的所有內容,謝謝大家!