OpenAI Codex是OpenAI开发的人工智能代码生成模型,主要用于根据自然语言提示生成、补全和修改程序代码。OpenAI于2021年8月发布Codex,并通过API私人测试版提供访问。Codex基于GPT-3系列模型进一步训练,训练数据包括自然语言文本以及来自公开来源的源代码;OpenAI称,该模型在Python上的表现最强,同时也能处理JavaScript、Go、PHP、Ruby、Swift、TypeScript和Shell等十余种编程语言。
Codex曾作为GitHub Copilot早期版本的底层模型。GitHub在2021年6月发布Copilot技术预览版时称,Copilot由GitHub与OpenAI合作开发,并由OpenAI Codex提供支持,可根据开发者正在编辑的代码上下文建议整行代码或函数。 OpenAI等人在论文《Evaluating Large Language Models Trained on Code》中将Codex描述为在公开可用的GitHub代码上微调的GPT语言模型,并提出HumanEval基准,用于评估模型根据文档字符串合成程序的功能正确性。
2023年3月,OpenAI弃用了通过API提供的Codex模型。OpenAI的API弃用文档列出的code-davinci-002、code-davinci-001、code-cushman-002和code-cushman-001等模型,关闭日期均为2023年3月23日。 后来,OpenAI继续将“Codex”用于代码相关产品名称,包括2025年推出的Codex CLI和云端软件工程代理;这些产品与本文所述的2021年代码生成模型不同。 据VentureBeat和InfoQ报道,OpenAI从约5400万个公开GitHub仓库中收集Python文件,经筛选后形成约159 GB的训练数据集。
Codex的主要用途是根据自然语言提示生成或补全代码。例如,用户可以在编辑器中输入描述性注释,要求程序“计算给定窗口大小的数组移动平均值”,模型随后生成可能满足该要求的代码片段。OpenAI将Codex定位为通用编程模型,称其可用于代码生成、代码翻译、代码解释和重构等任务,但结果会因任务而异。
局限性
Codex生成的代码并不总是正确或安全。OpenAI等人在论文中指出,Codex在处理需要较长操作链的文档字符串时表现较弱,也可能错误地绑定变量或操作。论文还讨论了代码生成模型在安全、经济和滥用方面的潜在影响。
VentureBeat报道,OpenAI研究人员发现Codex可能生成语法错误、引用未定义函数或变量、表面上正确但未真正完成任务的代码。在安全相关示例中,模型可能选择不安全的配置参数、推荐存在风险的依赖项,或生成带有安全隐患的函数调用。该报道还提到,Codex同其他大型语言模型一样,可能受到训练数据中偏见和有害内容的影响。
Codex还存在对用户意图理解不稳定的问题。由于自然语言提示本身可能含糊,用户通常需要通过修改提示、补充上下文或人工检查生成结果来获得可用代码。因此,Codex生成的内容一般仍需经过开发者审查、测试和安全检查,不能直接视为可靠的最终程序。
2023年3月,OpenAI关闭了通过API提供的旧Codex模型。OpenAI的API弃用文档列出,code-davinci-002、code-davinci-001、code-cushman-002和code-cushman-001均于2023年3月23日停止服务。
参见
- OpenAI
- ChatGPT
- GitHub Copilot
- Transformer模型
- GPT-3
- LaMDA
- 深度学习
- 程序合成
外部链接
*
参考文献
评论 (0)