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