軟件不開(kāi)放源碼就落伍了!
Facebook以及多家風(fēng)險投資(VC)機構的高層都表示,開(kāi)放源碼軟體已經(jīng)成為一種預設值,有眾多新創(chuàng )公司都將之視為立業(yè)基礎。
本文引用地址:http://dyxdggzs.com/article/201609/296476.htm在近日于美國矽谷舉行的年度@Scale大會(huì )上,Facebook以及多家風(fēng)險投資(VC)機構的高層都表示,開(kāi)放源碼軟體已經(jīng)成為一種預設值,有眾多新創(chuàng )公司都將之視為立業(yè)基礎;這場(chǎng)大會(huì )旨在鼓勵軟體開(kāi)發(fā)者擁抱開(kāi)放源碼并對該社群有所貢獻。
與會(huì )的Facebook說(shuō)到做到,表示該公司準備公布從防震360度視訊、增強版的資料壓縮,到機器學(xué)習等涵蓋各種應用的程式碼。“有那么多東西以開(kāi)放的形式發(fā)生,讓我們能以更快地速度一起合作解決問(wèn)題;”Facebook的工程與基礎建設部門(mén)主管Jay Parikh在@Scale大會(huì )的專(zhuān)題演說(shuō)中指出,估計全球有150萬(wàn)工程師參與開(kāi)放源碼開(kāi)發(fā)專(zhuān)案。

風(fēng)險投資業(yè)者Accel Partners──為線(xiàn)上音樂(lè )服務(wù)Spotify,以及線(xiàn)上團隊溝通平臺Slack的幕后股東──合夥人Ping Li則表示,Facebook的開(kāi)放策略包括軟體程式碼以及硬體,而相同的模式正獲得許多新創(chuàng )公司采用;開(kāi)放源碼軟體:“已經(jīng)成為既定標準,甚至在美國政府內部也是由開(kāi)放源碼軟體起步,只添加一些缺漏的東西。”
企業(yè)打造以開(kāi)放源碼為基礎的產(chǎn)品,其中有很多添加了專(zhuān)屬軟體使其達到企業(yè)應用水準(enterprise ready);Li表示,未來(lái)幾年最大規模的科技業(yè)公開(kāi)發(fā)行案例會(huì )有一些屬于這類(lèi)案例,而估計有超過(guò)75%的企業(yè)用戶(hù)會(huì )采用開(kāi)放源碼軟體。
他進(jìn)一步指出:“開(kāi)放源碼是一種有許多不同風(fēng)格的開(kāi)發(fā)與授權模式,不過(guò)開(kāi)放采用軟體(open adoption software)是一種范圍更廣的商業(yè)模式,改變程式碼如何被開(kāi)發(fā)、使用以及貨幣化的方式;像是客制化客戶(hù)關(guān)系管理(CRM)軟體供應商Salesforce就率先以新方式提供軟體,這是相同的一件事情。”
Li表示,以往軟體公司會(huì )先把新功能的想法編寫(xiě)到一個(gè)程式集或是云端服務(wù)中,現在的軟體新創(chuàng )公司則是會(huì )把現有的開(kāi)放源碼軟體堆疊透過(guò)合作方式拼湊在一起,之后再把功能添加上去:“當你把程式碼開(kāi)放,就能解決你可能想像不到的很多問(wèn)題,因此我鼓勵各位想得更遠,并持續貢獻開(kāi)放源碼。”
Facebook的機器學(xué)習開(kāi)放源碼軟體
Facebook在@Scale大會(huì )上介紹了資料壓縮、機器學(xué)習以及防震360度視訊的開(kāi)放源碼;該公司軟體工程師Andrew Tulloch,介紹了Facebook如何利用廣泛的神經(jīng)網(wǎng)路型態(tài)陣列,來(lái)觀(guān)察文字、圖片、視訊以及社交關(guān)系的模式。
其他Facebook的工程師則介紹了該公司自家打造的工具,可讓非專(zhuān)業(yè)人員更容易訓練并測試深度學(xué)習模型;這些FBLearner工具提供了只需要點(diǎn)擊操作的瀏覽器形式介面,把連結資料到模型的程序自動(dòng)化,并能與伺服器叢集平行運作、評估其性能,因此開(kāi)發(fā)者能快速選擇要將哪種模型運用在量產(chǎn)服務(wù)中。
參與開(kāi)發(fā)FBLearner工具的Facebook工程師Pierre Andrews表示:“我們想要讓每個(gè)人都能輕易地開(kāi)始機器學(xué)習訓練流水線(xiàn),并將一個(gè)模型推向量產(chǎn),不必撰寫(xiě)程式碼或是維護昂貴的伺服器…我們將機器學(xué)習程序大眾化,使用者不需要擁有機器學(xué)習領(lǐng)域的博士學(xué)位。”
Facebook有超過(guò)1,000位工程師(約占該公司工程師總人數的四分之一)目前每個(gè)月都會(huì )使用FBLearner工具,來(lái)衡量要把哪些資訊放進(jìn)新聞?wù)?,或是如何將用?hù)與廣告配對;該套工具已經(jīng)協(xié)助訓練出超過(guò)60萬(wàn)種模型,每種模型使涌了23億筆資料。
不過(guò)Facebook的工程師代表們,并沒(méi)有提出任何要將FBLearner的工作轉向開(kāi)放源碼的計畫(huà);有其他講者則介紹了三項實(shí)習生的推理引擎(inference engine)應用機器學(xué)習專(zhuān)案成果,這些專(zhuān)案Facebook將會(huì )公布開(kāi)放源碼。
其一是為x86處理器打造的卷積神經(jīng)網(wǎng)路NNPack,其原始碼已經(jīng)公布;另一項是采用平行緩沖記憶體(parallel buffer)來(lái)降低執行神經(jīng)網(wǎng)路所需的記憶體容量。第三項專(zhuān)案則號稱(chēng)是一位能力超強、來(lái)自史丹佛(Stanford)大學(xué)的實(shí)習生,在今年暑假制作出的壓縮推理模型(compress inference model)。
Facebook研究科學(xué)家Yangqing Jia 介紹,該種壓縮推理模型刪減了一個(gè)模型中的權衡次數,然后利用量子化(quantization)來(lái)減少每次權衡的位元數,再用Huffman編碼來(lái)壓縮最后的模型、最高可縮小49倍,并同時(shí)略為增加其精確度。

Facebook暑期實(shí)習生打造的壓縮推理引擎將釋出開(kāi)放源碼
360視訊防震演算法、資料中心復原工具
Facebook的研究科學(xué)家Johannes Kopf介紹了針對360度視訊應用的一套防震演算法,代碼在每個(gè)圖框(frame)上的執行時(shí)間為22微秒(millisecond),比360度視訊33微秒的播放時(shí)間還要快,因此不會(huì )在上傳時(shí)出現延遲;該演算法號稱(chēng)還能將最后的視訊位元率需求降低20%。
不過(guò)該軟體需要PC等級的處理器來(lái)執行拍攝后的視訊,因此較不適合使用在過(guò)去幾個(gè)月上市的、價(jià)格相對較低的消費性360度攝影機。無(wú)論如何,該程式可望有助于產(chǎn)生對于這類(lèi)視訊的興趣,能支援例如Facebook的Oculus Rift虛擬實(shí)境(VR)裝置應用。
此外Facebook還介紹了一種開(kāi)放源碼無(wú)失真壓縮演算法Zstandard,與現有的zlib工具相較,能將資料壓縮處理時(shí)間減少二至三倍;而以相同的壓縮速度,Zstandard提供的檔案大小則比zlib所產(chǎn)生的檔案小10~15%。Facebook已經(jīng)準備將Zstandard 應用于一些儲存與通訊系統,包括資料庫、備份工具以及通訊協(xié)議;該軟體特別適合較小封包尺寸的傳輸。
Facebook的Parikh并呼吁對可靠度的更進(jìn)一步專(zhuān)注;他表示,該公司的風(fēng)暴計畫(huà)(Project Storm)在兩年前桑迪颶風(fēng)(Hurricane Sandy)肆虐美國時(shí)開(kāi)始運作,研究如何在足以摧毀一整個(gè)資料中心的災難中仍讓人們能保持連線(xiàn);他表示:“在多次演習中,我們拔掉插頭看看會(huì )發(fā)生什么事;一開(kāi)始幾次不那么順利,幸好人們沒(méi)注意到,而我們也學(xué)到了很多。”
Facebook正在開(kāi)發(fā)當功耗達數十MW電力的大型資料中心斷電時(shí),可支援負載平衡與流量管理的工具;其SWAT小組已經(jīng)定義了手動(dòng)與自動(dòng)化的程序,Parikh強調這類(lèi)工具需要能完美規劃,而且處理異常情況的速度要像是一級方程式賽車(chē)的維修站那么快。最近幾次演習的結果已經(jīng)更具可預測性、更穩定,不過(guò)他并未回應這種資料中心復原工具何時(shí)會(huì )成為開(kāi)放源碼。
評論