評估在程式碼上訓練的大型語言模型:OpenAI Codex

OpenAI 推出了 Codex,這是一個在 GitHub 公開程式碼上進行微調的 GPT 語言模型。Codex 旨在從自然語言 docstrings 合成 Python 程式碼,在功能正確性方面顯著優於 GPT-3 和 GPT-J 等通用模型。

在 HumanEval 上的表現

Codex 使用 HumanEval 進行評估,這是由 OpenAI 發布的一個新評估集,用於衡量從 docstrings 合成的程式的機能正確性。在此基準測試中,Codex 在單次嘗試中解決了 28.8% 的問題,相比之下 GPT-3 為 0%,GPT-J 為 11.4%。

重複採樣策略

從模型中進行重複採樣是提高產生針對困難提示詞(prompts)的有效解決方案成功率的有效策略。透過每個問題產生 100 個樣本,Codex 的成功率增加到 70.2%。

模型限制

儘管具備這些能力,Codex 在生成正確程式碼的能力方面表現出特定的技術限制。該模型在以下方面面臨困難:

  • 長操作鏈: 當 docstrings 描述一系列長且複雜的操作時,Codex 會遇到困難。
  • 變數綁定: 該模型偶爾無法正確地將操作綁定到變數。

更廣泛的影響

OpenAI 討論了部署強大的程式碼生成技術可能帶來的更廣泛影響,重點關注三個主要領域:

  • 安全性: 與生成潛在不安全或有錯誤的程式碼相關的風險。
  • 安全性(Security): AI 生成的程式碼可能引入的漏洞。
  • 經濟學: 自動化程式碼生成對軟體工程專業和經濟的影響。

Sources