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

国产AI辅助编程工具CodeGeeX是一个使用AI大模型为基座的辅助编程工具,帮助开发人员更快的编写代码。可以自动完成整个函数的编写,只需要根据注释或Tab按键即可。它已经在Java、JavaScript和Python等二十多种语言上进行了训练,并基于大量公开的开源代码、官方文档和公共论坛上的代码来优化自己的算法。CodeGeeX作为一款中国原创的AI辅助编程工具,现在免费提供给所有开发者使用,同时完全开源,程序员使用普遍认为编写代码的效率提升2倍以上。

核心功能包括:代码生成与智能补全、自动为代码添加中英文注释、在不同编程语言的代码之间实现准确翻译,包括刚刚更新的“Ask CodeGeeX”功能,是将智能问答模式,融合到实际开发场景中,让开发者更专注和沉浸于编程,不用离开当前 IDE 的编程环境,就可以边写代码边和 AI 对话,实现针对编程问题的智能问答。无需waitlist,立刻就能尝鲜这些核心功能!

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

file

这里推荐各位免费下载使用AI辅助编程工具CodeGeeX

CodeGeeX的背后,是一个开源的大规模多语言代码生成模型。这个模型最大的特点就是全国产化实现。CodeGeeX 连接了自然语言到代码的一个交互过程,用户是通过写注释的形式让它生成特定的代码,也可以把一种语言的代码翻译成另外一种语言的代码,或者为已有的代码加上一些注释。2022年9 月 CodeGeeX 开源插件免费开放使用,目前已经有10万+程序员安装使用,下载量超过270万+次,每天为程序员生成超过数百万行代码。

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

第一,大规模代码数据收集。 训练的数据主要分为两个部位:一是,开源数据集。比如 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 时代,在接下来几个月内肯定有更多的产品形态出来,不用担心,拥抱变化就可以了。

本文由博客一文多发平台 OpenWrite 发布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352420.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】打包与发布(Packaging and distributing projects)

以Unix/macOS系统为例。 前提准备:确保pip为最新版本,可使用以下命令来更新pip: python3 -m pip install --upgrade pip一、创建一个简单的项目 我们在目录packaging_tutorial下进行操作。 项目名称为:example_package_wayne。 …

2023国际管理会计教育联盟发展论坛在沪成功召开

2023年5月7日,由教育部中外人文交流中心、国际管理会计教育联盟(下称“联盟”)主办,中国商业会计学会、上海交通大学安泰经济与管理学院承办的2023国际管理会计教育联盟发展论坛(下称“发展论坛”)在上海成…

系统架构师之高内聚低耦合

一、概念: 标记耦合(Stamp Coupling)和数据耦合(Data Coupling)是软件设计中两种不同的耦合类型,它们之间的区别如下: 标记耦合:标记耦合是指模块之间通过参数传递标记或标识符来进…

怎样把m4a转换成mp3格式?

怎样把m4a转换成mp3格式?大家都知道m4a音频格式兼容性差,这已成为许多小伙伴头疼的问题,因为很多人不会m4a转mp3的方法,从而导致m4a音频无法正常播放。在过去,想把m4a转换成mp3格式确实有一定的难度,但是如…

m4a怎么转换成mp3格式?

最近总有伙伴问我:“小编,m4a怎么转换成mp3格式?有没有什么简单有效的方法”。其实要想把m4a转换成mp3格式,转换工具就是钥匙,有了这把钥匙你就能更快地打开m4a转mp3格式的大门了。所以,选择好转换工具&…

如何快速的把m4a转换成mp3格式

无论是把m4a转换成mp3格式,还是把其他别的格式转换成mp3格式,一直都是有搜索热度的问题。虽然近两年把m4a转换成MP3的解决方法有很多,但是依旧满足不了小伙伴们寻找转换方法的现状。最主要的原因不是大家找不到转换成MP3的方法,而…

怎样把m4a转换mp3格式?

怎样把m4a转换mp3格式?m4a是苹果手机上的录音文件格式,随着苹果手机的广泛普及,m4a音频文件使用也越来越多,有的小伙伴将m4a音频文件转载到电脑上后,会因为兼容性的问题导致m4a文件不能打开播放。由于m4a是苹果公司开发…

m4r是什么文件格式?m4r怎么转成mp3?

你知道m4r是什么文件格式吗?如果你不知道是正常的,因为它真的太少见了,其实m4r是iPhone铃声的一种音频格式,简单的说m4就是音质音频文件的格式,并且实在iPhone手机上使用。如果你是安卓手机,是不能打开这种…

如何将录音m4a转换为mp3格式?

如何将录音m4a转换为mp3格式?前段时间由于工作原因,需要上传录音文件到一个网站上,可是这个录音文件怎么也上传不上去,查看原因后才发现原来网站只支持mp4的音频文件,而我是用苹果手机录音的,录音文件是m4a…

m4a怎么转换mp3格式?详细的步骤

有经常下载歌曲的小伙伴们,一定遇到过m4a格式的音频文件,这种格式的音频文件因为自身适配性的原因,导致很多播放器是无法对其进行正常播放,所以用户要想使用此格式的视频,就不得不把它转成主流格式mp3,这样…

m4a音频转换mp3格式的方法

很多朋友都在问m4a音频转换mp3格式的方法这个问题,小编根据大家的实际要求和诉求在网上寻找了很多的m4a转换成mp3的方法,这些方法都可以将m4a转换成mp3,但是在速度和稳定性方面有所差异。尤其是在使用的软件方面,每个软件中所具备…

m4a格式怎么转换成mp3,非常简单

m4a格式怎么转换成mp3?m4a是一种文件的扩展名,确切的说是一种音频文件格式。 为了区分mpeg-4中的音频和视频文件,苹果率先使用m4a格式替换了mpeg-4中的音频文件扩展名。 因为m4a主要应用于苹果手机,苹果手机的用户量很大&#xff…

如何把m4a转换成mp3?音频格式转换步骤

最近有好多朋友反映自己手机录音机里文件是m4a格式的,那这样m4a格式的音频在音响,播放器或者很多别的软件中都是无法进行播放的,而且m4a格式的音频在传输中还会受到一定的限制,这个时候我们就需要把m4a转换成常用的Mp3音频格式来完…

m4r转mp3格式用什么音频转换器好

经常玩弄铃声制作的童鞋也许比较清楚m4r是什么格式,m4r是iphone铃声的一种音频格式,在国内的一些iPhone铃声资源站或者是苹果iTunes上都是有得下载,不过对于安卓或者非ios系统的手机来说,它们并不支持m4r格式音频,这个…

如何将mp4视频转换成m4r音频

把mp4转换成m4r格式,很明显,mp4是视频格式,m4r是音频格式,视频转音频!还可以说成是提取视频中的音频或声音,其实这种需求在用户当中还是有一些的,比如需要提取某部电脑里面某段声音,…

m4s格式转换mp3_高质量音频转换器,如何转换成mp3音频格式

日常生活中,听歌的朋友们肯定少不了在某系歌曲平台下载歌曲,不同的音质或者不同的平台都有自己特有的格式,有时我们想要在出门的时候在手机播放或者开车的时候在车载设备播放歌曲,那么有些播放器会对格式有有求,一般MP…

如何将M4A格式的音频转换为MP3格式?只需一步搞定

随着网络技术的发达,会有很多人喜欢在网上下载东西,特别是很喜欢在网上下载音乐,但是下载音乐之后发现是M4A格式?这样用起来很不方便,都喜欢MP3格式的,那么如何将M4A格式的音频转换为MP3格式?今…

m4a转如何快速转换为wav格式呢

大家都知道,华为手机的录音格式一般是m4a格式,如果我们录了一段比较有趣的音频,分享给朋友,但是对方由于手机型号不同,无法打开,那岂不是很可惜?M4A格式的音质很好,各方面都不错&…

mp3怎么转换成m4r

很多人都了解mp3格式,但是有很多人不了解m4r格式是什么,这里小编先给大家普及一下,m4r是iPhone铃声的一种音频格式。iphone系统自带来电铃声包括马林巴琴、弹簧声、颤音、弹球声、钢琴重复段、狗吠、吉他扫弦等25个铃声,格式为m4r…

如何将MP3格式音乐转换成M4R格式

MP3是非常标准的音频数字编码格式。区别于其他格式的优势在于,它可以在不降低音质的前提下,大幅的降低文件的大小。因此MP3格式应用范围极广,我们日常生活中用到的歌曲格式也多为MP3。市面上几乎所有的电子设备都可以识别并播放此种格式文件&…