国产精品99久久久久久人小-av在线免费观看小说-女同志一区二区你懂的在线-日韩一区二区三区精品丝袜

Internet Develppment
互聯(lián)網(wǎng)開發(fā)& 推廣服務(wù)提供商

我們擅長商業(yè)策略與用戶體驗的完美結(jié)合。

歡迎瀏覽我們的案例。

首頁 > 新聞中心 > 新聞動態(tài) > 正文

12種編程語言訓(xùn)練,開源的AI “程序員”來了

發(fā)布時間:2022-03-18 09:10:47來源:數(shù)據(jù)實戰(zhàn)派

  在自然語言處理領(lǐng)域,常用語言模型(LMs)可以實現(xiàn)為字符(tokens)序列分配概率。

  最近,LMs 還在對編程語言編寫的源代碼進行建模方面表現(xiàn)出強大的性能,擅長從自然語言描述中完成和生成代碼。

  在基于人工智能的編程支持下,目前最先進的大型語言模型的編寫代碼能力已經(jīng)有了巨大改進。

  AI 自動寫代碼的潛力

  代碼生成 AI 模型的好處是顯而易見的,它可以降低開發(fā)成本,同時允許編碼人員專注于創(chuàng)造性的、重復(fù)性較低的任務(wù)。也正因如此,越來越多的組織正在探索代碼生成人工智能。

  Codex 是其中之一。它是 OpenAI 推出的新的深度學(xué)習(xí)驅(qū)動平臺,可自動編寫能夠正常工作的軟件代碼。該系統(tǒng)以大量公開代碼作為語料庫進行了訓(xùn)練,是 GitHub Copilot 上的一個功能,可幫助程序員自動改進或更新軟件。

  DeepMind 出品的 AlphaCode 也是最早與人類程序員競爭的代碼生成系統(tǒng)之一。編程競賽平臺 Codeforces 上舉辦的編程競賽中,DeepMind 表示,與 5000 多名程序員競爭,AlphaCode 的平均排名在前 54.3% 之內(nèi)。

  目前,OpenAI 和 Alphabet 支持的 DeepMind 等機構(gòu)已經(jīng)開發(fā)出強大的代碼生成 AI,但這些最強大的系統(tǒng)并沒有開源。例如,Codex 只允許在收費情況下,通過黑箱 API 調(diào)用模型的輸出,但不允許訪問模型的權(quán)重或訓(xùn)練數(shù)據(jù)。

  也就是說,盡管語言模型在編碼方面取得了巨大的成功,但由于性能最好的語言模型沒有開源,這就限制了資源缺乏的公司在該領(lǐng)域的研究,例如,研究人員無法對模型進行微調(diào)在源代碼實現(xiàn)之外的任務(wù)或領(lǐng)域中使用。而且無法訪問模型的內(nèi)部結(jié)構(gòu)也限制了研究人員研究模型的其他重要特性,例如可解釋性、為了實現(xiàn)高效應(yīng)用的模型蒸餾,以及引入檢索等額外功能。

  GPTNeo、GPT-J 和 GPT-NeoX 是三種公開可用的預(yù)訓(xùn)練語言模型,其規(guī)模涵蓋中等到大型。通過在新聞文章、互聯(lián)網(wǎng)論壇和少數(shù)(GitHub)軟件庫等大量數(shù)據(jù)上進行訓(xùn)練,這些語言模型能夠以較快的速度生成源代碼。另外還有一些僅在源代碼上訓(xùn)練的開源語言模型,例如 CodeParrot 模型是在 180 GB 大小的 Python 代碼上訓(xùn)練的。

  由于這些模型的大小和訓(xùn)練策略各不相同,而且沒有完善的實驗比較,還不清楚建模方法和訓(xùn)練策略對語言模型的影響。

  例如,我們無法知道 Codex 和其他自用模型訓(xùn)練使用的實際數(shù)據(jù)集。而且一些開源模型是在大量自然語言和代碼上進行訓(xùn)練,而另一些(例如 CodeParrot)則只在一種編程語言的代碼上訓(xùn)練。

  不過,使用不同編程語言中相似的關(guān)鍵字和特征,使得多語言模型的泛化能力較強,這一點在多語言模型的實際使用中得到證明。也就是說,多語言 LMs 具有跨語言使用、優(yōu)于單語言模型的優(yōu)點。

  PolyCoder 問世

  最近,卡內(nèi)基梅隆大學(xué)(Carnegie Mellon University)的研究人員發(fā)表了一篇論文 A SYSTEMATIC EVALUATION OF LARGE LANGUAGE MODELS OF CODE ,對比了現(xiàn)有的跨編程語言的編寫代碼模型——Codex、GPT-J、GPT-Neo、GPT-NeoX 和 CodeParrot。通過對多個模型的比較和分析,這個團隊希望為代碼建模設(shè)計決策提供更多啟發(fā)。

  他們首次證明了,大型的開源語言模型都不僅僅在幾種編程語言的代碼上進行訓(xùn)練。

  這篇論文中,他們還提出一個基于 OpenAI 的GPT-2語言模型的模型PolyCoder。該模型在包含 249 GB 代碼的數(shù)據(jù)庫上進行了 12 個編程語言。

  雖然 PolyCoder 在每項任務(wù)中都無法與頂級代碼生成器的性能相媲美,但研究人員聲稱,PolyCoder 能夠以比所有已知模型更高的準確度用 C 語言編寫,包括 Codex 在內(nèi)。

  首先,該團隊對 PolyCoder、開源模型和 Codex 的訓(xùn)練和測試設(shè)置進行對比研究。

  其次,使用 HumanEval 基準研究各種模型大小、訓(xùn)練步驟,以及不同的溫度對模型生成代碼質(zhì)量的影響。

  最后,由于 HumanEval 只能評估自然語言到 Python 語言的生成結(jié)果,所以他們創(chuàng)建了一個 12 種語言的測試數(shù)據(jù)集,用來評估各種模型的性能。

  研究人員發(fā)現(xiàn),盡管 Codex 模型表面上只能處理 Python 語言,但它在其他編程語言中的表現(xiàn)也很不錯,超過了在 Pile 上訓(xùn)練的 GPT-J 和 GPT-NeoX 模型。但是在 C 語言中,PolyCoder 模型的性能比其他所有模型(包括 Codex)的都好。

  而且在 C、JavaScript、Rust、Scala 和 TypeScript 語言中,PolyCoder 比同樣大小的開源模型 GPT-Neo 2.7B 相比性能更好。

  但在 C 語言之外的 11 種語言上,其他的開源模型,包括 Polycoder 的表現(xiàn)低于 Codex。這是因為 Polycoder 是在數(shù)據(jù)不平衡的混合語言上訓(xùn)練的,而且 C++和 C 語言是有相關(guān)性、且在訓(xùn)練語料中最普遍的兩種語言。所以 C 語言的數(shù)據(jù)量更大,PolyCoder 模型就認為 C 是“首選”的編程語言。但 C++語言更為復(fù)雜,并且 Codex 擁有更大的上下文窗口(4096 vs. PolyCoder 的 2048),或者因為 Codex 是在更多的 C++訓(xùn)練數(shù)據(jù)上訓(xùn)練出來的,所以導(dǎo)致 Codex 在 C++上的表現(xiàn)優(yōu)于 PolyCoder。

  總而言之,這項研究中研究人員對大量語言模型的編碼能力進行了全面實驗。一般來說,更大的模型和更多的訓(xùn)練時間有利于提高模型性能。GPT-superior Neo 模型在某些語言中的性能表明,對自然語言文本和代碼的訓(xùn)練有助于對代碼進行建模。

  而 PolyCoder 則是用于編碼的大規(guī)模開源語言模型,在 12 種不同的編程語言代碼上訓(xùn)練而得,它的發(fā)布有助于未來在該領(lǐng)域的研究。雖然 PolyCoder 在每項任務(wù)中的性能都無法與頂級代碼生成器相媲美,但研究人員聲稱,PolyCoder 能夠以比包括 Codex 在內(nèi)的所有已知模型以更高的準確度用 C 語言編寫代碼。
 ?。?a href="http://www.weiseditor.com/wechat/">邯鄲微信平臺)

最新資訊
? 2018 河北碼上網(wǎng)絡(luò)科技有限公司 版權(quán)所有 冀ICP備18021892號-1   
? 2018 河北碼上科技有限公司 版權(quán)所有.