PolyCoder:號稱超過Codex的開源AI程式碼生成器

banq發表於2022-03-11

程式碼生成型人工智慧是:能夠在提示下用不同的程式語言進行編寫的人工智慧系統

這種工具有望削減開發成本,同時讓編碼人員專注於創造性的、不那麼重複的任務。

儘管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大小的模型開源,作為對抗這種情況的一種方式,這可以使安全研究人員在這些模型中尋找故障模式。作為一個附帶的好處,開源將允許開發人員通過一個被稱為微調的過程對模型進行個性化處理或 "教 "他們新的程式語言,這比從頭開始訓練模型的成本要低。

 

相關文章