首页 > 编程语言 >CodeGeeX论文发表:揭秘AI辅助编程工具背后的大模型

CodeGeeX论文发表:揭秘AI辅助编程工具背后的大模型

时间:2023-04-12 12:23:32浏览次数:41  
标签:代码生成 CodeGeeX 训练 AI 模型 编程 揭秘 代码

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

file

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

file

今天我们对这篇论文的核心信息进行解读,让更多的开发者了解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有所不同,具备自己的特点:

file

首先,CodeGeeX本身以及如何预训练这种规模的代码模型都是开源的,这有助于理解和推进预训练代码生成模型的发展。CodeGeeX还支持在Ascend和NVIDIA GPU上进行跨平台推理。

file

其次,除了像Codex和其他工具一样支持代码生成和代码补全之外,CodeGeeX还支持代码解释和多语言之间的代码翻译任务。

第三,它在类似规模的知名多语言代码生成模型中,具有一致的性能优势,这些知名模型包括 CodeGen-16B, GPT-NeoX-20B, InCode-6.7B, and GPT-J-6B 等。

file

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

它支持几种不同的模式——代码自动补全、函数级别生成、代码翻译、代码解释和可自定义提示,以帮助用户实时完成编程任务。

file

发布以来,每天都有数万名活跃用户,每个用户平均每个工作日发起250多个API调用。截至本文撰写时,CodeGeeX模型每周生成47亿个token。我们的用户调研表明,83.4%的用户认为CodeGeeX提高了他们的编程效率。

file

CodeGeeX获得HumanEval-X的充分验证

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

file

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

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

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

标签:代码生成,CodeGeeX,训练,AI,模型,编程,揭秘,代码
From: https://www.cnblogs.com/chattech/p/17309393.html

相关文章

  • MFC-GetMainWnd获取主窗口指针
     CWinApp*pwin=AfxGetApp();//获取当前应用进程的指针CWnd*pWnd=pwin->GetMainWnd();//获取主窗口指针CGetMainWndDlg*pDlg=(CGetMainWndDlg*)pWnd;//主窗口指针转化成对话框类指针pDlg->SetWindowText(_T("练习"));CWnd*pWnd1=pWn......
  • springcloud gateway根据服务名称进行路由失败There was an unexpected error (type=S
    出现错误,如下图:解决办法:检查自己的yaml文件:server:port:88spring:application:name:applicationNamecloud:nacos:discovery:server-addr:127.0.0.1:8848gateway:#开启服务发现路由(不开启跨域问题可能无法解决)disco......
  • 玖章算术CEO叶正盛在数据技术嘉年华分享NineData AIGC的应用实践
    4月8日下午,为期两天的第十二届数据技术嘉年华(DTC2023)在北京新云南皇冠假日酒店圆满落下帷幕。大会得到了工业和信息化部电子五所的支持和指导,围绕“开源·融合·数字化——引领数据技术发展,释放数据要素价值”这一主题,通过一场主论坛和十二场专题论坛,汇聚“产学研”各界数据技术......
  • AIOPS开源项目概览
     StudyingtheCharacteristicsofAIOpsProjectsonGitHub 该论文研究AIOps开源项目的情况,直接看结论,使用语言,主要python,其次是java 输入的数据可以看出AIOPS主要是针对监控数据,这个本身很直觉  使用算法经典的ML算法占了一半,说明当前落地的AIOPS项目仍......
  • 网络框架重构之路plain2.0(c++23 without module) 综述
    最近互联网行业一片哀叹,这是受到三年影响的后遗症,许多的公司也未能挺过寒冬,一些外资也开始撤出市场,因此许多的IT从业人员加入失业的行列,而且由于公司较少导致许多人求职进度缓慢,很不幸本人也是其中之一。自从参加工作以来,一直都是忙忙碌碌,开始总认为工作只是为了更好的生活,但是一......
  • OpenAI Translator Bob Plugin Bob for Mac上一款基于ChatGPT全局翻译、润色、语法修
    OpenAITranslatorBobPlugin一款可以在Bob进行即时翻译的插件。它基于OpenAI的GPT系列模型,能够提供高质量、准确的翻译服务。该插件支持多种语言的翻译,包括中文、英文、法语、德语、日语等。用户只需在页面中选中需要翻译的文本,然后点击插件图标即可进行翻译。此外,该插件......
  • C++ Traits的笔记
    traits意思为特性,特点在C++中用于提取类型信息#include<type_traits>type_traits库中有std::is_same可以判断两个类型是否相同先看一下使用模板提取类型信息,就是多做一层封装在使用模板的过程中假设函数中有必要声明一个变量,要和迭代器所指向的对象类型相同template<class......
  • 云边端协同EasyCVR视频融合平台AI检测图片显示不全的原因排查与解决
    EasyCVR视频融合平台基于云边端协同架构,具有强大的数据接入、处理及分发能力,平台支持AI算力接入,借助AI智能分析网关,可以实现多种场景下的AI智能检测与识别,比如:人脸检测/识别、车辆检测/识别、车牌识别、烟火检测、安全帽检测、区域入侵检测等。有用户反馈,开启AI推送,但是图片在平......
  • 微信小程序开发——getLocation:fail the api need to be declared in the requiredPr
    getLocation:failtheapineedtobedeclaredintherequiredPrivateInfosfieldinapp.json/ext.json异常解析:app.json中没配置requiredPrivateInfos参数,按下边示例代码配置即可。示例代码:{..."permission":{"scope.userLocation":{"desc&qu......
  • AI智能安防监控EasyCVR视频融合平台播放鉴权功能的介绍及配置
    EasyCVR视频融合平台基于云边端协同架构,支持海量视频汇聚管理,在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等。平台可支持多协议接入,包括市场主流标准协议与厂家私有协议及SDK,如:国标GB28181、RTMP、......