訓練AI寫代碼還在用GitHub ?Project CodeNet或是更優解:1400萬代碼,50種編程語言
如今寫代碼已經成為各行各業的必備技能,學會寫代碼可以讓計算機代替我們做一些重復的工作,極大提升工作效率。
但一個真正能幫你寫代碼的 AI 程序離我們還有多遠?
5 月 5 日,IBM 向極少數媒體和學術界發布了 Project CodeNet,在當時并未引起過多關注。
CodeNet 完美繼承了 ImageNet 的思想。ImageNet 是一個大規模的圖像及其描述數據集,為 CV 的模型發展和標準化提供了巨大的幫助,也是深度學習計算機視覺進步的核心, 并且圖像可免費用于非商業用途。
CodeNet 的目標是為人工智能寫代碼提供一個標準的數據庫,它包含超過 1400 萬個代碼樣本,涵蓋 50 種編程語言,能夠解決 4000 個編碼問題。該數據集還包含許多附加數據,例如軟件運行所需的內存量和運行代碼的日志輸出。
IBM 表示,Project CodeNet 是同類中最大、最具差異的數據集,它解決了當今編碼中的三個主要用例:代碼搜索(自動將一種代碼翻譯成另一種代碼,包括像 COBOL 這樣的遺留語言);代碼相似性(識別不同代碼之間的重疊和相似性);還有代碼約束(根據開發人員的特定需求和參數定制約束)。
然而有安全研究人員認為 CodeNet 和類似項目最重要的影響不是優化代碼,而是增加了自然語言編碼(Natural Language Coding, NLC)的可能性。
近年來,OpenAI 和 Google 等公司一直在快速改進自然語言處理(NLP)技術。這些是機器學習驅動的程序,旨在更好地理解和模仿自然人類語言并在不同語言之間進行翻譯。訓練機器學習系統需要訪問包含以所需人類語言編寫的文本的大型數據集。
但寫代碼是一項很難學習的技能,更不用說掌握了,經驗豐富的編碼員應該精通多種編程語言。相比之下,NLC 利用 NLP 技術和諸如 CodeNet 之類的龐大數據庫,能夠利用英語來進行編程,最終使用任何其他自然語言都可以進行編碼。
它可以使諸如設計網站之類的任務變得簡單,只需輸入一句話,然后就會出現一個符合要求的網站,這要求生成的代碼都是可以運行的。
例如“制作帶有飛機圖像的紅色背景,中間是公司的 logo,下方有一個與我聯系的按鈕。“
很明顯,如此科幻的想法除了 IBM 以外還有很多人在做。
GPT-3 是 OpenAI 的一個 NLP 模型,在多項文本生成任務都遙遙領先,目前也已經被用于生成代碼,輸入就是預期的網站或者應用程序的自然語言描述,輸出可運行的代碼。
但是,在 IBM 的消息發布后不久,微軟宣布已獲得 GPT-3 的獨家授權。
除了 GPT-3 外,微軟還于 2018 年收購了互聯網上最大的開源代碼集合網站 GitHub。并且還開發了一個人工智能代碼助手 GitHub Copilot,可以在 VS code 等 IDE 輔助開發,能夠簡化開發過程,但它是付費的。
雖然 Copilot 離 NLC 的目標還有很大距離,但它已經是向前邁了一大步了。
不過后續的測試來看,Copilot 除了抄襲開源代碼和注釋外,并不能創造代碼,還會把其他用戶的漏洞代碼擴散開。
Copilot 是朝著 NLC 邁出的一大步,但它還遠遠沒有實現 AI 寫代碼的功能。
雖然 NLC 還沒有完全可行,但目前的研究方向正在迅速走向一個不需要長時間訓練也能編程的未來,并且影響是巨大的。
首先,更多的研究和開發人員會產生更多的成果。有人認為潛在創新者的數量越多,創新率越高。
如果每個人都能寫代碼,那編程帶來的創新潛力就會更大。
此外,計算物理學和統計社會學等學科越來越依賴于定制的計算機程序來處理數據,簡化編寫這類程序所需的技能要求,將提高計算機科學以外專業領域的研究人員部署新方法、做出新發現的能力。
然而,NLC 所需的人工智能的開發和部署資源相當昂貴,小公司根本無法支撐這種應用的開發和運行,所以最終很可能被微軟、谷歌或 IBM 等主流巨頭公司壟斷。該服務可以收費提供,或者像大多數社交媒體服務一樣免費提供。
并且我們有理由相信,由于機器學習需要大數據的支持,這些技術將由平臺公司主導。從理論上講,像 Copilot 這樣的程序在引入新數據時會變得更好,也就是說使用的用戶越多,效果越好,這種特性也使得新的競爭對手更難入場,即使他們有更強大或更良心的產品。
除非有強力的反壟斷措施,否則大型資本主義企業集團似乎將成為下一次編碼革命的把關人。