返回開發人員最新消息

Meta 開放原始碼:2022 年度回顧

2023年1月17日發佈者:Philip Bell

在過去的一年裡,世界各地有許多人重新建立了人際關係和社群。本主題延續 Meta 的開放原始碼工作,協作者、用戶和組織齊聚一堂,共同擴展開放原始碼的影響。

Meta 公開的計畫從推動新一代 AI,到打造創新、使用者易上手的網路應用程式和體驗,解決了開發人員的各種需求和挑戰,而開放原始碼社群則提供了技術分享並協力發展的管道。

本文探討的重點包括 Meta 開放原始碼,以及 Meta 在 2022 年如何協助建立開放原始碼社群。文章中也涵蓋了 Meta 及其工程師分享之工具和程式碼的更新資訊,包括 PyTorch 的重要發展、React 18 的發佈、Sapling 的原始碼控制用戶端等等。

探索重點:

轉移至基金會:擴大開放性、協作性和觸及範圍

不同的觀點和貢獻強化了開放原始碼,而 Meta 積極尋求與現有基金會合作能夠實現共同目標的機會。Meta 有一些計畫在去年轉移至基金會,以將其提供的開放原始碼資源進一步大眾化,並擴大治理範圍。

9 月,藉由成立新的 PyTorch 基金會,AI 的 PyTorch 架構加入了 Linux 基金會。這個業界領導者雲集的監察委員會旨在隨著時間擴大規模,並擔任擴展工作以及該技術業務和產品行銷的籌劃者。

圖片顯示,截至 2022 年,Meta 有 1,034 個進行中的未歸檔開放原始碼計畫。

去年,Jest 開始轉移至 OpenJS 基金會。此開放原始碼計畫是使用最廣泛的 JavaScript 測試架構之一。該基金會的目標包括讓新使用者更容易存取此計畫並開發新功能。

Meta 致力為其捐贈給基金會的開放原始碼計畫進一步推動創新。2022年,Meta 深化與 Presto 基金會的合作,升級為該基金會最高級會員。Meta 也贊助了該基金會的第一次現場會議 PrestoCon DayPrestoCon

透過開放原始碼的擴展提升影響力

2022 年 10 月,Meta 開放原始碼團隊成員聚集在 All Things Open 大會上合影留念。

說明文字:去年 10 月在 All Things Open 上的 Meta 開發人員倡導者和 Meta 開放原始碼團隊的其他成員。

Meta 開發人員倡導者和工程師一整年都在尋找具有影響力的擴展機會,他們向整個社群的專家和組織學習,同時也分享 Meta 發起之開放原始碼計畫的知識。

探索由 Meta 開發人員倡導者建立的內容:

Meta 的開發人員倡導者和開放原始碼團隊成員參加 All Things Open 十週年紀念活動,介紹了 Meta 開放原始碼。在活動開始前,工程總監 Killian Murphy 針對 Meta 如何努力為開放原始碼協作者突破障礙,並致力讓所有人都能使用開放原始碼,分享了他的想法。Meta 致力設定高標準,讓希望使用及參與貢獻的所有人,都能存取 Meta 已開放原始碼的技術。

圖片上寫道:「在開放原始碼社群前所未有的強盛時代,Meta 對於開放原始碼變得更具包容性,因而也變得更強大的潛力,抱持著樂觀的態度。」工程總監 Killian Murphy

Meta 開放原始碼團隊也在 All Things Open 擺設攤位,以擴大 Meta 計畫的知名度,並與將這些技術用於研究和產業的開發人員交流。開發人員倡導者和工程師也在活動中發表演說。

探索開發人員倡導者團隊在 All Things Open 2022 的演說內容:

Meta Linux Kernel 團隊的部落格文章特別強調了他們正在進行的研究和開發項目。這些文章包括如何加入 Linux 社群。群體更廣的 Meta Kernel 團隊有 11 名成員在 2022 Linux Plumbers Conference 上發表演說。您可以在活動網站上找到完整的演說清單。該團隊還推出 Meet the Developers 系列,其中有數位在該會議上發表演說的 Meta 工程師,涵蓋的主題包括 Meta 的 BPF 網路掛勾和使用者體驗總覽大規模核心即時修補等等。

圖片顯示 Meta 在 2022 年發佈了 252 個新的開放原始碼計畫和儲存庫。

Meta Linux 核心團隊支援核心的方向,改進其於 Meta 上的用法,並提升更廣大社群的健康度。該團隊與上游 Linux 核心社群密切合作,並確保計畫設計為以包含上游和登陸上游核心為優先。

在 Meta 開放原始碼部落格上,Hasher-Matcher-Actioner 協作者故事特別介紹 MLH Fellowship 獲選者Franklin PhanSamyak Mehta 的工作,而 Meta 也繼續與 GitHub 和 Major League Hacking 合作支援該協會。

「Meta 協作者故事」系列分享開放原始碼協作的成功和挑戰案例,以及參與社群的最佳作法。請探索 2022 年的部落格文章:

在 VR/AR 的開放原始碼社群中擴大動能

元宇宙期望成為人們能夠以創新方式聚在一起並相互交流的園地。為了創造讓所有人都能成功的元宇宙,它需要建立在強大的社群基礎上,並融合各種不同的想法。

開放原始碼社群在其固有的「共同建造」心態下,自然成為幫助引導重要對話來塑造元宇宙的起點,也是 Meta 開發人員倡導者在對話中分享的起點。Navyata Bawa 在 6 月的全球科技女性網路會議上繼續推出「Fostering Inclusivity in VR」(培養 VR 包容性)系列,她探討了隨著 VR/AR 工作的持續發展,如何組建具有可存取性和包容性的 VR 應用程式。

在 Stack Overflow Podcast 的「Here’s what it’s like to develop VR at Meta」(這就是在 Meta 開發 VR 的感覺)單集中,開發人員倡導者經理 Cami Williams 分享了 Reality Labs 如何向 React 社群學習並搭建橋樑,以及開始開發 VR 時所需的一些工具和資源。

圖片上寫道:「從內在建構多元性。不僅在使用者和遊戲測試者中,也要建構在開發人員之間。唯有這樣,我們才能從這些多元化的生活體驗中學習,進而設計出能夠準確代表並符合廣大受眾需求的應用程式。」Reality Labs 開發人員倡導者 Navyata Bawa

Meta 致力擴大社群發展,並提供在 VR 生態系統中創作的工具,因此在 GitHub 上發佈了 Quest 展示範例。為了推廣這些工具,Bawa 針對 Oculus Platform SDKUnity SharedSpaces 範例建立了「打造您的多人遊戲 VR 體驗」系列,並針對 Interaction SDKFirst Hand 範例建立了「Building Intuitive Interactions for VR」(建立 VR 直覺式互動)教學導覽。

開放原始碼之夏:虛擬實境的發展再向前邁進」部落格文章介紹 Meta 在虛擬空間提供的一些最新創新功能,並特別介紹 The Diff 第 14 集中專訪軟體工程師 Eric Le Sa​​ux 的內容。若要觀看更多有關虛擬空間的最新 Meta 開發人員對談、教學導覽和資源,請查看 AR & VR 播放清單

AI/ML 的進展

對於 PyTorch 以及 Meta AI 為加強研究人員到創作者等所有人能力而設計的新模型而言,2022 是重要的一年。以下是 Meta 增進 AI 模型訓練、最佳化和部署的一些作法。

PyTorch 更新資訊

在轉移到 PyTorch 基金會(隸屬於 Linux 基金會)之後,PyTorch 2.0 在 12 月於紐奧良舉行的 PyTorch 大會上宣告推出。在大會上分享的數字顯示 PyTorch 及其社群在 2022 年的增長:63% 的 AI 研究實作選擇使用 PyTorch,而根據 GitHub 資料顯示,使用 PyTorch 的 GitHub 儲存庫數量比前一年增加了 45%。

PyTorch 2.0 彙集多年的研究成果以提升其編譯器效能,同時保留使用者已經瞭解並喜愛的 PyTorch 體驗。更新內容包括使用 torch.compile 的單行加速、100% 向下相容,以及全 Python 編譯器。

探索 Meta 開發人員倡導者和協作者的更多 2022 年 PyTorch 內容:

Meta AI 模型達到新的里程碑

模型訓練和最佳化架構有助於建立 AI 模型,使其能夠以輔助人類技能的方式承接現實世界的任務。這種互惠性在語言翻譯中得到了證明,AI 模型能夠學習數百種語言,即使是只有少數人使用的語言。2022 年,Meta AI 推出「不遺落任何語言」的 AI 模型,該模型可翻譯 200 種不同的語言,並提供最先進的結果,以及評估資料集和各語言的開放原始碼。這些開放原始碼成果可以幫助改良模型,以翻譯關鍵性的文件,並保存資源匱乏的語言。

圖片顯示 2022 年對 Meta 公開儲存庫進行了 186,210 次提交。內部有 159,723 次,外部有 26,487 次。

Meta 開放原始碼的 CICERO 是第一個在複雜的自然語言戰略遊戲 Diplomacy 中達到人類等級表現的 AI 代理程式*。語言模型與規劃和強化學習演算法的整合,使 CICERO 能夠針對玩家的動機進行推論並制定戰略,然後使用語言達成協議,以實現共同目標、組成聯盟並協調計畫。AI 和開放原始碼還有許多其他重要時刻是這裡沒有介紹的,您可以在 Meta AI 部落格上找到更多與 AI 相關的故事。

探索 Meta AI 在 2022 年的其他進展:

* Diplomacy 的所有權利歸 Hasbro, Inc. 所有。

React 18 和網頁版/行動版的其他更新

除了 Jest 開始轉移到 OpenJS 基金會的新聞外,Jest 29 也已經在 8 月發佈。下半年間,該計畫在 GitHub 上的星星數已突破 40,000 顆。網頁版和行動版的另一個關鍵時刻是,在公開的 React 18 工作團隊支援下,React 18 正式推出。這包括並行處理轉譯的更新,以及其他功能和支援的 API。請查看該版本中有關 React Docs Beta 的更新內容,包括 Effects 說明文件快速入門

9 月,Meta 的 React Technologies 團隊與核心協作者和資料庫維護者一起參加了 React Native 核心協作者高峰會。高峰會上的討論探討了 React Native 和 Metro 的目前和未來的生態系統,而與會者也制定了積極的倡議來改善 React Native 生態系統。

圖片顯示 2022 年 Meta 開放原始碼計畫總共有 7,353 個協作者。內部協作者有 3,727 個,外部協作者 3,626 個。

在 Meta 針對網頁版和行動版開放原始碼的其他計畫中,Js-flipper 是一個 NPM 套件,可向 JavaScript 應用程式公開 Flipper 用戶端,並可讓開發人員輕鬆建立新的 Flipper 外掛程式或重複使用現有的外掛程式。另一個計畫 MemLab 則提供 JavaScript 記憶體測試,可自動偵測記憶體漏洞。

最後,Meta 開發人員分享了他們如何使用及針對開放原始碼網頁版和行動版技術進行組建的見解。一篇部落格文章調查了 Hermes 故障報告,以及該報告如何引導應變團隊編寫入侵程式,1993 年版本的 DoomHermes 內部執行。還有一篇部落格文章特別介紹了以 Chromium 為基礎的新網頁檢視,這個網頁檢視可為 Android 版 Facebook 應用程式內部瀏覽器的使用者提供更好的體驗。

探索「認識開發人員:行動版」系列:

開發人員工具:原始碼控制、說明文件工具和其他進展

Meta 的開發人員使用公司組建的開放原始碼工具來支援其基礎架構。Meta 的日常工作中就經常在測試和改良這些工具,因而造就了能夠滿足規模和速度等獨特挑戰的開放原始碼計畫。

2022 年,Sapling 團隊推出了新的 Git 相容原始碼控制用戶端。Sapling 是以可用性和規模為考量的原始碼控制系統,旨在分享 Meta 開發人員十多年來不斷精進的成果,以激勵此領域進一步的發展,並向開發人員展示原始碼控制系統未來的潛力。8 月發佈了 Docusaurus 2.0,這是一個高效能的靜態站台產生器,其擴大對 React 的使用和對網站的支援,而不僅限於說明文件。

圖片上寫道:「2022 年,Meta 開放原始碼在 GitHub 上又再獲得 133,854 顆星,使 Stargazers 總數達到 1,563,562。」

這些計畫的其他更新還包括適用於 Android 的新死鎖偵測器在 Cinder 中新增延遲匯入,以及新一代 OpenStreetMap 編輯器 RapiD 2.0 的預覽。另一個計畫 Hermit 導入了實用的決定型作業系統,可讓開發人員解決 Flaky 測試之類的問題,以及控制執行緒排程、隨機數產生等隱含性輸入。

其中一篇內容更廣泛的文章,分享了 Meta 開發人員工具如何在開發人員工作流程中協同運作,其中許多工具都是開放原始碼,包括 Buck 建置系統、SuperConsole、EdenFS(與 Sapling 緊密整合的檔案系統)、Jest 測試架構等計畫和其他工具。

探索 2022 年涵蓋開發人員工具的其他文章和版本

資料:Velox、Presto 和 RocksDB 的更新

開放原始碼 C++ 資料庫 Velox 於 2022 年 8 月宣布推出。Velox 是資料引擎在節能和效能提升方面的進化。該資料庫使用原生執行,並與 Meta 的許多工具整合成統一的執行引擎層。

Velox 旨在大量減少程式碼維護工作,並在各種案例中使效能提高 2 倍到 10 倍。請參閱在 VLDB 2022 發表的論文報告「Velox:Meta 的統一執行引擎」,瞭解 Velox 不斷壯大的社群,及其對於巨量資料引擎和資料庫如何執行資料查詢的創新重構。

單單去年一年,GitHub 上的 Presto 開放原始碼計畫就發佈了 21 個版本,獲得將近 2,000 顆新的星星,並且有 600 個新的分支和 152 個新的協作者。Presto 基金會在加州山景城的電腦歷史博物館舉辦了第一次現場活動 PrestoCon,Tim Meehan 以 TSC 主席身分發表主題演講,而 Philip Bell 則宣布了 Presto 來年的發展動向。

12 月,RocksDB 團隊在門洛公園的 Meta 總部恢復舉辦年度現場聚會,Meta 工程師和外部協作者聚在一起討論該計畫的使用案例、創新和願景。

安全和硬體

安全和硬體在支援開發人員的工作方面,扮演著重要的角色。從偵錯工具到網路硬體,Meta 的開放原始碼都有助於確保系統和程式碼穩健、安全且可靠。

年初有一篇協作者故事分享了有關 Pysa 的工作,Pysa 是 Pyre-check 計畫下的 Python 靜態分析工具。這個故事主要說明,建立健康的開放原始碼社群如何直接影響 Pysa 等計畫的成功,進而提高程式碼的安全性。

在硬體方面,精確時間協定部署在 Meta 的所有網路和資料中心。該技術將分散式系統的時鐘同步準確度和精確度提升到新的等級。為配合開放運算計畫,設計用於支援該協定的硬體和軟體都已開放原始碼,以支援產業採用

2022 年,Meta 繼續在 WhatsApp 和 Messenger 等產品中進行開放原始碼工作。在 3 月開放原始碼的程式碼驗證是一種瀏覽器擴充套件,可讓開發人員以視覺化方式查看網頁上的程式碼是否遭到竄改或變更,以保護 WhatsApp 網頁版和 Messenger 中程式碼的完整性。

感謝開放原始碼社群

這篇文章僅涵蓋了 1,000 多個 Meta 開放原始碼計畫中的一小部分及其在 2022 年的更新。若要探索更多這些開放原始碼計畫,請造訪 Meta 開放原始碼網站,並在 FacebookInstagramTwitterLinkedIn 上追蹤我們。特別感謝與 Meta 合作進行開放原始碼計畫的協作者、用戶、組織和合作夥伴社群。

在 Meta,我們相信開放原始碼能夠加速世界創新的步伐。希望藉由分享我們的原始碼、堆疊,甚至硬體設計,能夠促進產業發展,同時讓其他公司和個人有機會使用我們的解決方案,以加速擴展規模並打造優異的產品。

本文由 Meta 開發人員倡導者 Dmitry Vinnik、Suraj Subramanian 和 Cami Williams 合作撰寫。