关于visual-studio-code:从0到1如何建立一个大规模多语言代码生成预训练模型

45次阅读

共计 2388 个字符,预计需要花费 6 分钟才能阅读完成。

国产 AI 辅助编程工具 CodeGeeX 是一个应用 AI 大模型为基座的辅助编程工具,帮忙开发人员更快的编写代码。能够主动实现整个函数的编写,只须要依据正文或 Tab 按键即可。它曾经在 Java、JavaScript 和 Python 等二十多种语言上进行了训练,并基于大量公开的开源代码、官网文档和公共论坛上的代码来优化本人的算法。CodeGeeX作为一款中国原创的 AI 辅助编程工具,当初收费提供给所有开发者应用,同时齐全开源,程序员应用普遍认为编写代码的效率晋升 2 倍以上。

外围性能包含:代码生成与智能补全、主动为代码增加中英文正文、在不同编程语言的代码之间实现精确翻译,包含刚刚更新的“Ask CodeGeeX”性能,是将智能问答模式,交融到理论开发场景中,让开发者更专一和沉浸于编程,不必来到以后 IDE 的编程环境,就能够边写代码边和 AI 对话,实现针对编程问题的智能问答。无需 waitlist,立即就能尝鲜这些外围性能!

大家看看在 CodeGeeX 上的体验是怎么的:

这里举荐各位收费下载应用 AI 辅助编程工具CodeGeeX

CodeGeeX的背地,是一个开源的大规模多语言代码生成模型。这个模型最大的特点就是全国产化实现。CodeGeeX 连贯了自然语言到代码的一个交互过程,用户是通过写正文的模式让它生成特定的代码,也能够把一种语言的代码翻译成另外一种语言的代码,或者为已有的代码加上一些正文。2022 年 9 月 CodeGeeX 开源插件收费凋谢应用,目前曾经有 10 万 + 程序员装置应用,下载量超过 270 万 + 次,每天为程序员生成超过数百万行代码。

那么,CodeGeeX背地的大规模多语言代码生成预训练模型是如何从 0 到 1 建设起来的?次要有以下几个步骤:

第一,大规模代码数据收集。训练的数据次要分为两个部位:一是,开源数据集。比方 The Pile 里的代码子集,以及 CodeParrot (Python)等;二是,额定爬取数据。从 GitHub 上爬优质的开源仓库并照一系列规定荡涤数据。最终整个语料库有 23 种编程语言,涵盖 Python,Java,C++,JavaScript,C,Go,HTML,Rust,C# 等支流语言,数据量超过 1580 亿 token。接下来,数据处理模式也非常简单,首先,将代码数据分词并标识符化,行将代码片段进行分词,失去 token 序列,再将 token 对应到词表中的 ID,失去 ID 序列;其次,就是为不同语言的文件加上语言标签,在通过充沛的学习当前,二十几种语言的语法模型是能够齐全把握。

第二,CodeGeeX 模型架构。CodeGeeX 模型基于 GPT 架构的自回归模型,由 40 层 transformer 组成,总计参数量达 130 亿。它应用自然语言或代码 token 作为输出,输入下一个 token 的概率,反对各种编程语言相干的上游工作,如代码生成、代码补全、代码翻译、代码正文等。同时,在架构实现的过程中做了许多设计,包含每一个算子须要用哪些精度,能力保障模型训练的稳定性等等。

第三,CodeGeeX模型训练。CodeGeeX基于华为 Mindspore 框架实现,总共用到了 1536 张昇腾 910AI 处理器,相当于 1500 多张 GPU,进行了长达两个月的训练。在混合精度训练方面,大部分的参数是用 FP16 作为精度,但在以往的实际中发现,如果全副的参数都是 FP16,在一些计算的节点上有些算子很容易有一个精度溢出,模型就会训崩掉,所以在 Layernorm、Softmax 中央会应用 FP32 保障稳定性。同时,训练采纳了一个并行训练的策略,就是 192 路数据并行和 8 路模型并行。在漫长训练之后,CodeGeeX 训练了 8500 亿的 token,基本上把 GitHub 上爬到的代码全副都见过了一遍。

第四,CodeGeeX 模型评估。如何正确评估代码生成的性能?过来比拟罕用多语言代码基准 CodeXGLUE,XLCoST 均应用 CodeBLEU/BLEU 作为评估指标,它其实是在算一个语义相似性,但在代码工作上并不能正确反映生成代码的品质,已不满足以后评估代码生成模型的需要。在模型评估上,CodeGeeX 把 HumanEval 数据集,也就是一个已有的 Python 数据集,扩大到了更多的语言上,包含 C++、Java、JavaScript、Go 等,造成了 HumanEval-X。这个数据集的特点就是,给模型输出包含必要的援用文件、形容做的是什么工作,而后可能会有一两个输入输出的例子让模型去把函数补全,就能够用曾经写好测试代码和测试用例去做一个自动化测试,就晓得模型写进去的代码到底正不正确。能够说,CodeGeeX 是目前均匀性能最好的开源多语言代码生成模型。

第五,CodeGeeX代码生成插件。将来让 CodeGeeX 模型真正实用化,开发了 VS Code/Jetbrains 上的主动代码生成插件,提供多种交互模式,反对代码生成、补全、翻译、正文等性能,收费应用,更好辅助程序员开发。咱们对上百名用户进行问卷调研,涵盖前后端工程师、算法工程师、学生、研究者等,83.4% 的用户认为CodeGeeX 插件有助于进步编程效率,但具体进步了多少还有待进一步钻研。同时,不同语言上的体现是不一样的,比方 PHP 语言就会弱一些,这也是今后晋升的指标,争取在更多的语言上达到更好的成果。

第六,CodeGeeX 开源开发计划。CodeGeeX 尽管是在昇腾上训练,但也移植到了英伟达,实现跨平台模型代码训练、微调、推理、测评代码等等,用户能够在官网申请下载,在本地就能够部署起一套跟CodeGeeX 基本上一样的一套流程。

像 MicroSoft Copilot、GitHub Copilot X、CodeGeeX 在 AIGC 利用场景会越来越多,并且极大地提高生产力。能够预感,人类正在减速通向 AGI 时代,在接下来几个月内必定有更多的产品状态进去,不必放心,拥抱变动就能够了。

正文完
 0