乐趣区

关于自然语言处理:CodeGeeX论文发表揭秘AI辅助编程工具背后的大模型

近日,CodeGeeX 模型迭代 v1.5 版本上线,用户反馈模型成果和应用效率较之前有大幅晋升。

恰逢 CodeGeeX 团队在 arxiv 上公布了论文,具体介绍了 CodeGeeX AI 编程辅助工具背地的代码生成大模型的架构、训练过程及推理减速等工作。

明天咱们对这篇论文的外围信息进行解读,让更多的开发者理解 CodeGeeX 背地大模型的演进历程,以便更好的应用 CodeGeeX 作为开发者新一代的生产力工具。

基于 Transformer 的技术展示代码生成后劲

机器是否可能依据人类用意的形容,例如“编写一个阶乘函数”,主动生成解决该需要的可执行程序?这就是主动程序编写的问题,自 20 世纪 60 年代计算机科学的晚期就开始了各种摸索。

从「LISP-based pioneering deductive synthesis approaches」到「Modern Program Synthesis Systems」,再到通过深度神经网络进行摸索,为了使机器可能主动编写正确的程序,研究者们始终在寻找正确的方向。

直到 2020 年,基于 Transformer 的技术开始展现出主动生成代码的后劲,这些生成的代码既有语法正确性又具备上下文的一致性。紧接着,大规模语言模型,遇到了大规模开源代码数据,代码生成的停顿再次失去了显著的推动。

在这当中,十分值得咱们留神的是:OpenAI 的 Codex 模型,具备 120 亿(12B)参数。在 2021 年,首次展现出了在数十亿行公共代码上进行预训练后,大型代码生成模型的后劲。通过应用生成式预训练(GPT)策略,Codex 以很高的概率解决 Python 入门级编程问题。尔后,大型预训练的代码模型,失去了宽泛倒退。

CodeGeeX 模型的 3 个重要特点

本文的主人公:CodeGeeX 模型,是一个具备 130 亿参数的多编程语言代码生成预训练模型,齐全应用国产平台和框架实现,在 20 多种编程语言的代码语料库历时两个月训练而成。

CodeGeeX 对代码主动生成的钻研,在大语言模型正确的方向下,又与 Codex 有所不同,具备本人的特点:

首先,CodeGeeX 自身以及如何预训练这种规模的代码模型都是开源的,这有助于了解和推动预训练代码生成模型的倒退。CodeGeeX 还反对在 Ascend 和 NVIDIA GPU 上进行跨平台推理。

其次,除了像 Codex 和其余工具一样反对代码生成和代码补全之外,CodeGeeX 还反对代码解释和多语言之间的代码翻译工作。

第三,它在相似规模的出名多语言代码生成模型中,具备统一的性能劣势,这些出名模型包含 CodeGen-16B, GPT-NeoX-20B, InCode-6.7B, and GPT-J-6B 等。

CodeGeeX 还在多个 IDE 中构建了收费的 CodeGeeX 插件,包含 Visual Studio Code、JetBrains IDEs 和 Tencent Cloud Studio(Web IDE)。

它反对几种不同的模式——代码主动补全、函数级别生成、代码翻译、代码解释和可自定义提醒,以帮忙用户实时实现编程工作。

公布以来,每天都有数万名沉闷用户,每个用户均匀每个工作日发动 250 多个 API 调用。截至本文撰写时,CodeGeeX 模型每周生成 47 亿个 token。咱们的用户调研表明,83.4% 的用户认为 CodeGeeX 进步了他们的编程效率。

CodeGeeX 取得 HumanEval- X 的充沛验证

除了 CodeGeeX 模型外,团队还构建了多编程语言代码生成评估基准 HumanEval-X。HumanEval- X 是第一个反对性能正确性评测的多语言、多任务的基准,蕴含 820 个人工编写的高质量代码生成题目、测试用例与参考答案,笼罩 5 种编程语言(Python、C++、Java、JavaScript、Go),反对代码生成与代码翻译能力的评测。CodeGeeX 模型的能力在 HumanEval- X 失去充沛验证。

论文全文见:https://arxiv.org/abs/2303.17568

点击浏览原文,理解并试用基于 CodeGeeX 大模型的 AI 编程辅助工具(VS Code 插件,JetBrains IDEs 插件):https://codegeex.cn

退出移动版