PyTorch 治理

2025-07-02 18:32 更新

在開源社區(qū)中,項目的治理結(jié)構(gòu)對于其健康和持續(xù)發(fā)展起著至關(guān)重要的作用。PyTorch 作為人工智能領(lǐng)域極具影響力的開源深度學習框架,其治理模式也有著獨特的魅力。今天,編程獅將帶你深入了解 PyTorch 的治理哲學、關(guān)鍵人物以及決策機制,讓你對這個強大的框架有更全面的認識。

一、PyTorch 治理哲學與文化

PyTorch 采用了一種以維護者為核心、重視代碼貢獻的治理結(jié)構(gòu),其核心運營宗旨主要體現(xiàn)在以下兩個方面:

  1. 代碼貢獻至上 :在 PyTorch 開源社區(qū)中,代碼貢獻的重要性遠遠超過公司贊助。無論是來自大型企業(yè)的程序員,還是獨立開發(fā)人員,只要為項目做出有價值的代碼貢獻,都會受到高度重視。這意味著你的技術(shù)實力和代碼質(zhì)量才是決定你在社區(qū)地位的關(guān)鍵因素。
  2. 影響力源于貢獻 :項目的影響力是通過各種形式的貢獻獲得的,這不僅包括代碼貢獻,還涵蓋了提出高質(zhì)量的問題、撰寫有幫助的論壇答案、審查他人的代碼等等。只要你積極為社區(qū)貢獻力量,就能逐漸提升自己在項目中的影響力,甚至有機會參與到核心決策中來。

二、PyTorch 的關(guān)鍵人物及其職責

(一)項目維護者:PyTorch 的掌舵人

項目維護者是 PyTorch 的核心領(lǐng)導(dǎo)力量,他們肩負著為項目指引方向、把握大局的重任。具體而言,他們的職責包括:

  • 勾勒長期愿景 :維護者們需要為 PyTorch 項目規(guī)劃出具有凝聚力的長期發(fā)展愿景,確保項目始終朝著有價值、有意義的方向前進。這個愿景就像是航海中的燈塔,為所有的開發(fā)者和貢獻者指明前行的方向。
  • 深刻理解代碼庫 :他們對 PyTorch 的代碼庫有著極為深入的理解,能夠在復(fù)雜的代碼海洋中迅速定位關(guān)鍵問題,并找到有效的解決方案。
  • 解決爭議問題 :當社區(qū)中出現(xiàn)有爭議的技術(shù)決策或發(fā)展方向時,維護者們要扮演調(diào)解者的角色,通過與各方溝通協(xié)商,以一種大家都能接受的方式達成共識,推動項目順利發(fā)展。

PyTorch 的項目維護者包括 Adam Paszke(apaszke)、Soumith Chintala(soumith)、Edward Yang(ezyang)、Greg Chanan(gchanan)、Dmytro Dzhulgakov(dzhulgakov)以及 Sam Gross(科爾斯伯里)等杰出人物。

(二)核心開發(fā)人員:PyTorch 的中堅力量

核心開發(fā)人員是 PyTorch 項目的骨干,他們直接參與到項目的開發(fā)和維護工作中,擁有對代碼庫的深入理解和實際操作能力。成為核心開發(fā)人員的途徑是多樣的,包括但不限于以下幾種方式:

  • 提交代碼更改 :積極為 PyTorch 項目提交有價值的代碼變更,修復(fù)漏洞、優(yōu)化性能或新增功能等。
  • 審查拉取請求 :幫助其他貢獻者審查提交的拉取請求,提供專業(yè)的意見和改進建議,確保代碼質(zhì)量。
  • 分類錯誤報告 :在問題跟蹤器上對各種錯誤報告進行分類整理,幫助團隊更高效地定位和解決問題。
  • 參與社區(qū)討論 :在官方的交流渠道上積極參與話題討論,分享自己的見解和經(jīng)驗,為項目的改進和發(fā)展出謀劃策。

這些核心開發(fā)人員分布在 GitHub 上 “PyTorch” 組織中的 “PyTorch 核心” 團隊中,他們共同努力推動著 PyTorch 的技術(shù)進步。

(三)主持人:社區(qū)氛圍的守護者

還有一群特殊的人員,他們負責維護社區(qū)的健康氛圍和良好秩序。這些人(其中有些并不是核心開發(fā)人員)會密切關(guān)注官方交流渠道上的討論,確保大家的發(fā)言符合《行為準則》。對于違反準則的行為,他們會果斷采取行動,營造一個積極、友好、富有建設(shè)性的社區(qū)環(huán)境。

三、PyTorch 的決策機制

(一)無爭議變更的高效流程

對于一些沒有爭議的變更,PyTorch 的決策流程相對簡單高效。主要工作是通過錯誤跟蹤程序中的問題以及 GitHub 上的拉取請求來推進的。核心開發(fā)人員在一般情況下不會直接將自己的更改推送到 PyTorch 的主存儲庫,而是通過提交拉取請求的方式進行代碼合并。當拉取請求獲得其他核心開發(fā)人員或項目維護者的批準后,就可以直接合并到代碼庫中,無需經(jīng)過復(fù)雜的額外流程。

不過,值得注意的是,通知相關(guān)領(lǐng)域的專家了解錯誤跟蹤器上的問題或拉取請求是非常重要的。強烈推薦邀請這些領(lǐng)域的專家參與審核,特別是在拉取請求的批準階段。否則,可能會出現(xiàn)相關(guān)專家事后撤銷已合并更改的情況。

(二)有爭議決策的審慎流程

當涉及到有爭議的重大變更時,PyTorch 會啟動更為審慎的決策流程。以下幾類變更通常需要開啟 GitHub 問題進行充分討論:

  1. 框架的語義或語法發(fā)生任何變更。
  2. 向后不兼容的 Python 或 Cpp API 變更。
  3. 核心框架的補充,例如在現(xiàn)有庫中引入實質(zhì)性新功能。
  4. 刪除核心功能。

在這種情況下,項目維護者擁有最終決定權(quán),他們會仔細權(quán)衡各方意見,綜合考慮技術(shù)可行性、項目發(fā)展方向以及社區(qū)利益等因素,做出對項目最有利的決策。

四、常見問題解答

(一)如何擁有項目的一部分?

如果你想擁有(或部分擁有)項目的一部分,例如某個特定的域 API(如 Torch Vision),這是完全有可能的。首先,你需要從為現(xiàn)有項目領(lǐng)域做出貢獻開始,積極推動它的健康和持續(xù)發(fā)展。在此基礎(chǔ)上,你還可以通過 GitHub 問題提出新的功能建議或改進方案,為項目的拓展和完善貢獻力量。

(二)公司能否通過購買董事會席位驅(qū)動項目方向?

不行,PyTorch 項目嚴格遵循由維護者驅(qū)動的理念來決定項目的發(fā)展方向。項目并沒有設(shè)立董事會,也不會提供任何可以通過財務(wù)貢獻來獲取技術(shù)方向影響力的相關(guān)工具。

(三)PyTorch 是否支持獨立開發(fā)人員?

目前,PyTorch 項目尚未推出專門的贈款或支持方法來直接支持使用該項目或?qū)椖孔龀鲐暙I的獨立開發(fā)人員。不過,社區(qū)正在積極探索新的途徑,努力尋找更好的方式來支持 PyTorch 周邊的獨立開發(fā)者社區(qū)。如果你有任何建議或想法,歡迎在 PyTorch 論壇上展開討論,與社區(qū)成員共同商討解決方案。

(四)如何為項目貢獻代碼?

對于較小的代碼變更,你可以直接在 GitHub 上創(chuàng)建拉取請求,提交你的代碼供項目提交者進行審核和合并。而對于較大的變更,建議你先在 GitHub 上創(chuàng)建問題,詳細闡述你的想法和建議,以便與社區(qū)成員進行充分的討論和溝通。

(五)如何成為項目的提交者?

目前,由于 PyTorch 的提交過程與 Facebook 的基礎(chǔ)設(shè)施存在一定的關(guān)聯(lián),只有 Facebook 的員工才能觸發(fā)提交操作。不過,社區(qū)正在積極尋找解決方案,努力將提交者基礎(chǔ)擴展到 Facebook 之外的個人開發(fā)者。一旦有允許這樣操作的工具或機制出現(xiàn),項目會及時向社區(qū)發(fā)布相關(guān)更新。

(六)是否需要成為 “官方” 提交者才能舉辦 PyTorch 教程?

不需要,PyTorch 社區(qū)鼓勵每一位社區(qū)成員積極展示自己的作品和成果。無論你是否是項目的 “官方” 提交者,只要你對 PyTorch 有深入的理解和豐富的實踐經(jīng)驗,都可以在會議上或其他場合舉辦 PyTorch 教程,與其他開發(fā)者分享你的知識和經(jīng)驗。

五、總結(jié)

通過本教程,你對 PyTorch 的治理結(jié)構(gòu)、核心人物以及決策機制有了全面的了解。這種獨特的治理模式是 PyTorch 能夠在深度學習領(lǐng)域取得巨大成功的重要保障之一。它不僅充分發(fā)揮了核心團隊的專業(yè)優(yōu)勢,還廣泛吸納了社區(qū)的智慧和力量,讓 PyTorch 在不斷發(fā)展壯大的同時,始終保持技術(shù)的先進性和創(chuàng)新性。

希望這篇教程能夠幫助你更好地融入 PyTorch 開源社區(qū),無論是作為學習者汲取知識,還是作為貢獻者回饋社區(qū),都能讓你在深度學習的道路上收獲滿滿。如果你在學習或?qū)嵺`中遇到任何問題,歡迎隨時訪問 W3Cschool 社區(qū)尋求幫助,或者登錄編程獅網(wǎng)站獲取更多優(yōu)質(zhì)的學習資源和技術(shù)支持。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號