當(dāng)下,AI的崛起已成大勢(shì)。但是,當(dāng)AI的觸角伸向開(kāi)源操作系統(tǒng)時(shí),一些社區(qū)陸續(xù)亮起了“紅燈”。
先是Linux發(fā)行版Gentoo 在四月中旬發(fā)布了一項(xiàng)理事會(huì)政策,禁止使用AI工具生成的代碼;隨后,類UNIX操作系統(tǒng)NetBSD也于五月通過(guò)更新其提交指南,添加了類似規(guī)定。
短短一個(gè)月間,Gentoo和NetBSD的明確表態(tài)引發(fā)了廣泛的討論:在AI的輔助下,我們真的能寫出更好的代碼嗎?這些禁令的發(fā)布僅僅是出于對(duì)代碼質(zhì)量的擔(dān)憂嗎?禁令之下,真的能令行禁止嗎?細(xì)究起來(lái),似乎并不那么簡(jiǎn)單。
1.代碼質(zhì)量是最不重要的一個(gè)原因
Gentoo 的政策指出了促使該決定的三個(gè)要點(diǎn):代碼質(zhì)量、版權(quán)問(wèn)題和倫理問(wèn)題。
其中,代碼質(zhì)量是最容易理解的。盡管AI在代碼生成方面取得了一定進(jìn)展,但由于上下文理解受限、依賴訓(xùn)練數(shù)據(jù)、缺乏創(chuàng)造性、可維護(hù)性有待提高等因素,其生成的代碼質(zhì)量在很多情況下并不盡如人意。
首先,沒(méi)有哪個(gè)項(xiàng)目愿意接受糟糕的代碼。其次,人們也不希望從那些識(shí)別不出爛代碼,或者自己寫不出好代碼,甚至不能改進(jìn) AI 生成代碼的程序員那里得到幫助。因此可以說(shuō),代碼質(zhì)量肯定是禁令發(fā)布的考量因素之一,但也是其中最淺顯、最不重要的原因。
相較之下,版權(quán)問(wèn)題和倫理問(wèn)題則更為復(fù)雜,它們也是 NetBSD 項(xiàng)目作出決定的基礎(chǔ)。要理解這些標(biāo)準(zhǔn)的重要性,就必須了解所謂的“AI助手”到底是如何工作的。
所謂大語(yǔ)言模型(LLM)工具,是基于海量文本數(shù)據(jù)構(gòu)建統(tǒng)計(jì)模型,以生成文本。它們借助包含萬(wàn)億字節(jié)信息的龐大語(yǔ)料庫(kù),運(yùn)用Transformer算法自動(dòng)學(xué)習(xí)詞語(yǔ)間的關(guān)聯(lián)、序列及結(jié)構(gòu)。通過(guò)這種學(xué)習(xí),不僅能預(yù)測(cè)單個(gè)詞匯,還能生成完整句子和段落,即“生成式”文本,源于對(duì)輸入文本模式的學(xué)習(xí)。
事實(shí)上,只要你能負(fù)擔(dān)得起足夠算力,并且有足夠的存儲(chǔ)和帶寬來(lái)處理數(shù)據(jù),就能使模型產(chǎn)出極為逼真的內(nèi)容。簡(jiǎn)言之,LLM通過(guò)學(xué)習(xí)海量文本模式,憑借強(qiáng)大的計(jì)算能力,實(shí)現(xiàn)了從預(yù)測(cè)單詞到生成連貫文本的飛躍。如果在模型訓(xùn)練所依據(jù)的語(yǔ)料庫(kù)中有與輸入查詢緊密匹配的文本,LLM就能夠生成優(yōu)質(zhì)、連貫的答案。
2.生成式人工智能,還不那么智能
不過(guò),能做到這一點(diǎn)的前提是,擁有足夠豐富的語(yǔ)料。因此,作為輸入的“語(yǔ)料庫(kù)”包含了創(chuàng)建模型的團(tuán)隊(duì)能夠免費(fèi)或低成本獲取的所有文本。比如社交網(wǎng)絡(luò)和在線論壇的內(nèi)容,比如源代碼庫(kù)。
網(wǎng)上有大量的復(fù)雜軟件教程,這些內(nèi)容已被納入到LLM機(jī)器人的索引中。這確實(shí)是這些工具的一個(gè)極佳應(yīng)用場(chǎng)景:針對(duì)Git等復(fù)雜程序提供定制化的教程和使用指南。
但這并不意味著機(jī)器人本身理解Git。實(shí)際上,它并不理解:它只是能生成符合眾多Git教程文本模式的內(nèi)容。LLM機(jī)器人能做到的是——當(dāng)輸入的內(nèi)容中包含與你想要的答案相似的文本,它們可以非常逼真地模仿思考和解決問(wèn)題的過(guò)程。
任何被標(biāo)榜為“人工智能”的工具實(shí)際上并不具備智能——因?yàn)檎嬲闹悄墁F(xiàn)在被稱為通用人工智能(AGI),而目前尚無(wú)人能夠?qū)崿F(xiàn)這一目標(biāo)。
任何現(xiàn)代通用操作系統(tǒng)的代碼庫(kù)對(duì)于單人來(lái)說(shuō),其體積都太過(guò)龐大,無(wú)法整體閱讀、理解和修改。以Debian項(xiàng)目為例,Debian 12 中有超過(guò) 1,341,564,204 行代碼。
大語(yǔ)言模型本質(zhì)上比這大了好幾個(gè)數(shù)量級(jí),并且它們不是人類可讀的代碼。它們是由大量機(jī)器計(jì)算出來(lái)的,這些模型無(wú)法被檢查、驗(yàn)證或微調(diào)。正是基于這一原理,所以不可能調(diào)整它們以避免輸出不符合事實(shí)的文本。
3.所有權(quán)的爭(zhēng)議
想象一下,你正在一個(gè)基于Electron的在線編輯器里寫代碼。當(dāng)你在敲代碼時(shí),這個(gè)聰明的工具可以把你的碼字實(shí)時(shí)送到一個(gè)AI助手那里……這就像是超級(jí)加強(qiáng)版的自動(dòng)完成功能:它能在你打字的瞬間,把你敲的代碼和它語(yǔ)料庫(kù)中數(shù)百萬(wàn)個(gè)模式進(jìn)行匹配,然后立即給出一段幾乎為你量身定制,能直接用的代碼建議。
問(wèn)題來(lái)了,要是你寫的代碼碰巧和AI學(xué)過(guò)的某個(gè)例子很像,它就可能給你吐出個(gè)匹配項(xiàng)。按理說(shuō),它給的建議不該和學(xué)的樣本一模一樣,但有時(shí)候區(qū)別就僅僅是變量名不同而已,其他部分像極了復(fù)制粘貼。
對(duì)于開(kāi)源軟件項(xiàng)目來(lái)說(shuō),這意味著如果訓(xùn)練數(shù)據(jù)中包含了諸如許多操作系統(tǒng)共有的C語(yǔ)言功能代碼,那么由LLM驅(qū)動(dòng)的編程助手生成的代碼將與它們語(yǔ)料庫(kù)中的代碼極為相似。如果代碼相似到足以讓一個(gè)熟練的程序員識(shí)別出來(lái),就存在違反許可的風(fēng)險(xiǎn)。機(jī)器人從其他項(xiàng)目中獲取的代碼可能會(huì)被無(wú)意中整合到其他項(xiàng)目中,即使沒(méi)有任何人故意復(fù)制任何內(nèi)容。
這就是Gentoo所指出的版權(quán)和倫理?yè)?dān)憂的核心所在。如果LLM助手提供的代碼可以追溯到其他項(xiàng)目,這將使Linux發(fā)行版面臨所有權(quán)問(wèn)題。如果意外復(fù)制的代碼中包含漏洞,誰(shuí)應(yīng)該負(fù)責(zé)?是貢獻(xiàn)代碼的程序員——即便他們自己并沒(méi)有編寫這段代碼?還是原創(chuàng)作者,他們從未貢獻(xiàn)過(guò)這段代碼,甚至不知道有機(jī)器人在復(fù)述它?
對(duì)于NetBSD而言,由于許可問(wèn)題,所有這些問(wèn)題都適用,甚至更為嚴(yán)重。雖然在線代碼倉(cāng)庫(kù)被Linux開(kāi)發(fā)者大量使用,意味著其中充滿了GPL代碼,但NetBSD并非采用GPL許可,而是采用BSD許可。不小心將GPL代碼納入BSD代碼庫(kù)是個(gè)問(wèn)題:這意味著要么重新許可現(xiàn)有代碼,要么完全替換它——這兩者他們都缺乏人力去執(zhí)行。
還有一個(gè)值得注意的點(diǎn)在于:GitHub的所有者微軟并未將其任何自有操作系統(tǒng)的源代碼輸入到其LLM訓(xùn)練語(yǔ)料庫(kù)中。這間接表明了即使是科技巨頭也意識(shí)到了潛在的風(fēng)險(xiǎn)和挑戰(zhàn)。
4.真的能禁止嗎
如今我們已經(jīng)清楚地了解了這些開(kāi)源社區(qū)對(duì)AI生成代碼說(shuō)“不”的理由。但問(wèn)題又出現(xiàn)了:禁令雖然發(fā)了,但真的能禁止嗎?
在相關(guān)話題的討論中,有開(kāi)發(fā)者一針見(jiàn)血地指出了這一點(diǎn):“我不清楚Gentoo或NetBSD如何能阻止包含由LLM生成的代碼,因?yàn)樗麄円蕾嚿嫌翁峁┑男迯?fù)。”
“除非每個(gè)主要發(fā)行版乃至內(nèi)核,都預(yù)先對(duì)超過(guò)700家LLM公司發(fā)出警告,否則似乎沒(méi)有方法能阻止這種情況,但沒(méi)有任何發(fā)行版甚至內(nèi)核有資金去做這件事,而且GPL許可證可能也不兼容這樣的威脅(所有LLM公司只需托管用于訓(xùn)練數(shù)據(jù)的GPL代碼副本,讓人們可以下載,就可以輕松應(yīng)對(duì))。”
Debian的政策似乎就意識(shí)到了這一點(diǎn)。他們沒(méi)有選擇全面禁止,可能是因?yàn)檎J(rèn)識(shí)到在當(dāng)前開(kāi)源生態(tài)系統(tǒng)和法律框架下,徹底阻止LLM生成代碼的流入幾乎是不可能的任務(wù),而且可能還會(huì)牽涉到復(fù)雜的法律和社區(qū)合作問(wèn)題。因此,Debian可能更傾向于采取靈活的管理策略,關(guān)注代碼的質(zhì)量控制、版權(quán)合規(guī)性以及透明度,而不是簡(jiǎn)單地設(shè)立禁令。
當(dāng)前技術(shù)進(jìn)步帶來(lái)了前所未有的自動(dòng)化水平,但同時(shí)也不斷開(kāi)辟出需要人類創(chuàng)造性思維的新領(lǐng)域。盡管降本增效是推動(dòng)技術(shù)進(jìn)步的重要?jiǎng)恿?,但如何在這一進(jìn)程中平衡環(huán)境影響和社會(huì)責(zé)任,成為了不可回避的議題。在這個(gè)由人工智能日益主導(dǎo)的世界里,如何找到人與技術(shù)和諧共生的方式,是我們之后將長(zhǎng)久面臨的議題。