開源改變了小米什麼?

小米與開源的淵源還要從 Android 的開源說起。

開源改變了小米什麼?

屈指算來,開源軟體至今已有二十多年的光景,到今天,開源已經成為所有網際網路公司的基石,也是我們所有程式設計師所崇尚及熱愛的文化。無論是於公司或個人而言,我們都從開源軟體及社群受益良多,小米即是其中之一。在今天於北京舉行的小米開源技術峰會上,小米人工智慧與雲平臺副總裁崔寶秋與我們分享了小米為什麼會走上了開源之路。

1、為什麼小米堅定地走上了開源之路?

這與程式設計師出身的雷軍,以及今時今日小米開源的主導人 —— 小米人工智慧與雲平臺副總裁崔寶秋博士密切相關。在小米開源技術峰會的現場,崔寶秋分享起了自己從 1995 年開始接觸自由軟體到推動小米成為開源軟體倡導者的初衷及所取得的成就。

開源改變了小米什麼?

小米人工智慧與雲平臺副總裁崔寶秋

崔寶秋講起了雷軍與他分享過為什麼要創辦小米,其中有一個原因就是看到了 Android 的開源,早在數年之前,雷軍便堅信像 Android 這樣的開源作業系統會盛行更是一個巨大的機會。“雷總和我說,‘寶秋,現在任何一家網際網路公司離開開源就輸在了起跑線上’,開源非常重要,這也是我在小米推動開源的源動力。”崔寶秋如是說道。

開源改變了小米什麼?

而於崔寶秋個人而言,他是中國技術圈裡知名的開源老將,自 1995 年在美國接觸自由軟體到現在已有二十多年,而這數十年之間,他已從一個愛好者成長為中國開源領域的一方大拿,用他的話說,就是“從早期自由軟體愛好者變成自由軟體信仰者、開源軟體的開發者和管理者,到今天在小米的開源軟體倡導者。”

過去幾年來,開源已經成了小米的團隊文化、工程文化非常重要的組成部分。“我在打造小米人工智慧與雲平臺團隊時,一直都是以矽谷的一種創業公司、網際網路公司的風格來打造團隊的,團隊文化包含了多種元素,其中非常重要的兩個就是‘技術’和‘開源’,我是非常倡導、鼓勵開源的。”

在談到為什麼如此積極地擁抱開源時,崔寶秋談到了幾點理念,這也是他從 2012 年加入小米就一直極力主導開源的原因。

永遠站在巨人的肩膀上:

這是非常實用的應用,現在很多的大資料、人工智慧、雲計算技術開源已經成為了事實標準,我們又何必重複造輪子自寫一個 Hadoop 呢?

開源軟體已經非常成熟:

在雲計算、大資料和 AI 領域,很多開源軟體已經成為了業界的事實標準。

程式碼質量/工程文化:

透過開源軟體的應用及讀大量的優秀的開原始碼可以迅速提升工程水平及工程師文化。開源軟體還可以提升開發者們對於程式設計的熱愛,對程式碼質量的苛求,進而提升對於完美度的追求。

吸引人才/人才庫:

一個公司擁抱開源,崇尚開源文化,可以吸引很多的工程師加入到公司之中,而他們所學習到的技術可以直接在公司應用。

崔寶秋將開源力量分為三種,分別為:個人愛好者、無開源商業模式組織和有開源商業模式組織。對於崔寶秋而言,從作為一個開源的個人愛好者,到先後任職 IBM、雅虎、LinkedIn 到現在的小米,這種界限分明的力量讓他感受頗深。“我從 IBM 到雅虎後對於開源的感受變化異常明顯,無論是 IBM 還是早期的微軟都是談開源色變、談自由軟體色變,但到雅虎後,能夠顯著地感受到徹底擁抱開源的文化,因為他們在提供網際網路服務,而有些公司是直接透過開源軟體盈利的,大家都知道,開源不等於免費,這些公司會從軟硬體底層、應用層到雲服務向他們的客戶提供一整套解決方案而盈利。”

開源改變了小米什麼?

在這之中,小米是中間力量(即無開源商業模式的組織),當然,“大部分都是中間力量,這其中還包括了諸多高校及科研機構。”

2、開源改變了小米什麼?

而這擁抱開源的理念也支撐著小米技術體系實現了從零到一,最早在 2012 年崔寶秋加入小米時所思考的,就是在有限人力的情況下,如何站在開源巨人肩膀上快速推出一些雲端儲存計算和大資料處理能力。“我一來小米做了很多工作,打通資料孤島,制定開源戰略,擁抱開源。小米當時伺服器人非常少,我們不可能重新寫很多東西,不可能從零開始,我們一定要站在巨人的肩膀上,比如說選用 Hadoop,這是閉著眼睛就可以選擇的,不用猶豫。”崔寶秋講道。

開源改變了小米什麼?

這個成果是顯著的:

2012 年 7 月,統一 Hadoop 叢集,打通資料孤島;

2012 年 10 月,選型 HBase,組建團隊;

2013 年 6 月,開源 Minos 自動化監控部署系統;

2013 年 12 月,推出第一個 HBase Committer;

2014 年 3 月,推出第二個 HBase Committer;

2014 年 4 月,開源時間戳伺服器 Chronos 及實現 HBase 跨行/跨表的事務處理的 Themis;

2014 年 8 月,正式成立小米開源委員會;

2014 年 9 月,開始參與 Cloudera Kudu 的研發;

2015 年 1 月,推出第三個 HBase Committer;

2015 年 5 月,開源企業級、高可用、可擴充套件監控系統 Open-Falcon;

2016 年 4 月,推出第一個 Kudu Committer;

2017 年 1 月,開源分散式實時搜尋平臺 Linden;

2017 年 10 月,開源分散式 KV 儲存系統 Pegasus;

2018 年 6 月,開源移動端深度學習框架 MACE;

……

當然,這只是小米開源的一部分,在回顧這些小米開源大事記之時,崔寶秋還講起了一則關於為何要自研並開源 Open-Falcon 的初衷:“小米最初由於沒有監控系統導致伺服器宕機或掉線都無法實時獲取,因為這樣的痛點而開始了自研監控系統(並且,將其開源)。”

到今天,“無論是 C、B、A(雲計算、大資料、人工智慧),開源都在小米扮演了極其重要的角色。如果說五六年前,在小米不是每個核心主管都認可的話,那麼在今天的 AI 時代,越來越多的人都在講開源。”

3、開源應該怎麼做?

而經過這幾年的開源之路,小米在開源上也趟過了許多坑總結出了一套打法,這一點從小米的開源戰略中便可窺一二。比如對於“不用則已,要用則精”,崔寶秋表示,“中國很多公司都犯過一個很大的錯誤,就是沒有用精,其實歸根結底是在於對開源軟體的不信任,不信任的原因是隻拿來用,沒有深度掌握,在沒有碰到真正困難時一切都好,一旦上線、叢集大小不夠,一擴容就出問題了。”再比如選型開源軟體時,崔寶秋談到專案週期長與迭代週期快的衝突。“對於一個公司來講,有些決策是必須高層來做的,長期規劃,厚積薄發。選擇一個重要的、大型的自由軟體、開源軟體必須要有決心。”

同時,崔寶秋還總結出了在開源與技術之間我們常碰到的問題並給出了相應的解決方案:

如何平衡在開源和業務上的投入?

如崔寶秋所言,在開源上大量的投入,在一個大公司是很難被認可的,如何平衡開源和業務上的投入,由此,他將其總結為三點:

1。 業務第一,開源第二:公司發展不能本末倒置,業務永遠是第一位的;

2。 業務驅動:在開源上的投入一定要圍繞公司的業務需求;

3。 保障開源上的投入,有機會學習。

如何積極有效地回報開源社群?

崔寶秋提醒道:“這是我們中國工程師需要注意到的一點,第一,

要積極交流參與討論

,不要自嗨,要多到社群、論壇參與回答別人的問題,以及提出合理的問題;其次,

要能夠清晰地描述想法、表達演算法

,當英語口語不行時,透過寫作可以更好地表達清楚;第三,

當你被挑戰、被質疑的時候要堅持自己正確的觀點

,比如我們做了很多 HBase 的最佳化,剛開始社群不認可但最終在我們的證明下相信並接受了我們的程式碼;最後,

要為自己提交的程式碼負責

,不要打一槍換個地方,遇到社群一些對自己的程式碼的建議和問題,能不能做好客服,及時回答並改進。”

“千萬不要掉入與社群版本漸行漸遠的坑中”

“與社群版本漸行漸遠,只有死路一條,即使強大如 Google、Facebook,與開源社群相比都是渺小的存在。只有開放共享、與社群共成長才能長期享受開源紅利,而封閉開發,即使短期受益,但最終仍會被社群拋棄。”

開源改變了小米什麼?

“我們不僅要站在巨人的肩膀上,還要努力為巨人指方向”

崔寶秋表示,“孤軍奮戰是很難對社群、開源軟體產生任何影響力的,小米極力地推出 Committer,除了要精通掌握之外,還有一個很重要的原因就是要拿到一定的話語權,用另一句話來講,就是不僅要站在巨人的肩膀上,還要努力為巨人指方向。”

什麼叫“為巨人指方向”?崔寶秋說道:“開源是一個巨人,每一個開源專案都是一個巨人,誰擁有這個開源專案?沒有人!真正健康的開源專案是社群來決定和推進的。國內許多公司犯的一個錯誤就是自己玩得很 High,但是沒有貢獻,與社群的融合很差。”

4、AI 時代如何擁抱開源?

今天當我們迎來 AI 時代時,又當如何擁抱開源?從疑惑於 AI 時代開源軟體會不會無法滿足需求之時,我們已經看到了 AI 巨頭們在開源領域遍地開花,比如 Google 的 TensorFlow、百度的 PaddlePaddle、微軟的 CNTK,以及小米的 MACE 等都是很好的例子。

對此,崔寶秋在表示 AI 時代更離不開開源軟體的同時還做出了一個呼籲,那就是從程式碼開源、深度學習框架的開源,到資料的開源。“大資料在人工智慧中扮演了重要的角色,包括知識圖譜、資料服務、訓練模型等。目前,如 Google、微軟等巨頭也都一直在推動知識圖譜的開放,諸如 Freebase、Microsoft Concept Graph 等均可以免費獲取,到今年 10 月,全球已有 1200 多個知識圖譜開放出來,但其中中文圖譜非常少,小米當前在開放的知識圖譜方面已經做了一些工作,比如與 OpenKG 及其他高校組織發起 OpenBase 專案,進行知識的抽取編輯、挖掘融合以及更新、眾包。我們希望能夠打造出一個強大的中文知識圖譜,造福中國、造福全人類。”

開源改變了小米什麼?

同時,當前國內許多專案都是公司主導的,這也就導致程式碼是開源的,但專案卻比較封閉,“在 AI 時代,如果所有的開源專案變得非常封閉,將不利於整個開源社群及開源軟體的成長,我們需要做到更加開放的開源。以 MACE 為例,我們希望能夠將上中下游全部打通,目前 MACE 底層支援很多硬體晶片,從高通、MTK 到澎湃,未來我們也希望更多的晶片廠商加入。在演算法、平臺、應用層面希望所有同行都能夠來參與,包括友商。”

“這就是在 AI 時代我們想要呼籲的一點 —— 更加開放的開源。”在演講的最後,崔寶秋如是總結道。