近日,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