中文字幕 日本 在线 高清,精品久久久久久久久久久国产字幕,漂亮人妻洗澡被公强日日躁,西西4444wwww大胆视频

TensorFlow技術(shù)主管詳解:谷歌怎樣管理開源軟件(谷歌的tensorflow)

TensorFlow技術(shù)主管詳解:谷歌怎樣管理開源軟件(谷歌的tensorflow)

TensorFlow技術(shù)主管詳解:谷歌怎樣管理開源軟件(谷歌的tensorflow)

唐旭 編譯自 O’reilly

量子位 出品 | 公眾號(hào) QbitAI

TensorFlow開源一年半以來(lái),在GitHub上已經(jīng)有了820位貢獻(xiàn)者,close了5192條issue,還有1033條開放著。

TensorFlow技術(shù)主管詳解:谷歌怎樣管理開源軟件(谷歌的tensorflow)

同時(shí),如果所有TensorFlow團(tuán)隊(duì)成員都在GitHub上,而且屬于這個(gè)組織的話,它在Google內(nèi)部還有著一支75人的團(tuán)隊(duì)。

一支人數(shù)不算少的全職團(tuán)隊(duì),是如何和數(shù)量眾多的開源貢獻(xiàn)者共同改進(jìn)TensorFlow的呢?團(tuán)隊(duì)的技術(shù)主管Pete Warden帶著深深的怨念,在O’reilly網(wǎng)站上發(fā)表文章,講述了他們是如何維護(hù)TensorFlow開源社區(qū)的。

以下內(nèi)容編譯自Warden的文章:

開源可不只是把代碼往GitHub上一扔,然后等著別人去用它就完事了。道理我都懂,可直到在谷歌成為TensorFlow團(tuán)隊(duì)的一員,我才真正開了眼:要圍繞一個(gè)軟件打造出一個(gè)社區(qū),要考慮的因素實(shí)在是太多太多了。

社區(qū)服務(wù)

當(dāng)一個(gè)新的項(xiàng)目剛剛誕生時(shí),在這個(gè)項(xiàng)目上能被稱作專家的,就只有那些把它寫出來(lái)的人。他們是僅有的能夠撰寫文檔和解答問(wèn)題的人,同時(shí),在對(duì)軟件的改進(jìn)方面,他們也是最佳人選。

但結(jié)果,我們這類TensorFlow團(tuán)隊(duì)中的核心成員反倒成為了項(xiàng)目成長(zhǎng)的瓶頸。原因其實(shí)很簡(jiǎn)單:我們沒(méi)法一次性把所有的事情都干完。是,我們確實(shí)知道該怎么騰出時(shí)間去寫代碼和文檔,因?yàn)檫@本來(lái)就是我們?cè)诠雀枞粘9ぷ鞯囊徊糠?;但要給一個(gè)超大社區(qū)里的眾多開發(fā)者解答問(wèn)題,我們就有點(diǎn)懵比了——盡管我們知道,這對(duì)于項(xiàng)目的成功十分重要。

為了確保用戶們能夠得到他們需要的答案,核心工程團(tuán)隊(duì)的全體成員開始輪班。每個(gè)人可以從以下幾個(gè)活里自己挑:處理Stack Overflow上帶有#tensorflow標(biāo)簽的問(wèn)題、檢查一遍GitHub上的pull request、給GitHub上的issue分類、同步外部和內(nèi)部代碼,或是找到那些失敗測(cè)試的原因。

如何分配這些工作由大伙自己決定。一般來(lái)講,如果每個(gè)工程師每次在一個(gè)特定領(lǐng)域負(fù)責(zé)一周的話, 我們勉強(qiáng)能讓這個(gè)輪班機(jī)制循環(huán)起來(lái)。這個(gè)機(jī)制實(shí)行之后,工程師們?cè)谒麄冎蛋喈?dāng)周的本職工作產(chǎn)出會(huì)大大降低——不過(guò)至少,每個(gè)人的工作被打斷的頻率降到了幾個(gè)月一次。

Pull request

我們將TensorFlow開源來(lái)讓社區(qū)能夠?qū)ζ湄暙I(xiàn)力量。到目前為止,已經(jīng)有超過(guò)400人從外部為我們貢獻(xiàn)了代碼,這其中既包括簡(jiǎn)單的文檔修復(fù),也包括像OS X的GPU支持、OpenCL的執(zhí)行、InfiniBand架構(gòu)下RDMA這樣的大輸血。首先,每次貢獻(xiàn)都會(huì)先從輪值核心工程師那里審一遍,以確定其是否真的管用;如果方案通過(guò)了最初的審核,我們會(huì)對(duì)它進(jìn)行一組Jenkins測(cè)試來(lái)確保它不會(huì)引發(fā)任何故障;如果以上兩道程序都被通過(guò)了,輪值工程師會(huì)將方案交給另一位更加擅長(zhǎng)相關(guān)領(lǐng)域的核心工程師再次進(jìn)行審核。

在這一過(guò)程中,GitHub全新的精細(xì)代碼審核工具能夠?yàn)槲覀兲峁O大的幫助。而在它出現(xiàn)之前,要把所有人的評(píng)價(jià)都處理一遍是個(gè)十分痛苦的事情。當(dāng)一名核心工程師與一位或更多的外部貢獻(xiàn)者協(xié)作時(shí),經(jīng)常會(huì)有更大的pull request會(huì)被放入正在進(jìn)行的工作中。直到每個(gè)人都滿意之后,PR就會(huì)被合并到GitHub上的樹頂,并在下一次同步運(yùn)行時(shí)被合并進(jìn)我們的內(nèi)部代碼庫(kù)。

代碼許可協(xié)議

作為自動(dòng)化pull request程序的一部分,我們會(huì)將貢獻(xiàn)者的GitHub賬號(hào)與我們?cè)诠雀栝_發(fā)者網(wǎng)站上的代碼許可協(xié)議(CLA)記錄相匹配,以確保每個(gè)外部貢獻(xiàn)者都拿到了CLA。我們的目標(biāo)是是確保整個(gè)代碼庫(kù)都在阿帕奇2.0協(xié)議下準(zhǔn)確無(wú)誤地得到了分配。當(dāng)pull request的輪值工程師要對(duì)出現(xiàn)的全部問(wèn)題進(jìn)行歸類的時(shí)候,如果一個(gè)pull request的內(nèi)部關(guān)聯(lián)了多個(gè)郵箱,或是貢獻(xiàn)者需要以團(tuán)體名義登錄,情況就會(huì)變得十分麻煩。

GitHub issue

GitHub用戶們已經(jīng)提交了5000多個(gè)關(guān)于TensorFlow的issue。對(duì)于有些人來(lái)說(shuō),這可能有點(diǎn)讓人沮喪;但對(duì)我來(lái)說(shuō),issue卻是個(gè)最棒的單位——因?yàn)樗C明,人們是真的在使用這個(gè)軟件。

為了確保我們回應(yīng)了每個(gè)存檔的issue,輪值工程師會(huì)時(shí)刻查看新出現(xiàn)的信息并試著用標(biāo)簽對(duì)其進(jìn)行分類。如果那是個(gè)我們?cè)诙唐趦?nèi)無(wú)法在內(nèi)部搞定的問(wèn)題,它就會(huì)被標(biāo)記成“歡迎貢獻(xiàn)”;對(duì)于一些待處理的bug,我們會(huì)給他們按輕重緩急排個(gè)次序。這些天來(lái),隨著一些外部用戶自己變成了某些問(wèn)題的專家,越來(lái)越多的問(wèn)題沒(méi)有借助我們的力量就被解決掉了,特別是在像Windows這類我們不會(huì)每天都用的平臺(tái)上。

如果一個(gè)issue沒(méi)能在社區(qū)中找到回答或修復(fù),而它的優(yōu)先級(jí)又足夠高時(shí),值班的人就會(huì)把它分配給團(tuán)隊(duì)里一個(gè)了解此類問(wèn)題的工程師。整個(gè)TensorFlow團(tuán)隊(duì)的成員都有自己的GitHub賬號(hào),因此我們可以用正常的GitHub issue追蹤器來(lái)實(shí)現(xiàn)任務(wù)的分配。我們確實(shí)考慮過(guò)把GitHub上提交的bug復(fù)制到我們的內(nèi)部系統(tǒng)中,但要為相同信息同步兩份副本,代價(jià)太高了。最后,我們讓工程師們除了留意內(nèi)部系統(tǒng)的追蹤器之外,也要打開郵件通知,以便能夠及時(shí)看到自己被分配了哪些GitHub上的問(wèn)題。

Stack Overflow

Derek Murray是Stack Overflow值班小組的帶頭大哥,我覺(jué)得他回答問(wèn)題的技能真是碉堡了。根據(jù)他的資料頁(yè),這個(gè)人發(fā)過(guò)的帖子已經(jīng)觸及到了130萬(wàn)人;為了讓我們能夠及時(shí)追蹤網(wǎng)站上那些帶有#TensorFlow標(biāo)簽的問(wèn)題,他還設(shè)法創(chuàng)建了一個(gè)RSS驅(qū)動(dòng)的自動(dòng)化電子表格。起初我們采取每周輪班制,但發(fā)現(xiàn)要處理問(wèn)題的量對(duì)于一個(gè)人來(lái)講實(shí)在是太大了;后來(lái)我們采用了自動(dòng)分配系統(tǒng),情況變得好多了。

我本人就在這個(gè)輪班小組里,因此每天早上我瀏覽完自己的郵件后,我都會(huì)查看電子表格來(lái)弄清楚自己被分配到了哪些問(wèn)題。很遺憾,我們沒(méi)法自己回答全部的問(wèn)題,但每一個(gè)新進(jìn)來(lái)的問(wèn)題我們都會(huì)看。如果問(wèn)題相對(duì)簡(jiǎn)單的話,我們就自己把它答了。

當(dāng)然,值班的工程師得頂?shù)奖粏?wèn)題轟炸的前線去,但有些時(shí)候,回答某些問(wèn)題需要更多的時(shí)間和專業(yè)知識(shí)。如果某個(gè)問(wèn)題看上去能被答出來(lái),但社區(qū)里卻沒(méi)看見(jiàn)站出來(lái)的英雄,我們就會(huì)研究一下代碼,扒一下團(tuán)隊(duì)里有誰(shuí)可能會(huì)對(duì)這個(gè)問(wèn)題有些想法(通常是用git blame)。然后值班工程師就會(huì)向我們找到的人發(fā)封郵件,看其是否能提供一點(diǎn)幫助。

郵件列表

我們?cè)O(shè)置了一個(gè)郵件列表,但起初卻并不知道該怎么用它。我們很快就看出來(lái),用這種方法來(lái)追蹤issue和回答一般問(wèn)題有多辣雞。

后來(lái),我們把它當(dāng)成討論區(qū)來(lái)用,GitHub和Stackoverflow都不合適的話題,就發(fā)到郵件列表,但是在實(shí)際操作中我們發(fā)現(xiàn),即便是架構(gòu)問(wèn)題,用GitHub issue來(lái)討論也比郵件列表合適。

現(xiàn)在我們用這個(gè)郵件列表來(lái)發(fā)送信息和貼通知,還算是值得訂閱的。

代碼同步

和我聊過(guò)的許多人都對(duì)一件事表示十分吃驚——那就是在谷歌內(nèi)部,我們使用的代碼庫(kù)和我們?cè)贕itHub上所開放的幾乎完全相同。不過(guò),兩者間還是存在一點(diǎn)區(qū)別的,比對(duì)谷歌專用基礎(chǔ)設(shè)施的支持是獨(dú)立的,路徑也和GitHub版不一樣,但同步的過(guò)程是完全機(jī)械的。我們至少每周推出一次內(nèi)部更新,更多時(shí)候是下載GitHub版本。

麻煩的是,我們要進(jìn)行雙向同步。在GitHub的公共項(xiàng)目和我們的內(nèi)部版本上,有很多變動(dòng)是同時(shí)發(fā)生的,而我們需要反反復(fù)復(fù)地把它們?nèi)窟M(jìn)行合并。沒(méi)有現(xiàn)成的基礎(chǔ)架構(gòu)可供利用,因此我們使用了自己創(chuàng)造的一套Python腳本來(lái)處理這些問(wèn)題。這些腳本能夠?qū)itHub上所有的變動(dòng)拉進(jìn)我們的內(nèi)部資源庫(kù)里,轉(zhuǎn)換所有的header path和其他細(xì)微的變化,將它們和最新內(nèi)部版代碼合并,并在內(nèi)部創(chuàng)建一個(gè)副本。隨后就可以進(jìn)行另一個(gè)方向的同步了,我們會(huì)將所有的內(nèi)部代碼轉(zhuǎn)換成外部的格式,并用相同的腳本把這些結(jié)果合并到最新的GitHub版上。

對(duì)于內(nèi)部的修改,我們同樣會(huì)盡力讓每次check-in都呈現(xiàn)為單獨(dú)的git commit,同時(shí)把作者的GitHub賬號(hào)和解釋這些變動(dòng)的評(píng)論包括在內(nèi)。我們?cè)贕itHub上有一個(gè)特別的“TensorFlow園丁”賬號(hào)來(lái)完成上述過(guò)程,一個(gè)內(nèi)部的commit被轉(zhuǎn)移到GitHub上之后,是這樣的:

TensorFlow技術(shù)主管詳解:谷歌怎樣管理開源軟件(谷歌的tensorflow)

要確保即使代碼變了,這個(gè)轉(zhuǎn)換流程依然有效,是很有挑戰(zhàn)性的。為了驗(yàn)證這種有效性,我們要求把內(nèi)部代碼通過(guò)這個(gè)腳本轉(zhuǎn)換成外部版本,再轉(zhuǎn)換回來(lái)之后,和最初的內(nèi)部版一模一樣。在任何接觸到TensorFlow代碼庫(kù)的內(nèi)部更改上,我們都會(huì)運(yùn)行這個(gè)測(cè)試,通不過(guò)測(cè)試的修改會(huì)被拒絕。

對(duì)于那些提交pull request的人,我們常常會(huì)提一些奇怪的變更要求,通常,這樣做的原因是我們必須確保他們的代碼能適用于這個(gè)同步流程。

Jenkins測(cè)試

因?yàn)橐С趾芏嗖煌钠脚_(tái),我們希望有一個(gè)適用范圍很廣的測(cè)試工具。TensorFlow會(huì)在Linux、Windows、OS X、iOS、Android、Android Things、以及樹莓派上運(yùn)行,同時(shí)我們還有為GPU準(zhǔn)備的不同代碼路徑,包括CUDA和OpenCL支持、以及Bazel、cmake,和無(wú)格式makefile的構(gòu)建進(jìn)程。

讓每一位開發(fā)者都在做了變更時(shí)手動(dòng)把上面這些東西全都測(cè)試一遍,是不可能的。因此,我們有一套能在絕大部分支持平臺(tái)上運(yùn)行的自動(dòng)化測(cè)試系統(tǒng),這些系統(tǒng)全都處于Jenkins自動(dòng)化系統(tǒng)的控制之下。始終讓它們發(fā)揮作用也不是件容易事,因?yàn)榭倳?huì)存在操作系統(tǒng)更新、硬件問(wèn)題以及其他一些與TensorFlow相關(guān)的問(wèn)題能讓測(cè)試失敗。我們有一個(gè)工程師團(tuán)隊(duì),專門負(fù)責(zé)讓整個(gè)測(cè)試系統(tǒng)正常運(yùn)行,這個(gè)團(tuán)隊(duì)曾經(jīng)在系統(tǒng)出問(wèn)題的時(shí)候救過(guò)我們很多次。因此在這方面的投入也是值得的。

開發(fā)者關(guān)系

在開源領(lǐng)域,我們?cè)诠雀璨⒉还陋?dú):我們?cè)?jīng)在Kubernetes和“ 開源計(jì)劃辦公室”(Open Source Program Office)這樣的項(xiàng)目上學(xué)到過(guò)很多東西。有一支非常勤奮的開發(fā)者關(guān)系專家團(tuán)隊(duì)協(xié)助我們處理這些事務(wù),他們還承擔(dān)了很多圍繞文檔、代碼示例以及其他一些開發(fā)者經(jīng)驗(yàn)方面問(wèn)題而產(chǎn)生的體力活。我們的長(zhǎng)期目標(biāo)是,將關(guān)鍵的專業(yè)知識(shí)傳遞到核心開發(fā)者之外的范圍,以便更多的人能夠?qū)ι鐓^(qū)有所貢獻(xiàn)。

讓這些核心工程師在部分時(shí)間內(nèi)去承擔(dān)客戶服務(wù)工作的一大好處是,它給了我們關(guān)于用戶所遇到問(wèn)題的直接洞見(jiàn)。參與客戶服務(wù)同樣驅(qū)動(dòng)著我們?nèi)バ迯?fù)那些常見(jiàn)的bug和補(bǔ)充文檔,因?yàn)樗跍p少工作量方面讓我們看見(jiàn)了直接的回報(bào)。

未來(lái),我們希望將這項(xiàng)工作更廣泛地進(jìn)行下去。同時(shí),我們也設(shè)計(jì)了更多的“戰(zhàn)術(shù)指導(dǎo)手冊(cè)”以幫助人們處理常見(jiàn)任務(wù)。能有機(jī)會(huì)同如此多的外部開發(fā)者互動(dòng),我感覺(jué)十分幸運(yùn);我也希望,自己能對(duì)他們產(chǎn)生積極的影響,幫助他們用機(jī)器學(xué)習(xí)創(chuàng)造新的神奇應(yīng)用。

關(guān)于作者

Pete Warden是TensorFlow Mobile團(tuán)隊(duì)技術(shù)主管。在加入Google之前,他曾任Jetpac CTO,該公司提供為手機(jī)和嵌入式設(shè)備而優(yōu)化的深度學(xué)習(xí)技術(shù),2014年被Google收購(gòu)。他還曾在蘋果工作,負(fù)責(zé)圖像處理的GPU優(yōu)化。(完)

招聘

量子位正在招募編輯記者、運(yùn)營(yíng)、產(chǎn)品等崗位,工作地點(diǎn)在北京中關(guān)村。相關(guān)細(xì)節(jié),請(qǐng)?jiān)诠娞?hào)對(duì)話界面,回復(fù):“招聘”。

One More Thing…

今天AI界還有哪些事值得關(guān)注?在量子位(QbitAI)公眾號(hào)會(huì)話界面回復(fù)“今天”,看我們?nèi)W(wǎng)搜羅的AI行業(yè)和研究動(dòng)態(tài)。筆芯~

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。

(0)
上一篇 2024年3月22日 上午10:12
下一篇 2024年3月22日 上午10:28

相關(guān)推薦

  • 科研項(xiàng)目的檢索詞

    科研項(xiàng)目檢索詞: 人工智能 隨著人工智能技術(shù)的不斷發(fā)展,越來(lái)越多的科研項(xiàng)目正在被開展。人工智能是一種涉及計(jì)算機(jī)科學(xué)、數(shù)學(xué)、統(tǒng)計(jì)學(xué)、機(jī)器學(xué)習(xí)等多個(gè)領(lǐng)域的技術(shù),旨在讓計(jì)算機(jī)具備像人類一…

    科研百科 2025年3月15日
    2
  • 酒店管理系統(tǒng)項(xiàng)目實(shí)施

    酒店管理系統(tǒng)項(xiàng)目實(shí)施 隨著旅游業(yè)的不斷發(fā)展,酒店行業(yè)也越來(lái)越需要一套現(xiàn)代化的管理系統(tǒng)來(lái)支持其運(yùn)營(yíng)。酒店管理系統(tǒng)可以幫助酒店管理層更好地管理其業(yè)務(wù),提高服務(wù)質(zhì)量,降低運(yùn)營(yíng)成本,從而增…

    科研百科 2024年12月18日
    24
  • 信息項(xiàng)目系統(tǒng)管理師聽(tīng)書

    信息項(xiàng)目系統(tǒng)管理師聽(tīng)書:從入門到精通 隨著信息技術(shù)的快速發(fā)展,信息項(xiàng)目系統(tǒng)管理師成為了一個(gè)越來(lái)越重要的職業(yè)。作為一個(gè)專業(yè)的信息項(xiàng)目系統(tǒng)管理師,你需要掌握一系列的技能和知識(shí),才能夠在…

    科研百科 2025年1月25日
    3
  • 科研項(xiàng)目招投資商

    科研項(xiàng)目招投資商: 探索未來(lái)科技的新篇章 隨著科技的不斷發(fā)展,科研項(xiàng)目已經(jīng)成為了投資商們關(guān)注的熱點(diǎn)。在這個(gè)競(jìng)爭(zhēng)激烈的時(shí)代,科研項(xiàng)目的發(fā)展不僅能夠?yàn)橥顿Y者帶來(lái)豐厚的回報(bào),還能夠?yàn)樯鐣?huì)…

    科研百科 2025年4月16日
    2
  • 護(hù)理研究有哪些

    護(hù)理研究有哪些 護(hù)理研究是研究護(hù)理實(shí)踐和護(hù)理教育的方法、技能和知識(shí)的學(xué)術(shù)活動(dòng)。隨著醫(yī)學(xué)技術(shù)的發(fā)展和人們對(duì)健康需求的不斷變化,護(hù)理研究也在不斷發(fā)展。本文將介紹目前護(hù)理研究中的一些熱點(diǎn)…

    科研百科 2024年11月22日
    15
  • 上海工程項(xiàng)目管理軟件

    上海工程項(xiàng)目管理軟件 隨著數(shù)字化時(shí)代的到來(lái),工程項(xiàng)目管理也變得越來(lái)越數(shù)字化。上海工程項(xiàng)目管理軟件是一種可以幫助項(xiàng)目經(jīng)理和管理人員高效地管理工程項(xiàng)目的軟件。上海工程項(xiàng)目管理軟件可以幫…

    科研百科 2024年7月27日
    5
  • 科研項(xiàng)目合作研發(fā)方案

    科研項(xiàng)目合作研發(fā)方案 隨著科技的不斷發(fā)展,科研項(xiàng)目合作研發(fā)已成為推進(jìn)科學(xué)研究的重要方式之一。通過(guò)與他人合作,我們可以共享資源、知識(shí)和經(jīng)驗(yàn),提高研發(fā)效率和質(zhì)量,同時(shí)也可以擴(kuò)大研究范圍…

    科研百科 2025年3月24日
    8
  • 以紙代木科研項(xiàng)目

    以紙代木科研項(xiàng)目 近年來(lái),隨著環(huán)保意識(shí)的增強(qiáng),人們對(duì)樹木的砍伐和造紙等問(wèn)題越來(lái)越關(guān)注。因此,一些科學(xué)家開始探索以紙代木的方法,以解決這些環(huán)境問(wèn)題。 以紙代木科研項(xiàng)目是一種嘗試將紙張…

    科研百科 2025年4月1日
    7
  • 綠色公路 科研項(xiàng)目

    綠色公路科研項(xiàng)目 隨著城市化進(jìn)程的加速,道路建設(shè)的需求日益增長(zhǎng)。然而,現(xiàn)有的公路系統(tǒng)卻面臨著諸多問(wèn)題,如環(huán)境污染、交通堵塞等。為了解決這些問(wèn)題,研究人員正在開展一項(xiàng)名為“綠色公路”…

    科研百科 2025年2月20日
    1
  • 專為設(shè)計(jì)師打造的創(chuàng)意項(xiàng)目管理系統(tǒng)推薦:滿足設(shè)計(jì)需求的首選(設(shè)計(jì)項(xiàng)目管理軟件排名)

    使用Zoho Projects的設(shè)計(jì)項(xiàng)目管理系統(tǒng)簡(jiǎn)化您的創(chuàng)意項(xiàng)目并增強(qiáng)您的設(shè)計(jì)團(tuán)隊(duì)的能力。Zoho Projects的設(shè)計(jì)師項(xiàng)目管理軟件可幫助您簡(jiǎn)化流程并統(tǒng)一您的團(tuán)隊(duì)。設(shè)定明確的截…

    科研百科 2024年4月22日
    64