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

news2024/9/25 23:23:02

近日,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 发布!

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

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

相关文章

【从零开始学Skynet】实战篇《球球大作战》(三):封装常用的API

为什么要封装?封装可以减少一些重复代码,提高我们的工作效率。 1、定义属性 新建文件lualib/service.lua,定义模块的属性, service模块是对Skynet服务的一种封装,代码如下所示: local skynet require &qu…

Linux 下编译 thrift

thrift编译需要依赖 openssl,首先按照文章《Openssl在Linux下编译/交叉编译》编译openssl。 网上有文章说thrift编译还需要依赖Boost,libevent,但是我发现不依赖这两个库也能把thrift编译出来。在 https://github.com/apache/thrift/releases…

R -- 二分类问题的分类+预测

brief 分类大致分为有监督分类和无监督分类,这里学习有监督分类。有监督分类一般包括逻辑回归、决策树、随机森林、支持向量机、神经网络等。 有监督学习基于一组包含预测变量值和输出变量值的样本单元。然后可以将全部数据分为一个训练数据集和一个验证数据集&…

【好刊推荐】知名出版社影响因子7+被踢出SCI,投稿前如何选期刊?

今年3月Hindawi旗下的19本期刊被SCIE剔除,其中有一本影响因子7,以下从期刊各个指标方面分析一下具体原因: 期刊剔除:影响因子7 期刊简介 期刊名称: OXIDATIVE MEDICINE AND CELLULAR LONGEVITY ISSN / eISSN&#…

Stacking算法预测银行客户流失率

Stacking算法预测银行客户流失率 描述 为了防止银行的客户流失,通过数据分析,识别并可视化哪些因素导致了客户流失,并通过建立一个预测模型,识别客户是否会流失,流失的概率有多大。以便银行的客户服务部门更加有针对…

Android桌面长按图标快捷方式——Shortcuts

简介 当我们在长按Android应用的桌面图标时,一般回弹出一个列表,上面一般有应用信息、卸载应用等功能,并且部分应用在这里还添加了自己的快捷方式,今天主要介绍如何添加自定义的快捷方式。 长按桌面显示的快捷方式在Android中叫…

中小企业面临怎样的数字化转型局面

当前,我国经济长期向好的基本面没有改变,但承受着“需求收缩、供给冲击、预期减弱”的三重压力,中小企业的数字化转型之路较之以往更加艰难、曲折。为帮助中小企业纾困解难、平稳渡过危机,需进一步优化政策“组合拳”,…

单片机中常用的轻量级校验算法

UART有一个奇偶校验,CAN通信有CRC校验。Modbus、MAVlink、USB等通信协议也有校验信息。 在自定义数据存储时,有经验的工程师都会添加一定校验信息。 你平时通信,或者数据存储时,你有用到校验信息吗?下面就介绍几种常见…

Java面试题总结 | Java面试题总结3-JVM模块(持续更新)

JVM 文章目录JVMJVM的内存组成模型java的内存模型定义了什么java的内存分布情况程序计数器是什么?堆、栈、方法区都存放的是什么堆和栈的区别类加载JMM主内存和本地内存交互操作volatile如何保证可见性volatile如何保证有序性happen-before了解过吗?内存…

【JS】BOM 详解(工作必备)

文章目录BOM一、History (浏览器记录)1.1、history.go(指定页)1.2、history.back(上一页)1.3、history.forword(下一页)二、Location(浏览器地址)2.1、操作属…

基于OpenCV的图片和视频人脸识别

目录 🥩前言 🍖环境使用 🍖模块使用 🍖模块介绍 🍖模块安装问题: 🥩人脸检测 🍖Haar 级联的概念 🍖获取 Haar 级联数据 🍗 1.下载所需版本 🍗 2.安…

前后端不分离项目如何使用elementUI

首先,去官网下载element 的js和css和字体等文件 其次,分别将js和css 引入到项目 然后就可以使用了,使用方法和vue中使用element方法一致、

5款最新最实用的小软件,让你的工作和生活更轻松

我喜欢发现和分享一些好用的软件,我觉得它们可以让我们的工作和生活更加轻松和快乐。今天给大家介绍五款我最近发现的软件, GIF录制工具——Screen To Gif Screen To Gif是一款完全免费的GIF录制神器,可以让你轻松地录制屏幕、摄像头或画板…

学生信息管理案例

效果图: 业务模块: 点击录入按钮可以录入数据点击删除可以删除当前的数据 注意:本次案例,我们尽量减少dom操作,采用操作数据的形式。增加和删除都是针对数组的操作,然后根据数组数据渲染页面 核心思路:…

5款办公神器软件推荐:提高效率,享受分享

给大家分享一些优秀的软件工具,是一件让人很愉悦的事情,今天继续带来5款优质软件。 图床管理——PicGo PicGo是一款图床管理工具,可以快速上传图片到各种图床,并生成链接。你可以使用PicGo来管理你的图片资源,或者作为Markdown编…

STM32F4_定时器输入捕获详解

目录 1. 输入捕获简介 2. 输入捕获框图 3. 输入捕获模式 4. 相关寄存器 4.1 TIMx_ARR、TIMx_PSC 4.2 捕获/比较寄存器1:TIMx_CCMR1 4.3 捕获/比较使能寄存器 TIMx_CCER 4.4 中断使能寄存器 TIMx_DIER 5. 库函数配置输入捕获高电平脉冲宽度 6. 实验程序 6…

【4.14】今天讲两道TCP面试题

文章目录TCP Keepalive 和HTTP Keep-Alive是一个东西吗?TCP协议有什么缺陷TCP Keepalive 和HTTP Keep-Alive是一个东西吗? 对于这个问题,我们要先知道这两个KeepAlive分别代表什么? TCP的Keepalive是由TCP层(内核层&a…

移远通信率先通过ISO/SAE 21434汽车网络安全管理体系认证

近日,移远通信车载前装BU获得了由国际独立第三方检测、检验和认证机构TV NORD颁发的ISO/SAE 21434汽车网络安全管理体系认证证书。 ISO/SAE 21434标准认证的通过,表明移远通信车载前装BU的网络安全风险管理满足了产品从概念设计、开发、生产、运营到售后…

我的面试八股(数据库)

数据库范式? 数据库范式有三种 1NF 第一范式,属性(对应表中的字段)不能再分割,就是这个字段只能是一个值,不能再分为多个其它字段了,1NF是所有关系型数据库的最基本要求。 2NF 第二范式&am…

Spring Security 02 搭建环境

搭建环境 导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency><groupId>org.springframework.boot</groupId><artifa…