撰稿 | 云昭
出品 | 51CTO技術(shù)棧(微信號:blog51cto)
“hey,你這個(gè)開源項(xiàng)目是不是已經(jīng)死掉了?已經(jīng)被分叉了嗎?”
一、萬星AI開源項(xiàng)目大佬回歸突然就被冒犯了
Max Woolf是一位多款A(yù)I開源工具的作者,目前在舊金山BuzzFeed任職數(shù)據(jù)科學(xué)家,一直致力于基于人工智能的內(nèi)容生成。自2015年以來,Max陸續(xù)發(fā)布了許多過萬星的開源Python包,如textgenrnn、gpt-2-simle、aitextgen和simpleaichat,儼然已經(jīng)成為了一名開源大佬。
Max 表示他開發(fā)這些工具包的主要?jiǎng)訖C(jī)一直都是:一,興趣;二,改善垃圾帖子。在那段時(shí)間里,包括最近一段時(shí)間,大眾對于網(wǎng)站種充斥著AI生成的內(nèi)容的反抗情緒如此強(qiáng)烈,Max開始意識到?jīng)]有人類控制的情況下發(fā)布AI生成內(nèi)容的危險(xiǎn)性,因?yàn)楝F(xiàn)在他如果發(fā)布“Made by AI”的內(nèi)容,多半會收到死亡威脅。
激烈的抵抗AI生成內(nèi)容的大眾情緒,再加上AI行業(yè)發(fā)展速度之快,讓Max決定修整一段時(shí)間為自己充電。
在這段時(shí)間中,Max暫停了開源項(xiàng)目的更新與維護(hù),這本應(yīng)該很好。然而,令Max意想不到的情況讓他氣炸了。
圖片
二、一個(gè)嘲諷的問題,一個(gè)“補(bǔ)刀”評論
問題就出在Max一個(gè)最新開源的項(xiàng)目上。simpleaichat,是Max開發(fā)的一款用于與ChatGPT交互的Python包,目前已經(jīng)取得了3000 Github Stars。由于這個(gè)包的設(shè)計(jì)范圍非常明確且有限,而且依賴性最小,Max就認(rèn)為這個(gè)包可以在不破壞代碼的情況下暫停開發(fā),等他自己將狀態(tài)調(diào)整恢復(fù)過來之后再進(jìn)行維護(hù)。
可等他恢復(fù)了正常的開源節(jié)奏之后,卻收到了這樣一個(gè)關(guān)于simpleaichat的GitHub問題,標(biāo)題簡短且充滿諷刺:“這已經(jīng)被放棄了嗎?”
圖片
另一位GitHub用戶也補(bǔ)了一刀:“恕我直言,我也對答案感興趣?!盡ax看到這個(gè)問題,還以為這個(gè)項(xiàng)目出現(xiàn)了很嚴(yán)重的Bug或依賴性問題,但檢查之后完全沒有。
這還沒完,2天之后,Max又一次被這類問題cue到了——“這個(gè)包還在開發(fā)中嗎?”“是不是已經(jīng)被人分叉出去維護(hù)了?”
圖片
一串問題看下來,Max有些被冒犯到了:“這絕對是在施加壓力,并且非常無禮!”“我從未見到多有人會對開源作者詢問‘開源存儲庫是否已經(jīng)被廢棄’這樣的問題!”
Max覺得這很無理取鬧:是否有一個(gè)潛在的條款來要求開源人必須積極維護(hù)他發(fā)布的任何開源軟件?如果在GitHub上達(dá)到一定的星級或通過GitHub Sponsorships/Patreon申請資金,你就有義務(wù)提供免費(fèi)的支持嗎?
沒有。畢竟,像MIT等大多數(shù)許可的開源代碼許可證都包含類似的一條:“軟件按原樣提供,沒有任何形式的保證”的變體。
三、大佬:非個(gè)例,許多請求都非常離譜
這樣粗魯?shù)那闆r并非個(gè)例。simpleaichat并不是Max第一次遭到這樣抱怨嘲諷的開源項(xiàng)目。
大約十年前,Max在GitHub上發(fā)布了一個(gè)跟蹤對抗性用戶輸入文本字符串的項(xiàng)目—— Big List of Naughty Strings,現(xiàn)在已經(jīng)有45k星,這個(gè)項(xiàng)目本質(zhì)上就是一個(gè)txt文件,根本不存在依賴性問題。而且,如果添加對各種字符串問題不敏感的內(nèi)容到列表中,可能會使列表變得更加混亂,所以我很猶豫是否接受每個(gè)拉取請求。但盡管如此,依舊會有人感到不爽。
圖片
可能到現(xiàn)在也有人認(rèn)為,GitHub 零問題或零拉取請求(PR)是理所應(yīng)當(dāng)?shù)?,但這過于理想化,工作生活的現(xiàn)實(shí)就是,我們的收件箱永遠(yuǎn)做不到清空狀態(tài)。
每個(gè)平凡的開源項(xiàng)目都會有一個(gè)問題/PR隊(duì)列,這需要一個(gè)分類優(yōu)先級:并非所有問題和PR都是同等重要的,篩選隊(duì)列需要時(shí)間和精力。
作為一名維護(hù)人員,Max越來越意識到這一點(diǎn),因?yàn)榻邮苷`導(dǎo)性的PR,反而會帶來更多的技術(shù)債務(wù),需要付出更多的努力來解決。
四、分叉:本來挺美好,結(jié)果成了威脅
Max舉了一個(gè)發(fā)生在自己身上的例子。用戶遇到一個(gè)很酷的GitHub項(xiàng)目,很長一段時(shí)間沒有更新了,難免沮喪。這種事也經(jīng)常發(fā)生在Max身上。
如果代碼仍然有效,那就太棒了,我很高興。但如果不好用,那就下一個(gè),或者把它當(dāng)作一個(gè)有趣的新機(jī)會來自己研究。這就是開源的美妙之處!
如果有一個(gè)非活動(dòng)的開源項(xiàng)目對你自己的商業(yè)項(xiàng)目至關(guān)重要,那么就更好了,因?yàn)檫@是一個(gè)很好的財(cái)務(wù)理由,通過為項(xiàng)目添加適當(dāng)?shù)墓δ芫涂梢缘玫揭环葑稍兒贤蛘擢?jiǎng)金。
開源的一大好處是,如果一個(gè)擁有許可證的開源項(xiàng)目確實(shí)處于非活動(dòng)狀態(tài),那么它就可以無縫分叉。有時(shí)分叉可以變得比原來的項(xiàng)目更好,這對每個(gè)人來說都很棒!
但根據(jù)Max的經(jīng)驗(yàn),它反而被用作威脅。維護(hù)人員一旦懈怠,就會有人拿分叉當(dāng)做威脅的理由,甚至分裂開發(fā)社區(qū)。
五、大佬:那就讓開源項(xiàng)目涼吧!不值得
AI行業(yè)實(shí)在太獨(dú)特了,發(fā)展速度非常驚人,變化也完全超出了人們的預(yù)期。Max看來,最近的ChatGPT受益者,如LangChain、LlamaIndex和AutoGPT,產(chǎn)生了一種錯(cuò)誤的感覺,即開源的人工智能項(xiàng)目必須像火箭一樣一直持續(xù)沖刺發(fā)光發(fā)熱,但問題就在于開源維護(hù)者是人,不是機(jī)器,并且現(xiàn)在的維護(hù)者也有自己的全職工作,當(dāng)然現(xiàn)在也有不少是由大量風(fēng)險(xiǎn)投資所支持的公司在管理。
持續(xù)為開源項(xiàng)目提供支持的這種壓力,Max認(rèn)為已經(jīng)無形中成為了開源工作的最大障礙。Max目前已經(jīng)停止了發(fā)布有趣的一次性項(xiàng)目和人工智能模型,因?yàn)樗麑?shí)在沒有足夠的“帶寬”(精力)去處理這些偷懶的問題,比如“嗨,這里出問題了,請修復(fù),謝謝!”不管是不是會產(chǎn)生依賴性中斷的問題。
Max表示:“如果能掙到同等的薪水,我很樂意辭去數(shù)據(jù)科學(xué)家的專業(yè)工作,全職從事開源項(xiàng)目?!彼J(rèn)為,現(xiàn)在唯一能讓開源項(xiàng)目它發(fā)揮作用的方法,就是像所有人工智能初創(chuàng)公司一樣籌集風(fēng)險(xiǎn)投資。
六、開源項(xiàng)目拖延實(shí)屬正常
許多人可能認(rèn)為一個(gè)良好的開源維護(hù)者應(yīng)該做到積極及時(shí)地響應(yīng)和解決各種issue,要不斷地、有節(jié)奏地發(fā)布版本,要有十分完善的說明文檔,還要在各種交流社區(qū)回復(fù)問題等等。
但事實(shí)并非如此,開源維護(hù)者也許只有幾個(gè)人甚至只有一個(gè)人在作戰(zhàn)。他們并不是全職做開源項(xiàng)目,精力和能力有限。就如同某位Alluxio社區(qū)的開源維護(hù)者提到的:“對于不少其實(shí)還是挺合理的用戶需求和反饋,甚至一些好很好的PR,我都拖延了很久很久,這里給大家先道個(gè)歉?!?/p>
更何況在本文案例中,使用者提出的“這個(gè)開源項(xiàng)目是不是涼了”的問題,簡直犯了大忌。
源:知乎
七、理性提問題,請別做杠精
另外提醒一點(diǎn),使用開源項(xiàng)目提問題需要理性,而不是無腦抬杠。最近就曝出了一條新聞,說一名開發(fā)者在 Vant 的 GitHub 倉庫提交了一個(gè) issue,跟有贊的開源維護(hù)者杠上了。
圖片
這位開發(fā)者最后有些吵架的情緒:“我的問題是,那你說它到底合理不合理呢?中文理解就這么困難嗎?”(PS:讓維護(hù)者給出2選1的答案:合理或者不合理。)
圖片
八、寫在最后:給開源該有的敬意
沒錯(cuò)開源精神鼓勵(lì)自由和分享,但并不意味著使用者可以用命令甚至威脅的口吻去冒犯。不管是精神領(lǐng)袖斯托曼還是Linus,他們倡導(dǎo)的都不是這樣一種維護(hù)者不被尊重的文化。當(dāng)然,這也再一次暴露出了目前開源項(xiàng)目維護(hù)管理的問題所在:用愛發(fā)電被當(dāng)成理所當(dāng)然。
最后,千萬不要再當(dāng)面詢問維護(hù)者“開源項(xiàng)目是否已經(jīng)涼了”這種問題了,非常愚蠢。輕則惹惱維護(hù)人員并延遲開發(fā)。重則會刺激到維護(hù)人員,讓他們重新考慮繼續(xù)從事開源項(xiàng)目是否值得,真的讓項(xiàng)目涼透。