PolyCoder:號稱超過Codex的開源AI程式碼生成器
程式碼生成型人工智慧是:能夠在提示下用不同的程式語言進行編寫的人工智慧系統
這種工具有望削減開發成本,同時讓編碼人員專注於創造性的、不那麼重複的任務。
儘管OpenAI和DeepMind已經開發出了強大的程式碼生成人工智慧,但它們並沒有完全開放原始碼。例如,為GitHub的Copilot功能提供動力的OpenAI的Codex的訓練資料尚未公開,使研究人員無法對人工智慧模型進行微調或研究它的可解釋性等方面。
為了彌補這一缺陷,卡內基梅隆大學的研究人員開發了PolyCoder,這是一個基於OpenAI的GPT-2語言模型的模型,在一個包含249GB程式碼的資料庫中訓練,涵蓋12種程式語言。雖然PolyCoder在每項任務中的表現都無法與頂級程式碼生成器相提並論,但研究人員聲稱,PolyCoder能夠以比所有已知模型(包括Codex)更高的精度編寫C語言。
當GitHub的Copilot在去年夏天問世時,很明顯,這些非常大的程式碼語言模型對幫助開發者和提高他們的生產力非常有用。
但是沒有接近這種規模的公開可用的模型,
越來越多的組織正在探索程式碼生成的人工智慧:
- 在2021年5月的Build開發者大會上,微軟詳細介紹了Power Apps的一項新功能,該功能利用OpenAI的GPT-3語言模型來協助人們選擇公式。
- 英特爾的ControlFlag可以自主地檢測程式碼中的錯誤。
- 而Facebook的TransCoder將程式碼從一種程式語言轉換為另一種。
- DeepMind最近公佈了AlphaCode,該實驗室聲稱它是首批可與人類程式設計師競爭的程式碼生成系統之一。
但是,這些大型科技公司沒有公開發布他們的模型,這確實阻礙了科學研究和這種大型語言模型程式碼的民主化
在開發PolyCoder的過程中,研究人員還研究並比較了包括Codex(通過API)在內的不同程式碼生成AI系統的效能。有趣的是,他們發現大部分在英文文字上訓練的模型,只在一點原始碼上訓練,結果在生成程式碼方面非常出色--也許是因為他們從249GB資料庫中包含的開發者問答網站Stack Overflow等資源中得到了與程式碼相關的見解
建立強大的程式碼生成模型的一個有希望的方法似乎是對不同的程式設計知識來源進行訓練,包括廣泛的程式語言組合中的程式碼,以及來自網路上與程式碼相關的文字。
研究人員表示擔心,像PolyCoder這樣的模型可能會被促使生成錯誤的程式,包括具有難以檢測的安全漏洞的程式。在未來,他們擔心對手可以在程式碼生成模型中 "隱藏 "惡意行為,這些行為只有在得到正確的提示時才會出現,比如一個關鍵詞(如公司或產品名稱),或者上傳可能被合法程式碼生成模型發現的脆弱程式碼。
他們建議將Codex大小的模型開源,作為對抗這種情況的一種方式,這可以使安全研究人員在這些模型中尋找故障模式。作為一個附帶的好處,開源將允許開發人員通過一個被稱為微調的過程對模型進行個性化處理或 "教 "他們新的程式語言,這比從頭開始訓練模型的成本要低。
相關文章
- C 語言寫得比 Codex 還要好的 AI 開源了!AI
- 歡迎使用開源的程式碼生成器Code-BuilderUI
- 開源框架 - 新 程式碼生成器 WebFirst / .NET Core框架Web
- BigCode:使用AI自動生成程式碼的開源工具GCAI開源工具
- JNPF低程式碼開發框架程式碼 生成器設計框架
- 程式碼生成器
- GitHub Star 數量前 5 的開源應用程式生成器Github
- 精選 | 6款超讚的最新AI開源專案!AI
- 一個超級牛逼基於SpringBoot + Mybatis + Vue的程式碼生成器Spring BootMyBatisVue
- OpenAI很會營銷,而號稱超強AI營銷的靈感島實測成效如何?OpenAI
- Laravel 程式碼生成器Laravel
- SpringBoot程式碼生成器Spring Boot
- MyBatis程式碼生成器的實用MyBatis
- 開源專案-跨專案及作業系統的通用程式碼生成器,解放您的雙手作業系統
- 開源小程式原始碼原始碼
- go-zero程式碼生成器助你高效開發Go
- DevToys Mac程式設計師神器,號稱開發者的瑞士軍 刀devMacC程式程式設計師
- 開源資料庫流行度首次超過非開源資料庫Confluent資料庫
- go模板-程式碼生成器Go
- MyBatis Plus程式碼生成器MyBatis
- Appsmith:真正的低程式碼開源開發工具APPMIT
- 開源軟體名稱中的故事
- JavaScript 程式碼開頭新增分號JavaScript
- 什麼樣的程式碼稱得上是好程式碼?
- OceanBase開源獲信通院認可:開源300萬行核心程式碼、社群答疑超3萬次
- 開源囧事4:你們這些賣程式碼的能不能留自己的QQ號?留我QQ號幹嘛?
- 基於 Laravel 命令列開發 API 程式碼生成器Laravel命令列API
- openGauss不僅程式碼開源
- 字串(暱稱)過濾特殊符號和表情(通用)字串符號
- beego 程式碼自動生成器Go
- AI開源 - FeaturetoolsAI
- Android 通過名稱獲取資源IDAndroid
- Stability AI開源3B程式碼生成模型:可補全,還能DebugAI模型
- Mybatis自動程式碼生成器的實現MyBatis
- Mybatis-plus程式碼生成器的實現MyBatis
- 寫一個簡單的程式碼生成器
- SpringBoot程式碼生成器,從此不用手擼程式碼Spring Boot
- steam帳號怎麼註冊 steam帳號名稱密碼細節設定全過程介紹密碼