程式設計師用 AI 寫 AI 程式碼,「搞死」其他程式設計師?

作者 | 發布日期 2021 年 11 月 10 日 8:30 | 分類 AI 人工智慧 , 軟體、系統 line share follow us in feedly line share
程式設計師用 AI 寫 AI 程式碼,「搞死」其他程式設計師?


用 AI 演算法幫程式設計師寫 AI 演算法?或許是不少程式設計師的心願──「你已經是個成熟 AI 了,該學會自己補好程式碼了」就要實現。

6 月 GitHub 與 Open AI 合作推出「GitHub Copilot」AI 編碼工具,Copilot 能據上下文自動補好程式碼,包括文檔字符串、註釋、函數名稱、程式碼,只要編碼者給提示,AI 工具就可補好完整函數。

令人震驚的是 Copilot 還在進化。近日舉行的 GitHub Universe 2021 開發者大會,GitHub 表示 Copilot 支援 Java、C、C++ 和 C# 等語言多行程式碼,並增加 Neovim 和 JetBrains IDE,包含支援開發者常用的 IntelliJ IDEA、PyCharm 等編輯器。

(Source:GitHub Copilot

GitHub 表示,如今 30% 新程式碼都是 AI 編碼工具 Copilot 幫助下完成,Copilot 真有如此強大嗎?社群有不少人拿到 Copilot 試用資格並分享使用感想。

Copilot 雖強大,但就和大部分人工智慧工具一樣,仍建立在 OpenAI Codex 演算法基礎上,需藉大量程式碼訓練。這對同樣有微軟血統的 OpenAI 及 GitHub 來說不是問題,微軟 2018 年斥資 75 億美元收購全球約 5,000 萬用戶的程式碼開源網站 GitHub,意味 Copilot 依靠的 Codex 演算法接受了數十億行公開程式碼訓練。

其實早在 Copilot 誕生前,OpenAI 就推出 1,750 億參數的 AI 模型 GPT-3。GPT-3 耗費千萬美元,以人類詩歌、小說、新聞等大量自然語言訓練(主要是英文),因此 GPT-3 對自然語言具備一定程度理解能力。神經網路之父 Geoffrey Hinton 在 GPT-3 出現後曾感慨:「生命、宇宙和萬物的答案,其實只是 4.398 萬億個參數而已。」

Codex 就是基於 GPT-3 的模型訓練,OpenAI 聯合創始人兼首席技術長 Greg Brockman 曾表示 Codex 是 GPT-3 的後代。因此 Codex 也具備將部分指令清晰的英語翻譯成程式碼的能力,甚至有部分媒體宣傳 Codex 讓程式設計師門檻降低到只要講英文就能寫程式碼的地步。

官方示範時程式設計師只需在編輯界面寫下「Make it be smallish」,上圖的大型飛船就會如下圖縮小,程式設計師不需輸入任何程式碼,Codex 會自動編寫。

如今,Codex 經過無數程式碼與金錢訓練出來的強大能力應用到 AI 工具 Copilot,雖然造就 Copilot 神奇的程式碼補完、函數建議等功能,但也使 Copilot 陷入爭議。

當 Copilot 受越來越多程式設計師歡迎,GitHub CEO Nat Friedman 興奮表示:「每天都有數百名 GitHub 開發者使用 Copilot,如果預覽版進展順利,我們計劃某個時候會擴展為付費產品。」

Nat Friedman 這番話讓 Copilot 一下子沒那麼香了,這意味經過 GitHub 和 OpenAI 一波神操作後,收費的 Copilot 白嫖全球最大程式碼共享網站 GitHub 5,000 萬用戶的知識成果來商業化。爭議焦點在於 Copilot 版權有開源程式碼衍生品商業化 GPL 的問題。GPL(General Public License)即通用公共許可證,是一系列自由軟體許可證的統稱,可用來保證用戶執行、研究、共享和修改軟體的自由。對應的是任何複製、遷移 GPL 版權的衍生作品都必須遵循相同或等效許可條款。

簡單來說,就是開源軟體、開源程式碼隨便用沒問題,但只要用了就得支援開源,任何人也可免費使用程式碼或軟體。Copilot 引起 GitHub 社群公憤的關鍵就是把開源程式碼變成商業產品,無視早期促進程序語言世界豐富、開放的開源精神,有不少程式設計師在社群媒體公開表示未來將不再使用 GitHub 託管程式碼。

GitHub 解釋是 Copilot「通常不會精確複製程式碼模組」,也有人認為 Copilot 據大量程式碼 AI 訓練得出的結果就如人類成長,前期也需透過學習其他人知識內化成自己的,很難把 AI 模型訓練的程式碼簡單理解為複製貼上。

然而有不少人否定這說法,透過 Copilot 解決程式常見問題時,會發現 Copilot 幾乎一字不差複製貼上 GitHub 某段程式碼。這表示 Copilot 成為商業產品後,使用 Copilot 的用戶把程式碼應用到自家產品時不小心就會中招違反 GPL 協議,面臨被告風險,已有一些科技公司明確要求禁止員工使用 Copilot 。

Copilot 實際應用問題不止如此,隨著程式設計師對 Copilot 了解逐步加深,發現 Copilot 並不完美,仍有不少缺陷。 Copilot 背後的 Codex 既經過大量文本語言訓練,也吸收網路世界魚龍混雜程式碼,因此 Copilot 輸出部分程式碼或許沒有那麼美好,有隱私洩露、安全風險等問題。

也有網友表示「Copilot 一時爽,調試火葬場」,因為想清楚清晰描述目標函數想達成的功能並不簡單,使用 Copilot 時需不斷回顧檢查 AI 生成的程式碼是否正確,這反而干擾編碼時的思路。

GitHub Copilot 還在未收取任何費用的申請試用階段,爭論也還繼續。隨著 AI 工具日益強大,人類將來面對的類似問題只會越來越多。

(本文由 品玩 授權轉載;首圖來源:The GitHub Blog

延伸閱讀: