首頁(yè)>資訊 >
程序員用AI來(lái)寫(xiě)AI代碼,“卷死”其他程序員? 2021-11-07 10:52:40  來(lái)源:36氪

用AI算法幫程序員寫(xiě)AI算法?或許不少程序員“你已經(jīng)是一個(gè)成熟的AI了,該學(xué)會(huì)自己補(bǔ)全代碼了”的心愿就要實(shí)現(xiàn)。

在今年6月份,GitHub與Open AI一同合作,推出了一款名為“GitHub Copilot”的AI工具,Copilot可以根據(jù)上下文自動(dòng)補(bǔ)全代碼,包括文檔字符串、注釋、函數(shù)名稱(chēng)、代碼,只要編程者給出一定提示,這款A(yù)I工具就可以補(bǔ)全出完整的函數(shù)。

GitHub Copilot官網(wǎng)

令人震驚的是Copilot還在不斷進(jìn)化。在近日舉行的GitHub Universe 2021開(kāi)發(fā)者大會(huì)上,GitHub官方表示Copilot已開(kāi)始支持Java、C、C++和C#等語(yǔ)言的多行代碼完成,并增加了Neovim和JetBrains IDE,包含開(kāi)發(fā)者常用的IntelliJ IDEA、PyCharm等編輯器的支持。

Copilot運(yùn)行范例;來(lái)源GitHub Copilot官網(wǎng)

GitHub表示,如今新寫(xiě)的30%代碼都是在AI編程工具Copilot的幫助下完成的,Copilot真的如此強(qiáng)大嗎?在社交網(wǎng)絡(luò)中,已有不少早早拿到了Copilot試用資格的博主分享了他們使用Copilot的感受。

來(lái)源:微博截圖

當(dāng)然,除了認(rèn)真寫(xiě)Copilot使用體驗(yàn)的博主,還有偷偷摸魚(yú)被抓個(gè)現(xiàn)著的程序員……

來(lái)源:微博截圖

Copilot雖然強(qiáng)大,但就和大部分人工智能工具一樣,它仍是建立在OpenAI Codex算法的基礎(chǔ)上,需要通過(guò)海量的代碼來(lái)訓(xùn)練其智能程度。這對(duì)同樣有著微軟血統(tǒng)的OpenAI以及Github來(lái)說(shuō)不是問(wèn)題,微軟在2018年斥資75億美元收購(gòu)了全球約有5000萬(wàn)用戶(hù)的代碼共享網(wǎng)站Github,這意味著Copilot所依托的Codex算法接受了數(shù)十億行公共代碼的訓(xùn)練。

事實(shí)早在Copilot誕生之前,OpenAI就推出1750億參數(shù)的AI模型GPT-3,GPT-3耗費(fèi)了千萬(wàn)美元對(duì)人類(lèi)的詩(shī)歌、小說(shuō)、新聞等海量自然語(yǔ)言進(jìn)行訓(xùn)練(主要是英語(yǔ)),也因此GPT-3對(duì)自然語(yǔ)言具備了一定程度的理解能力。神經(jīng)網(wǎng)絡(luò)之父Geoffrey Hinton在GPT-3出現(xiàn)后,曾這樣感慨:“生命、宇宙和萬(wàn)物的答案,其實(shí)只是4.398萬(wàn)億個(gè)參數(shù)而已?!?/p>

Codex就是基于GPT-3進(jìn)行訓(xùn)練,OpenAI 的聯(lián)合創(chuàng)始人兼首席技術(shù)官Greg Brockman曾表示Codex是 GPT-3 的后代。因此Codex也具備了將部分指令清晰的英語(yǔ)翻譯成代碼的能力,甚至有部分媒體宣傳Codex已經(jīng)讓程序員門(mén)檻降低到了只要會(huì)英語(yǔ)就能寫(xiě)代碼的地步。

在官方示例的Codex效果展示中,程序員只需要在編輯界面寫(xiě)下“Make it be smallish”示例上圖中的大型飛船就會(huì)如下圖一般縮小,而在這個(gè)過(guò)程中程序員并不需要輸入一行代碼,Codex會(huì)自動(dòng)編寫(xiě)車(chē)程序。

如今,Codex經(jīng)過(guò)無(wú)數(shù)代碼與金錢(qián)訓(xùn)練出來(lái)的強(qiáng)大能力應(yīng)用到了AI工具Copilot上,這雖然造就了Copilot神奇的代碼補(bǔ)全、給出函數(shù)建議等功能,但同時(shí)也使得Copilot陷入了系列輿論爭(zhēng)議風(fēng)波。

當(dāng)Copilot受到越來(lái)越多程序員的歡迎,GitHub的CEO Nat Friedman興奮地表示:“每天都有數(shù)百名GitHub的開(kāi)發(fā)者在使用Copilot,如果預(yù)覽版進(jìn)展順利的話(huà),我們將計(jì)劃在未來(lái)某個(gè)時(shí)候?qū)⑵鋽U(kuò)展為付費(fèi)產(chǎn)品?!?/p>

Nat Friedman的這番話(huà)讓Copilot一下沒(méi)那么香了,這意味著經(jīng)過(guò)GitHub和OpenAI的一波神操作后,收費(fèi)的Copilot白嫖了全球最大的代碼共享網(wǎng)站GitHub5000萬(wàn)用戶(hù)的知識(shí)成果用來(lái)商業(yè)化。這其中引起爭(zhēng)議的焦點(diǎn)就在于Copilot的版權(quán)存在開(kāi)源代碼衍生品商業(yè)化GPL版權(quán)問(wèn)題。GPL(General Public License)即通用公共許可證,是一系列自由軟件許可證的統(tǒng)稱(chēng),它可以用來(lái)保證用戶(hù)運(yùn)行、研究、共享和修改軟件的自由。與此對(duì)應(yīng)的是,任何復(fù)制、遷移GPL版權(quán)的衍生作品都必須遵循相同或等效的許可條款。

簡(jiǎn)單來(lái)說(shuō)就是,我是開(kāi)源軟件、開(kāi)源代碼你隨便用沒(méi)問(wèn)題,但你只要用了就也得支持開(kāi)源,其它任何人也可以免費(fèi)使用你的代碼或軟件。Copilot引起GitHub社區(qū)人們公憤的關(guān)鍵就是其把開(kāi)源代碼洗成商業(yè)產(chǎn)品,無(wú)視了早期促進(jìn)程序語(yǔ)言世界豐富、開(kāi)放的開(kāi)源精神,已有不少程序員在社交媒體上公開(kāi)表示未來(lái)將不再使用GitHub來(lái)托管自己的代碼。

GitHub官方則解釋Copilot“通常不會(huì)精確復(fù)制代碼塊”,也有人認(rèn)為Copilot通過(guò)海量代碼AI訓(xùn)練最后得出來(lái)的結(jié)果就如同人類(lèi)一樣,人類(lèi)前期也需要通過(guò)學(xué)習(xí)其他人的相關(guān)知識(shí)來(lái)內(nèi)化成為自己的,很難把AI模型訓(xùn)練出來(lái)的代碼簡(jiǎn)單的理解為復(fù)制粘貼。

然而已有不少人否定了這個(gè)說(shuō)法,在通過(guò)Copilot解決程序中的一些經(jīng)典問(wèn)題時(shí),會(huì)發(fā)現(xiàn)Copilot幾乎一字不差的復(fù)制粘貼了GitHub上的某段經(jīng)典代碼。這意味著在Copilot成為商業(yè)產(chǎn)品后,使用Copilot的用戶(hù)在把其代碼應(yīng)用到自家產(chǎn)品時(shí)一不小心就會(huì)中招違反GPL協(xié)議,面臨被人起訴的風(fēng)險(xiǎn),因此,已有一些科技公司已明確要求禁止員工使用Copilot。

Copilot在實(shí)際應(yīng)用中面臨的問(wèn)題不止如此,隨著程序員們對(duì)Copilot了解的逐步加深,他們發(fā)現(xiàn)Copilot并不完美,仍然存在著不少缺陷。Copilot背后的Codex既經(jīng)過(guò)大量文本語(yǔ)言訓(xùn)練,也吸收了網(wǎng)絡(luò)世界中魚(yú)龍混雜的海量代碼,因此Copilot輸出的部分代碼或許看出去沒(méi)有那么美好,有著隱私泄露、安全風(fēng)險(xiǎn)等問(wèn)題。B站大佬陳睿就躺槍了一次,雖然立刻有網(wǎng)友表示其中出生年月日信息有誤。

也有網(wǎng)友表示“Copilot 一時(shí)爽,調(diào)試火葬場(chǎng)”,因?yàn)橄胍宄⑶逦拿枋龀瞿繕?biāo)函數(shù)想要實(shí)現(xiàn)的功能并不簡(jiǎn)單,同時(shí)在使用Copilot的過(guò)程中,需要不斷去回顧檢查AI生成的代碼是否正確,這反而容易干擾到編程時(shí)的原有思路。

來(lái)源:微博截圖

目前,GitHub Copilot還處于未收取任何費(fèi)用的申請(qǐng)?jiān)囉秒A段,互聯(lián)網(wǎng)上關(guān)于它的爭(zhēng)論也還在繼續(xù),隨著AI工具日益強(qiáng)大,人類(lèi)將來(lái)面對(duì)的類(lèi)似問(wèn)題只會(huì)越來(lái)越多。

本文來(lái)自微信公眾號(hào)“品玩”(ID:pinwancool),作者:洪雨晗,36氪經(jīng)授權(quán)發(fā)布。

關(guān)鍵詞: 程序員 來(lái)寫(xiě) 代碼

相關(guān)閱讀:
熱點(diǎn)
圖片 圖片