跳到正文
AI 图鉴

代码生成

用自然语言描述,直接写出可运行的代码

代码与软件入门 #33
输入文本代码

这项能力指什么

输入一段描述(如「写一个函数,把 CSV 读成字典列表并跳过空行」),输出相应的源码。与「代码补全」的区别是它面向一个新功能或整段逻辑,往往从零写出;与「推理」的区别是目标产物是可编译运行的代码,而不只是文字结论。

技术上如何做到

底座是在含大量代码的语料上预训练的语言模型,代码的严格语法让它比自然语言更容易通过执行来验证,因而适合用「跑单元测试」的奖励做强化学习或拒绝采样微调。训练与评测常用带测试用例的题目(如 HumanEval、MBPP),生成时可用多次采样再筛掉不通过的候选。

代表产品

11

相关机构

典型用途

  • 新功能与工具脚本编写
  • 数据清洗与转换脚本
  • 测试用例与脚手架生成
  • 语言与框架之间的迁移改写

怎么评价它好不好

pass@k
采样 k 次中至少一次通过全部单元测试的比例
基准通过率
在 HumanEval 等定式数据集上的通过比例
编译与静态检查通过率
生成代码能否直接通过编译器与类型检查

边界与难点

  • 会调用并不存在的库或方法,产生看似合理却无法运行的接口
  • 能通过单元测试但在边界条件、异常与安全上留下漏洞
  • 跨文件的改动不一致,函数签名在调用处与定义处对不上

背后的概念