在近日於美國矽谷舉行的年度@Scale大會上,Facebook以及多家風險投資(VC)機構的高層都表示,開放源碼軟體已經成為一種預設值,有眾多新創公司都將之視為立業基礎;這場大會旨在鼓勵軟體開發者擁抱開放源碼並對該社群有所貢獻。

與會的Facebook說到做到,表示該公司準備公佈從防震360度視訊、增強版的資料壓縮,到機器學習等涵蓋各種應用的程式碼。「有那麼多東西以開放的形式發生,讓我們能以更快速度一起合作解決問題;」Facebook的工程與基礎建設部門主管Jay Parikh在@Scale大會的專題演說中指出,估計全球有150萬工程師參與開放源碼開發專案。

20160902 FB NT01P1

風險投資業者Accel Partners──為線上音樂服務Spotify,以及線上團隊溝通平台Slack的幕後股東──合夥人Ping Li則表示,Facebook的開放策略包括軟體程式碼以及硬體,而相同的模式正獲得許多新創公司採用;開放源碼軟體:「已經成為既定標準,甚至在美國政府內部也是由開放源碼軟體起步,只添加一些缺漏的東西。」

企業打造以開放源碼為基礎的產品,其中有很多添加了專屬軟體使其達到企業應用水準(enterprise ready);Li表示,未來幾年最大規模的科技業公開發行案例會有一些屬於這類案例,而估計有超過75%的企業用戶會採用開放源碼軟體。

他進一步指出:「開放源碼是一種有許多不同風格的開發與授權模式,不過開放採用軟體(open adoption software)是一種範圍更廣的商業模式,改變程式碼如何被開發、使用以及貨幣化的方式;像是客製化客戶關係管理(CRM)軟體供應商Salesforce就率先以新方式提供軟體,這是相同的一件事情。」

Li表示,以往軟體公司會先把新功能的想法編寫到一個程式集或是雲端服務中,現在的軟體新創公司則是會把現有的開放源碼軟體堆疊透過合作方式拼湊在一起,之後再把功能添加上去:「當你把程式碼開放,就能解決你可能想像不到的很多問題,因此我鼓勵各位想得更遠,並持續貢獻開放源碼。」

Facebook的機器學習開放源碼軟體

Facebook在@Scale大會上介紹了資料壓縮、機器學習以及防震360度視訊的開放源碼;該公司軟體工程師Andrew Tulloch,介紹了Facebook如何利用廣泛的神經網路型態陣列,來觀察文字、圖片、視訊以及社交關係的模式。

其他Facebook的工程師則介紹了該公司自家打造的工具,可讓非專業人員更容易訓練並測試深度學習模型;這些FBLearner工具提供了只需要點擊操作的瀏覽器形式介面,把連結資料到模型的程序自動化,並能與伺服器叢集平行運作、評估其性能,因此開發者能快速選擇要將哪種模型運用在量產服務中。

參與開發FBLearner工具的Facebook工程師Pierre Andrews表示:「我們想要讓每個人都能輕易地開始機器學習訓練流水線,並將一個模型推向量產,不必撰寫程式碼或是維護昂貴的伺服器…我們將機器學習程序大眾化,使用者不需要擁有機器學習領域的博士學位。」

Facebook有超過1,000位工程師(約佔該公司工程師總人數的四分之一)目前每個月都會使用FBLearner工具,來衡量要把哪些資訊放進新聞摘要,或是如何將用戶與廣告配對;該套工具已經協助訓練出超過60萬種模型,每種模型使湧了23億筆資料。

不過Facebook的工程師代表們,並沒有提出任何要將FBLearner的工作轉向開放源碼的計畫;有其他講者則介紹了三項實習生的推理引擎(inference engine)應用機器學習專案成果,這些專案Facebook將會公佈開放源碼。

其一是為x86處理器打造的卷積神經網路NNPack,其原始碼已經公佈;另一項是採用平行緩衝記憶體(parallel buffer)來降低執行神經網路所需的記憶體容量。第三項專案則號稱是一位能力超強、來自史丹佛(Stanford)大學的實習生,在今年暑假製作出的壓縮推理模型(compress inference model)。

Facebook研究科學家Yangqing Jia 介紹,該種壓縮推理模型刪減了一個模型中的權衡次數,然後利用量子化(quantization)來減少每次權衡的位元數,再用Huffman編碼來壓縮最後的模型、最高可縮小49倍,並同時略為增加其精確度。

20160902 FB NT01P2

Facebook暑期實習生打造的壓縮推理引擎將釋出開放源碼
(來源:EE Times)

360視訊防震演算法、資料中心復原工具

Facebook的研究科學家Johannes Kopf介紹了針對360度視訊應用的一套防震演算法,代碼在每個圖框(frame)上的執行時間為22微秒(millisecond),比360度視訊33微秒的播放時間還要快,因此不會在上傳時出現延遲;該演算法號稱還能將最後的視訊位元率需求降低20%。

不過該軟體需要PC等級的處理器來執行拍攝後的視訊,因此較不適合使用在過去幾個月上市的、價格相對較低的消費性360度攝影機。無論如何,該程式可望有助於產生對於這類視訊的興趣,能支援例如Facebook的Oculus Rift虛擬實境(VR)裝置應用。

此外Facebook還介紹了一種開放源碼無失真壓縮演算法Zstandard,與現有的zlib工具相較,能將資料壓縮處理時間減少二至三倍;而以相同的壓縮速度,Zstandard提供的檔案大小則比zlib所產生的檔案小10~15%。Facebook已經準備將Zstandard 應用於一些儲存與通訊系統,包括資料庫、備份工具以及通訊協議;該軟體特別適合較小封包尺寸的傳輸。

Facebook的Parikh並呼籲對可靠度的更進一步專注;他表示,該公司的風暴計畫(Project Storm)在兩年前桑迪颶風(Hurricane Sandy)肆虐美國時開始運作,研究如何在足以摧毀一整個資料中心的災難中仍讓人們能保持連線;他表示:「在多次演習中,我們拔掉插頭看看會發生什麼事;一開始幾次不那麼順利,幸好人們沒注意到,而我們也學到了很多。」

Facebook正在開發當功耗達數十MW電力的大型資料中心斷電時,可支援負載平衡與流量管理的工具;其SWAT小組已經定義了手動與自動化的程序,Parikh強調這類工具需要能完美規劃,而且處理異常情況的速度要像是一級方程式賽車的維修站那麼快。最近幾次演習的結果已經更具可預測性、更穩定,不過他並未回應這種資料中心復原工具何時會成為開放源碼。

編譯:Judith Cheng

(參考原文: Facebook Feeds Open Software,by Rick Merritt)