OpenAI Codex
OpenAI Codex是OpenAI開發的人工智慧代碼生成模型,主要用於根據自然語言提示生成、補全和修改程序代碼。OpenAI於2021年8月發布Codex,並通過API私人測試版提供訪問。Codex基於GPT-3系列模型進一步訓練,訓練數據包括自然語言文本以及來自公開來源的原始碼;OpenAI稱,該模型在Python上的表現最強,同時也能處理JavaScript、Go、PHP、Ruby、Swift、TypeScript和Shell等十餘種程式語言。[1]
Codex曾作為GitHub Copilot早期版本的底層模型。GitHub在2021年6月發布Copilot技術預覽版時稱,Copilot由GitHub與OpenAI合作開發,並由OpenAI Codex提供支持,可根據開發者正在編輯的代碼上下文建議整行代碼或函數。[2] OpenAI等人在論文《Evaluating Large Language Models Trained on Code》中將Codex描述為在公開可用的GitHub代碼上微調的GPT語言模型,並提出HumanEval基準,用於評估模型根據文檔字符串合成程序的功能正確性。[3]
2023年3月,OpenAI棄用了通過API提供的Codex模型。OpenAI的API棄用文檔列出的code-davinci-002、code-davinci-001、code-cushman-002和code-cushman-001等模型,關閉日期均為2023年3月23日。[4] 後來,OpenAI繼續將「Codex」用於代碼相關產品名稱,包括2025年推出的Codex CLI和雲端軟體工程代理;這些產品與本文所述的2021年代碼生成模型不同。[1]
功能
[編輯]Codex是在GPT-3基礎上針對代碼生成任務進一步訓練的語言模型。OpenAI稱,Codex的訓練數據同時包含自然語言文本和來自公開來源的原始碼,其中包括公開GitHub倉庫中的代碼。Codex最擅長處理Python,也能處理JavaScript、Go、Perl、PHP、Ruby、Swift、TypeScript和Shell等程式語言。[1]
根據OpenAI等人在論文《Evaluating Large Language Models Trained on Code》中的說明,Codex研究模型使用了來自公開GitHub倉庫的代碼數據,並以HumanEval數據集評估其根據文檔字符串生成Python函數的能力。該論文稱,最大規模的Codex模型在HumanEval上的單次採樣通過率為28.8%,而GPT-3為0%,GPT-J為11.4%;若對每個問題進行100次採樣,Codex至少生成一個正確答案的比例可提高到70.2%。[3] 據VentureBeat和InfoQ報道,OpenAI從約5400萬個公開GitHub倉庫中收集Python文件,經篩選後形成約159 GB的訓練數據集。[5][6]
Codex的主要用途是根據自然語言提示生成或補全代碼。例如,用戶可以在編輯器中輸入描述性注釋,要求程序「計算給定窗口大小的數組移動平均值」,模型隨後生成可能滿足該要求的代碼片段。OpenAI將Codex定位為通用編程模型,稱其可用於代碼生成、代碼翻譯、代碼解釋和重構等任務,但結果會因任務而異。[1] 在早期應用中,Codex為GitHub Copilot提供底層模型支持,使Copilot能夠根據開發者正在編輯的上下文補全整行代碼或函數。[2]
OpenAI認為,Codex並非用於完全取代程式設計師,而是用於降低將意圖轉化為代碼的門檻。該公司在發布文章中稱,程式設計師在明確目標後,往往需要把問題拆解為較小的子問題,並將這些子問題映射到已有庫、API或函數;Codex主要擅長後一個環節。[1] 《連線》雜誌在2021年報道,OpenAI當時展示的Codex版本可完成約37%的測試任務,較早期用於Copilot的版本有所提高。[7]
局限性
[編輯]Codex生成的代碼並不總是正確或安全。OpenAI等人在論文中指出,Codex在處理需要較長操作鏈的文檔字符串時表現較弱,也可能錯誤地綁定變量或操作。論文還討論了代碼生成模型在安全、經濟和濫用方面的潛在影響。[3]
VentureBeat報道,OpenAI研究人員發現Codex可能生成語法錯誤、引用未定義函數或變量、表面上正確但未真正完成任務的代碼。在安全相關示例中,模型可能選擇不安全的配置參數、推薦存在風險的依賴項,或生成帶有安全隱患的函數調用。該報道還提到,Codex同其他大型語言模型一樣,可能受到訓練數據中偏見和有害內容的影響。[5]
Codex還存在對用戶意圖理解不穩定的問題。由於自然語言提示本身可能含糊,用戶通常需要通過修改提示、補充上下文或人工檢查生成結果來獲得可用代碼。因此,Codex生成的內容一般仍需經過開發者審查、測試和安全檢查,不能直接視為可靠的最終程序。[1][3]
2023年3月,OpenAI關閉了通過API提供的舊Codex模型。OpenAI的API棄用文檔列出,code-davinci-002、code-davinci-001、code-cushman-002和code-cushman-001均於2023年3月23日停止服務。[4]
參見
[編輯]外部連結
[編輯]參考文獻
[編輯]- ^ 1.0 1.1 1.2 1.3 1.4 1.5 Zaremba, Wojciech; Brockman, Greg. OpenAI Codex. OpenAI. 2021-08-10 [2026-06-08]. (原始內容存檔於2026-07-19) (英語).
- ^ 2.0 2.1 Friedman, Nat. Introducing GitHub Copilot: your AI pair programmer. The GitHub Blog. GitHub. 2021-06-29 [2026-06-08]. (原始內容存檔於2026-07-22) (英語).
- ^ 3.0 3.1 3.2 3.3 Chen, Mark; Tworek, Jerry; Jun, Heewoo; Yuan, Qiming; Pinto, Henrique Ponde de Oliveira; Kaplan, Jared; Edwards, Harri; Burda, Yuri; Joseph, Nicholas. Evaluating Large Language Models Trained on Code. 2021. arXiv:2107.03374
[cs.LG].
- ^ 4.0 4.1 Deprecations. OpenAI API documentation. OpenAI. [2026-06-08]. (原始內容存檔於2026-07-03) (英語).
- ^ 5.0 5.1 Wiggers, Kyle. OpenAI warns AI behind GitHub's Copilot may be susceptible to bias. VentureBeat. 2021-07-08 [2026-06-08] (英語).
- ^ Alford, Anthony. OpenAI Announces 12 Billion Parameter Code-Generation AI Codex. InfoQ. 2021-08-31 [2026-06-08]. (原始內容存檔於2022-07-09) (英語).
- ^ Levy, Steven. OpenAI Is Making Coding As Easy As Talking to a Smart Speaker. Wired. 2021-08-13 [2026-06-08]. (原始內容存檔於2026-06-08) (英語).