我們擅長(cháng)商業(yè)策略與用戶(hù)體驗的完美結合。
歡迎瀏覽我們的案例。
在自然語(yǔ)言處理領(lǐng)域,常用語(yǔ)言模型(LMs)可以實(shí)現為字符(tokens)序列分配概率。
最近,LMs 還在對編程語(yǔ)言編寫(xiě)的源代碼進(jìn)行建模方面表現出強大的性能,擅長(cháng)從自然語(yǔ)言描述中完成和生成代碼。
在基于人工智能的編程支持下,目前最先進(jìn)的大型語(yǔ)言模型的編寫(xiě)代碼能力已經(jīng)有了巨大改進(jìn)。
AI 自動(dòng)寫(xiě)代碼的潛力
代碼生成 AI 模型的好處是顯而易見(jiàn)的,它可以降低開(kāi)發(fā)成本,同時(shí)允許編碼人員專(zhuān)注于創(chuàng )造性的、重復性較低的任務(wù)。也正因如此,越來(lái)越多的組織正在探索代碼生成人工智能。
Codex 是其中之一。它是 OpenAI 推出的新的深度學(xué)習驅動(dòng)平臺,可自動(dòng)編寫(xiě)能夠正常工作的軟件代碼。該系統以大量公開(kāi)代碼作為語(yǔ)料庫進(jìn)行了訓練,是 GitHub Copilot 上的一個(gè)功能,可幫助程序員自動(dòng)改進(jìn)或更新軟件。
DeepMind 出品的 AlphaCode 也是最早與人類(lèi)程序員競爭的代碼生成系統之一。編程競賽平臺 Codeforces 上舉辦的編程競賽中,DeepMind 表示,與 5000 多名程序員競爭,AlphaCode 的平均排名在前 54.3% 之內。
目前,OpenAI 和 Alphabet 支持的 DeepMind 等機構已經(jīng)開(kāi)發(fā)出強大的代碼生成 AI,但這些最強大的系統并沒(méi)有開(kāi)源。例如,Codex 只允許在收費情況下,通過(guò)黑箱 API 調用模型的輸出,但不允許訪(fǎng)問(wèn)模型的權重或訓練數據。
也就是說(shuō),盡管語(yǔ)言模型在編碼方面取得了巨大的成功,但由于性能最好的語(yǔ)言模型沒(méi)有開(kāi)源,這就限制了資源缺乏的公司在該領(lǐng)域的研究,例如,研究人員無(wú)法對模型進(jìn)行微調在源代碼實(shí)現之外的任務(wù)或領(lǐng)域中使用。而且無(wú)法訪(fǎng)問(wèn)模型的內部結構也限制了研究人員研究模型的其他重要特性,例如可解釋性、為了實(shí)現高效應用的模型蒸餾,以及引入檢索等額外功能。
GPTNeo、GPT-J 和 GPT-NeoX 是三種公開(kāi)可用的預訓練語(yǔ)言模型,其規模涵蓋中等到大型。通過(guò)在新聞文章、互聯(lián)網(wǎng)論壇和少數(GitHub)軟件庫等大量數據上進(jìn)行訓練,這些語(yǔ)言模型能夠以較快的速度生成源代碼。另外還有一些僅在源代碼上訓練的開(kāi)源語(yǔ)言模型,例如 CodeParrot 模型是在 180 GB 大小的 Python 代碼上訓練的。
由于這些模型的大小和訓練策略各不相同,而且沒(méi)有完善的實(shí)驗比較,還不清楚建模方法和訓練策略對語(yǔ)言模型的影響。
例如,我們無(wú)法知道 Codex 和其他自用模型訓練使用的實(shí)際數據集。而且一些開(kāi)源模型是在大量自然語(yǔ)言和代碼上進(jìn)行訓練,而另一些(例如 CodeParrot)則只在一種編程語(yǔ)言的代碼上訓練。
不過(guò),使用不同編程語(yǔ)言中相似的關(guān)鍵字和特征,使得多語(yǔ)言模型的泛化能力較強,這一點(diǎn)在多語(yǔ)言模型的實(shí)際使用中得到證明。也就是說(shuō),多語(yǔ)言 LMs 具有跨語(yǔ)言使用、優(yōu)于單語(yǔ)言模型的優(yōu)點(diǎn)。
PolyCoder 問(wèn)世
最近,卡內基梅隆大學(xué)(Carnegie Mellon University)的研究人員發(fā)表了一篇論文 A SYSTEMATIC EVALUATION OF LARGE LANGUAGE MODELS OF CODE ,對比了現有的跨編程語(yǔ)言的編寫(xiě)代碼模型——Codex、GPT-J、GPT-Neo、GPT-NeoX 和 CodeParrot。通過(guò)對多個(gè)模型的比較和分析,這個(gè)團隊希望為代碼建模設計決策提供更多啟發(fā)。
他們首次證明了,大型的開(kāi)源語(yǔ)言模型都不僅僅在幾種編程語(yǔ)言的代碼上進(jìn)行訓練。
這篇論文中,他們還提出一個(gè)基于 OpenAI 的GPT-2語(yǔ)言模型的模型PolyCoder。該模型在包含 249 GB 代碼的數據庫上進(jìn)行了 12 個(gè)編程語(yǔ)言。
雖然 PolyCoder 在每項任務(wù)中都無(wú)法與頂級代碼生成器的性能相媲美,但研究人員聲稱(chēng),PolyCoder 能夠以比所有已知模型更高的準確度用 C 語(yǔ)言編寫(xiě),包括 Codex 在內。
首先,該團隊對 PolyCoder、開(kāi)源模型和 Codex 的訓練和測試設置進(jìn)行對比研究。
其次,使用 HumanEval 基準研究各種模型大小、訓練步驟,以及不同的溫度對模型生成代碼質(zhì)量的影響。
最后,由于 HumanEval 只能評估自然語(yǔ)言到 Python 語(yǔ)言的生成結果,所以他們創(chuàng )建了一個(gè) 12 種語(yǔ)言的測試數據集,用來(lái)評估各種模型的性能。
研究人員發(fā)現,盡管 Codex 模型表面上只能處理 Python 語(yǔ)言,但它在其他編程語(yǔ)言中的表現也很不錯,超過(guò)了在 Pile 上訓練的 GPT-J 和 GPT-NeoX 模型。但是在 C 語(yǔ)言中,PolyCoder 模型的性能比其他所有模型(包括 Codex)的都好。
而且在 C、JavaScript、Rust、Scala 和 TypeScript 語(yǔ)言中,PolyCoder 比同樣大小的開(kāi)源模型 GPT-Neo 2.7B 相比性能更好。
但在 C 語(yǔ)言之外的 11 種語(yǔ)言上,其他的開(kāi)源模型,包括 Polycoder 的表現低于 Codex。這是因為 Polycoder 是在數據不平衡的混合語(yǔ)言上訓練的,而且 C++和 C 語(yǔ)言是有相關(guān)性、且在訓練語(yǔ)料中最普遍的兩種語(yǔ)言。所以 C 語(yǔ)言的數據量更大,PolyCoder 模型就認為 C 是“首選”的編程語(yǔ)言。但 C++語(yǔ)言更為復雜,并且 Codex 擁有更大的上下文窗口(4096 vs. PolyCoder 的 2048),或者因為 Codex 是在更多的 C++訓練數據上訓練出來(lái)的,所以導致 Codex 在 C++上的表現優(yōu)于 PolyCoder。
總而言之,這項研究中研究人員對大量語(yǔ)言模型的編碼能力進(jìn)行了全面實(shí)驗。一般來(lái)說(shuō),更大的模型和更多的訓練時(shí)間有利于提高模型性能。GPT-superior Neo 模型在某些語(yǔ)言中的性能表明,對自然語(yǔ)言文本和代碼的訓練有助于對代碼進(jìn)行建模。
而 PolyCoder 則是用于編碼的大規模開(kāi)源語(yǔ)言模型,在 12 種不同的編程語(yǔ)言代碼上訓練而得,它的發(fā)布有助于未來(lái)在該領(lǐng)域的研究。雖然 PolyCoder 在每項任務(wù)中的性能都無(wú)法與頂級代碼生成器相媲美,但研究人員聲稱(chēng),PolyCoder 能夠以比包括 Codex 在內的所有已知模型以更高的準確度用 C 語(yǔ)言編寫(xiě)代碼。
?。?a href="http://www.wxlp666.cn/wechat/">邯鄲微信平臺)
小米應用商店發(fā)布消息稱(chēng) 持續開(kāi)展“APP 侵害用戶(hù)權益治理”系列行動(dòng) 11:37:04
騰訊云與CSIG成立政企業(yè)務(wù)線(xiàn) 加速數字技術(shù)在實(shí)體經(jīng)濟中的落地和應用 11:34:49
樂(lè )視回應還有400多人 期待新的朋友加入 11:29:25
亞馬遜表示 公司正在將其智能購物車(chē)擴展到馬薩諸塞州的一家全食店 10:18:04
三星在元宇宙平臺推出游戲 玩家可收集原材料制作三星產(chǎn)品 09:57:29
特斯拉加州San Mateo裁減229名員工 永久關(guān)閉該地區分公司 09:53:13