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
本文由博客一文多发平台 OpenWrite 发布!