0
雷軍曾表示,小米創(chuàng)立的原因之一,在于安卓的開(kāi)源。
現(xiàn)在,小米已經(jīng)有自己的開(kāi)源團(tuán)隊(duì),成為開(kāi)源的倡導(dǎo)者和支持者,開(kāi)源貫穿了小米整個(gè)CBA路線。
在2018小米AIoT開(kāi)發(fā)者大會(huì)上,小米舉辦了第一屆開(kāi)源技術(shù)峰會(huì),并對(duì)小米開(kāi)源歷路及開(kāi)源能力進(jìn)行了詳細(xì)解析。
2012年,小米迎來(lái)一位小米技術(shù)團(tuán)隊(duì)的支柱人物,也就是現(xiàn)在小米人工智能與云平臺(tái)副總裁崔寶秋。隨之而來(lái)的除了人盡皆知的AI,還有開(kāi)源。
2012年7月,統(tǒng)一Hadoop集群,打通數(shù)據(jù)孤島;
2012年10月,選型HBase,組建團(tuán)隊(duì);
2013年12月,推出第一個(gè)HBase Committer;
2014年8月,正式成立小米開(kāi)源委員會(huì);
2015年5月,小米開(kāi)源Open-Falcon;
2017年10月,小米開(kāi)源Pegasus;
2018年6月,小米開(kāi)源MACE。
崔寶秋表示,“我在打造小米人工智能與云平臺(tái)團(tuán)隊(duì)時(shí),一直以硅谷的創(chuàng)業(yè)公司、互聯(lián)網(wǎng)公司的風(fēng)格來(lái)打造,團(tuán)隊(duì)文化包括多個(gè)元素,其中一個(gè)非常重要的元素就是「開(kāi)源」?!?/p>
為什么要擁抱開(kāi)源?對(duì)公司來(lái)講,擁抱開(kāi)源有很多優(yōu)勢(shì),主要包括以下幾方面:
站在巨人的肩膀上。現(xiàn)在諸多大數(shù)據(jù)、人工智能、云計(jì)算技術(shù)開(kāi)源已經(jīng)成為標(biāo)準(zhǔn),沒(méi)必要再單寫(xiě)Hadoop;
提高工程師編程能力。一個(gè)工程師代碼水平編程能力很好的方法就是讀大量代碼,大量的開(kāi)源代碼可以迅速提升工程師工程水平,也可以提升工程師文化,讓大家喜歡技術(shù)、喜歡開(kāi)放;
代碼質(zhì)量/工程文化的提升。開(kāi)源軟件可以提升工程師對(duì)編程的熱愛(ài),對(duì)代碼質(zhì)量的苛求;
吸引人才,構(gòu)建人才庫(kù)。一個(gè)公司擁抱開(kāi)源,崇尚開(kāi)源文化,可以吸引很多工程師來(lái)加入你的公司。
雷鋒網(wǎng)了解到,整個(gè)開(kāi)源體系中,現(xiàn)在存在三種力量:個(gè)人愛(ài)好者、無(wú)開(kāi)源商業(yè)模式組織、有開(kāi)源商業(yè)模式組織。崔寶秋表示,小米屬于第二類——無(wú)開(kāi)源商業(yè)模式組織。
其中,區(qū)別于無(wú)開(kāi)源商業(yè)模式組織,有開(kāi)源商業(yè)模式組織的「開(kāi)源」并不是「免費(fèi)」的。諸如IBM、華為等公司在開(kāi)源上的投入很多,但是有開(kāi)源商業(yè)模式組織最終目的是從底層軟硬件、應(yīng)用層到云服務(wù)向其客戶提供一整套解決方案。
小米屬于無(wú)開(kāi)源商業(yè)模式組織,另外,還包括諸多高校、科研機(jī)構(gòu),以及其他公司。
從2012年開(kāi)始,小米開(kāi)始正式涉足開(kāi)源。
2012年7月開(kāi)始做這個(gè)事情,到后來(lái)很快內(nèi)部討論選HBbase,開(kāi)始大力投入,2013年我們自己在Hadoop上推出了自己的Minos,之后逐漸推出自己的其他一些圍繞Hadoop的自研軟件系統(tǒng)。到2014年8月,為了整合公司開(kāi)源方面的資源,正式成立了開(kāi)源委員會(huì);再之后,當(dāng)HBase滿足不了我們需求時(shí),我們開(kāi)始自研Key-Value系統(tǒng)Pegasus。在AI時(shí)代,我們?nèi)ツ觊_(kāi)始自研移動(dòng)端深度學(xué)習(xí)框架 MACE,并在今年對(duì)外發(fā)布開(kāi)源,也是我們開(kāi)源的一個(gè)重大項(xiàng)目。
據(jù)雷鋒網(wǎng)了解,小米最初在做開(kāi)源時(shí),制定了五條開(kāi)源戰(zhàn)略,即「快、不重造輪子、不用則已 要用則精、永抱開(kāi)放和共享的心態(tài)、極力推出自己的committer」,這些戰(zhàn)略,至今仍然適用。
崔寶秋認(rèn)為,「不用則已,要用則精」是國(guó)內(nèi)諸多公司經(jīng)常忽略的一點(diǎn),即沒(méi)有用精。其實(shí),很多公司對(duì)開(kāi)源不信任的原因之一是沒(méi)有搞定,只拿來(lái)用,用的很不舒服,沒(méi)碰到真正困難的時(shí)候一切都好,一旦上線、集群大小不夠、一擴(kuò)容發(fā)現(xiàn)出了問(wèn)題,主要原因在于沒(méi)有深度掌握,沒(méi)有用精。
小米從2012年正式跨入開(kāi)源,至今已有6年之久,6年之內(nèi),小米在擁抱開(kāi)源的同時(shí),也為整個(gè)開(kāi)源生態(tài)做了很多事情。以HBase為例,小米在過(guò)去幾年,一共推出了8個(gè)Committer,2個(gè)PMC Members。2018年,小米為HBase貢獻(xiàn)了306個(gè)patch,占整體patch貢獻(xiàn)值的23%,全球其他廠商一共貢獻(xiàn)了1010個(gè)patch。崔寶秋在論壇上表示,“自從我們參與了HBase項(xiàng)目,這個(gè)項(xiàng)目的負(fù)責(zé)人多次表示,小米現(xiàn)在已經(jīng)成為社區(qū)最活躍、力量最強(qiáng)的一支隊(duì)伍?!?/p>
五六年前,小米當(dāng)時(shí)與Facebook的團(tuán)隊(duì)交流時(shí)發(fā)現(xiàn),他們做了很多事情,也犯了一些錯(cuò)誤,他們沒(méi)有想到的是,F(xiàn)acebook此前遇到的問(wèn)題,小米也都遇到過(guò),而且我們也解決了問(wèn)題。所不同的是,小米將相關(guān)patch貢獻(xiàn)了出去,也得到了開(kāi)源社區(qū)的認(rèn)可,項(xiàng)目得以不斷發(fā)展;Facebook的團(tuán)隊(duì)沒(méi)有貢獻(xiàn)出去,項(xiàng)目最終反而以失敗告終。
開(kāi)源軟件雖好,但并不能解決企業(yè)所有需求,這一點(diǎn),小米也深有體會(huì)。性能跟不上、功能跟不上是小米使用開(kāi)源軟件遇到的問(wèn)題,于是小米開(kāi)始自研項(xiàng)目。在自研過(guò)程中,小米也經(jīng)歷了最初的蛻變。
我們自研項(xiàng)目時(shí),自研一版不行,被我打回去,第二版還不夠好,又被打回去,直到最后這個(gè)項(xiàng)目能夠基本滿足我的需求,才開(kāi)始應(yīng)用。這一項(xiàng)目就是2015年5月我們對(duì)外開(kāi)源的Open-Falcon。
Open-Falcon是一個(gè)企業(yè)級(jí)、高可用、可擴(kuò)展的監(jiān)控系統(tǒng),該項(xiàng)目的社區(qū)運(yùn)營(yíng)數(shù)據(jù)顯示,目前,已有200+公司、5000+個(gè)人開(kāi)發(fā)者參與到該項(xiàng)目中。
在此之后,小米又投入大量人力、資源到PEGASUS項(xiàng)目中,即強(qiáng)一直分布式Key-Value系統(tǒng),以及移動(dòng)端深度學(xué)習(xí)框架MACE,并相繼對(duì)外開(kāi)源。
MACE是小米在2017年8月正式立項(xiàng)的移動(dòng)端神經(jīng)網(wǎng)絡(luò)推理引擎,今年2月已經(jīng)落地手機(jī)AI相機(jī),并于今年6月正式對(duì)外開(kāi)源。
MACE支持包括TensorFlow、Caffe等多種訓(xùn)練架構(gòu)。小米人工智能與云平臺(tái)AI平臺(tái)高級(jí)軟件工程師李寅在大會(huì)上表示,“為了適配更多訓(xùn)練框架,小米開(kāi)始致力于兼容開(kāi)放標(biāo)準(zhǔn)協(xié)議模型,這個(gè)開(kāi)放標(biāo)準(zhǔn)協(xié)議是對(duì)所有訓(xùn)練框架平臺(tái)的整合,我們希望所有訓(xùn)練框架都可以統(tǒng)一轉(zhuǎn)到這個(gè)開(kāi)放模型協(xié)議上,從而極大地減輕開(kāi)發(fā)者的工作。經(jīng)過(guò)這一層轉(zhuǎn)換,所有移動(dòng)端的部署和預(yù)測(cè)直接利用這份統(tǒng)一開(kāi)放的模型協(xié)議就可以統(tǒng)一適配,而不用再去適配不同的開(kāi)源框架。我們現(xiàn)在已經(jīng)支持ONNX?!?/p>
MACE框架包括四層。最底層是設(shè)備芯片層,現(xiàn)在MACE支持三種異構(gòu)芯片,包括ARM的CPU、GPU,以及高通的Hexajon DSP;其次,小米在芯片之上打造了高效的Kernels,以及針對(duì)高通DSP的HexagonNN引擎;然后,又封裝了一層解釋層,這層解釋層可以翻譯整個(gè)模型本身,將模型翻譯成一個(gè)高效、可執(zhí)行的序列,每個(gè)執(zhí)行的算子下放到這些Kernels進(jìn)行預(yù)測(cè);小米希望通過(guò)MACE模型轉(zhuǎn)換,將這些模型設(shè)計(jì)地更輕巧、運(yùn)算效率更高、適配更好的底層Kernels或者芯片。
據(jù)雷鋒網(wǎng)了解,MACE最重要的工作就是在不同的芯片和設(shè)備上進(jìn)行Kernels的優(yōu)化,包括GPU性能優(yōu)化與自動(dòng)調(diào)優(yōu)、NEON指令級(jí)優(yōu)化、內(nèi)存占用優(yōu)化、模型初始化時(shí)間優(yōu)化,以及模型保護(hù)、模型保密、基準(zhǔn)測(cè)試等。
談到小米做開(kāi)源的經(jīng)驗(yàn),崔寶秋將其歸結(jié)為以下幾點(diǎn):
長(zhǎng)期規(guī)劃,厚積薄發(fā)。對(duì)于一個(gè)公司來(lái)講,一些決策必須由高層來(lái)做,需要長(zhǎng)期規(guī)劃,長(zhǎng)期投入的決心也是非常重要的;
社區(qū)的融合。某個(gè)開(kāi)發(fā)者或某個(gè)公司很難對(duì)社區(qū)、對(duì)開(kāi)源軟件有影響力,小米推出Committer的一個(gè)原因就是希望有一定影響力,即不僅要站在巨人的肩膀上,還要為巨人指路;
什么叫為巨人指方向?開(kāi)源是一個(gè)巨人,每一個(gè)開(kāi)源項(xiàng)目都是一個(gè)巨人,社區(qū)在推著往前走,誰(shuí)擁有這個(gè)開(kāi)源項(xiàng)目?沒(méi)有人,真正健康的一個(gè)開(kāi)源項(xiàng)目是社區(qū)的融合,誰(shuí)來(lái)決定它的走向?它的未來(lái)?是社區(qū)來(lái)決定的,即PMC。國(guó)內(nèi)公司經(jīng)常犯的一個(gè)錯(cuò)誤是自己玩得很嗨,但是沒(méi)有放回去,與整個(gè)社區(qū)的融合很差,因而導(dǎo)致項(xiàng)目不被接受,最終不管好的、或是壞的,全部被社區(qū)拋棄。
平衡開(kāi)源與業(yè)務(wù)上的投入。大量的開(kāi)源投入對(duì)于一個(gè)公司而言是很難的,小米的策略是:業(yè)務(wù)第一,開(kāi)源第二,以業(yè)務(wù)為驅(qū)動(dòng),保障開(kāi)源上的投入;
積極有效回報(bào)開(kāi)源社區(qū)。關(guān)于這一方面,小米總結(jié)了四點(diǎn):積極交流、參與討論,清晰描述想法和算法,堅(jiān)持自己的觀點(diǎn),為自己提交的代碼負(fù)責(zé);
健康的開(kāi)源模式。自己本地分支要與社區(qū)分支結(jié)合來(lái)做,避免公司為了自己的需求及短期效益而封閉開(kāi)發(fā),與整個(gè)社區(qū)漸行漸遠(yuǎn);
AI時(shí)代繼續(xù)擁抱開(kāi)源。云計(jì)算、大數(shù)據(jù)時(shí)代離不開(kāi)開(kāi)源,從市場(chǎng)上也可見(jiàn),目前,幾乎所有的AI巨頭都在做開(kāi)源。
最后,談到開(kāi)源,崔寶秋表示,“不僅是代碼開(kāi)源、深度學(xué)習(xí)框架開(kāi)源,我們還要提倡數(shù)據(jù)開(kāi)源。今天大數(shù)據(jù)在人工智能中扮演著非常重要的角色,大數(shù)據(jù)包括知識(shí)圖譜、數(shù)據(jù)服務(wù)、數(shù)據(jù)模型,這些是我想倡導(dǎo)大家開(kāi)源的,也是小米在做的事情?!?/p>
相關(guān)文章:
【小米AIoT開(kāi)發(fā)者大會(huì)】雷軍宣布小愛(ài)同學(xué)激活破億,和宜家開(kāi)啟戰(zhàn)略合作
小米AIoT開(kāi)發(fā)者大會(huì)28日召開(kāi),雷軍的AIoT和小米的這一年
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。