
Codex 进化论:从代码补全到自主编程
从一行代码到一个系统 2021 年,当 OpenAI 首次展示 Codex 时,它只是 GitHub Copilot 背后那个"会补全代码的模型"。五年后的今天,Codex 已经演化为一个能够理解项目级上下文、自主规划开发任务、甚至执行调试和重构的编程智能体。这段进化之路,不仅是模型能力的提升史,更是代码智能体范式的变迁史。 第一阶段:代码补全的黎明(2021-2022) 1.1 从 GPT-3 到 Codex Codex 的起点是 GPT-3 的微调版本。OpenAI 用公开的 GitHub 代码仓库作为训练语料,使模型学会了从自然语言描述生成代码的能力。最初的 Codex 展示了令人惊艳的单行代码补全能力: # 输入: 计算列表中所有偶数的和 # Codex 输出: def sum_of_evens(lst): return sum(x for x in lst if x % 2 == 0) 但这时的 Codex 有明显的局限: 上下文窗口短:仅支持 4K tokens,无法理解大型文件 无项目级理解:每个补全请求都是孤立的,不知道项目的整体结构 容易产生语法正确但逻辑错误的代码:模型学会了代码的"形状",但不理解"语义" 1.2 Copilot 的爆发 GitHub Copilot 的上线让 Codex 走入了数百万开发者的日常工作流。用户反馈很快暴露了一个核心矛盾:代码补全的准确率在 60%-70% 之间徘徊,这意味着每三行补全代码就有一行需要修改。 这个瓶颈的本质是:代码生成不仅仅是语言建模问题,更是类型推理、约束满足和领域知识的综合问题。 第二阶段:从补全到生成(2022-2023) 2.1 指令微调的突破 随着 InstructGPT/ChatGPT 的成功,OpenAI 将指令微调(Instruction Tuning)和 RLHF(人类反馈强化学习)技术应用到 Codex 上。这带来了质的飞跃: 模型不再只是"续写"代码,而是能理解"写一个函数来…“这样的指令 多步推理能力显著增强,可以分解复杂任务 代码解释能力出现:模型能用自己的话解释生成的代码 2.2 函数级生成的成熟 这个阶段的 Codex 已经可以可靠地完成函数级代码生成任务。在 HumanEval 基准测试上,pass@1 从最初的 28.8% 提升到了 72.3%。但"函数级"仍然是一个巨大的限制——真实的软件开发不是写一百个独立函数,而是在一个复杂的代码库中添加功能、修复 bug、重构架构。 ...