OpenAI 评估在代码上训练的大语言模型 Codex
Evaluating Large Language Models Trained on Code
论文速读
据论文全文整理(AI 生成),以原文为准
OpenAI 发布 Codex 论文,介绍在从 5400 万个 GitHub 公开仓库收集的 Python 代码上微调的 GPT 语言模型,并评估其 Python 代码编写能力,其一个生产版本驱动 GitHub Copilot。
- 研究能否用大规模语言模型从自然语言 docstring 生成功能正确的 Python 函数代码,并评估其能力、局限与更广泛影响。
- 在 GitHub 公开 Python 代码上微调 GPT 模型得到 Codex,用功能正确性(单元测试)而非文本匹配评估;构建 164 题 HumanEval 数据集与 pass@k 指标,并用竞赛题和 CI 追踪数据做监督微调得到 Codex-S,另训练由代码生成 docstring 的 Codex-D。
- Codex-12B 单样本解决 28.8% 的 HumanEval 问题,GPT-3 接近 0%;Codex-S 单样本 37.7%,每题采样 100 个并用单元测试筛选可达 77.5%。按平均对数概率选样本优于随机;BLEU 分数无法可靠区分正确与错误解。模型在长链操作 docstring、变量与操作绑定、系统级规格上表现明显下降,且会生成不安全或带偏见的代码。
- 训练样本效率低,模型在长 docstring 链和变量绑定上易错,可能生成不安全、有偏见或与用户意图不一致的代码;作者提出需要人工监督、输出过滤、数据筛选、RLHF 等缓解手段,并呼吁进一步研究对齐度量、安全与经济影响。
OpenAI 发布 Codex 论文,介绍在从 5400 万个 GitHub 公开仓库收集的 Python 代码上微调的 GPT 语言模型,并评估其 Python 代码编写能力,其一个生产版本驱动 GitHub Copilot。论文同时发布含 164 道手写编程题的 HumanEval 基准,以单元测试衡量功能正确性,Codex-12B 单样本解决 28.8% 的问题,GPT-3 为 0%,GPT-J 为 11.4%,每题采样 100 个时 Codex-S 可解决 77.5%。模型在描述长操作链的 docstring 上性能随链长指数下降,且难以将操作绑定到变量。论文还给出危害分析,涵盖过度依赖、对齐失败(提示词含细微错误时模型越大越倾向沿袭错误)、偏见、安全与经济影响,并建议以文档、代码审查和输出过滤等措施降低风险。
推荐理由论文在能力评测之外给出危害分析,记录了提示词含细微错误时 Codex 倾向沿袭错误且模型越大越明显的对齐失败观察。