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) (英语).