首页 > 编程语言 >CodeGeeX2 模型全新上线,编程助手能力全面升级!

CodeGeeX2 模型全新上线,编程助手能力全面升级!

时间:2023-08-01 16:58:14浏览次数:41  
标签:代码生成 6B 上线 CodeGeeX 模型 编程 上下文 CodeGeeX2

第二代CodeGeeX代码生成模型CodeGeeX2-6B已于近日发布,并在CodeGeeX编程助手插件上全面上线。新模型基于 ChatGLM2-6B 架构加入代码预训练实现,精度更高、速度更快、能力更强。 下面我们一起来看一下新版模型给CodeGeeX编程助手带来的变化吧:

一、代码生成更快更精准,问答更智能

相比一代模型 ,CodeGeeX2-6B在代码生成的精度和速度上都有极大的提升。第一代CodeGeeX模型只能基于前文向后生成代码,而CodeGeeX2-6B可以实现根据上下文填空。这意味着在补全代码时,可以综合当前光标上下文的内容,更精准地补全代码。在新模型的支撑下,插件中的问答功能“Ask CodeGeeX”也得到了升级。原先的“Ask CodeGeeX”使用ChatGLM模型回答问题。更新后,该功能使用的模型换成了基于CodeGeeX2-6B微调得到的对话模型,在回答编程相关的问题时,比之前更专业、更智能。

二、支持更多编程语言

新版CodeGeeX支持的编程语言数量达到了100余种。除了Python、Java、JavaScript、GO等主流编程语言外,像Kotlin、Rust等编程语言的代码生成效果都获得了极大提升。对于前端程序员常用Vue等开发框架,新版模型的能力也得到了加强。新版本在自然语言生成SQL查询的场景里,也有惊艳的表现。在“Ask CodeGeeX”功能中,可根据指定的数据库表结构和查询需求,自动生成相应的 SQL 查询语句。

三、从8k到32k,更长的上下文支持

依托于ChatGLM2-6B基座模型,CodeGeeX2-6B支持的上下文长度提升到了32K。基于这一新特性,可以将当前工程中其他文件的内容也作为上下文引入,这使得模型在生成时可以更好地理解当前开发任务。基于32K上下文长度的特性,未来还会有更多新功能上线,敬请期待。

附:模型介绍与评测

CodeGeeX2 是多语言代码生成模型CodeGeeX的第二代模型。不同于一代模型,CodeGeeX2 是基于 ChatGLM2 架构加入代码预训练实现。得益于 ChatGLM2 的更优性能,CodeGeeX2-6B 在多项指标上取得较大的性能提升。CodeGeeX2-6B 更好支持中英文输入,支持最大 8192 序列长度,推理速度较一代 CodeGeeX-13B 大幅提升,量化后仅需6GB显存即可运行,支持轻量级本地化部署。

在 HumanEval 评测中,CodeGeeX2-6B的表现全面超越了参数规模更大的 StarCoder 模型以及 OpenAI 的 Code-Cushman-001 模型(GitHub Copilot 曾使用的模型)。

file

在多语言方面,新版 CodeGeeX 2 模型在 HumanEval-X 数据集评测中表现优异。相较于第一代,CodeGeeX2 的Pass@1 指标在各个语言上的平均表现提升了 107%。其中,Rust 语言的性能提升显著,提升了 321%;C++ 和 JavaScript 语言上的表现也提升了 70% 以上。

file

自 2022 年 9 月上线以来,CodeGeeX辅助开发人员提高编程效率,取得了显著成果。截至目前,CodeGeeX 插件下载量已超过 13 万,每日生成代码近千万行。升级后的CodeGeeX插件继续对个人用户免费开放。

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

标签:代码生成,6B,上线,CodeGeeX,模型,编程,上下文,CodeGeeX2
From: https://www.cnblogs.com/chattech/p/17596936.html

相关文章

  • 01-[Linux][Regulator]使用LDO编程示例
    1、在驱动代码中使用LDO供电操作的步骤如下:找到需要操作的LDO名字,如MTK平台:vio28在dts中找到相应的节点,如下所示:mt_pmic_vio28_ldo_reg:ldo_vio28{ regulator-name="vio28"; regulator-min-microvolt=<2800000>; regulator-max-microvolt=<2800000>; regulator-e......
  • udp接收上位机编程(2)彩色图像
    由于QT上位机只能接收BGR565的图像格式,且只能显示灰度或者RGB888,所以PL2PS的数据必须要变换位置,并使用cvtColor函数进行转换1voidMainWindow::recieve_dis(intudp_index)2{3Matrecv_img_2(img_h_size,img_w_size,CV_8UC2);4Matrecv_img_3(img_h_size,img_......
  • tf坐标系广播羽监听的编程实现
    创建功能包cd~/catkin_ws/srccatkin_create_pkglearning_tfroscpprospyturtlesimtf广播器和监听器代码如何实现一个tf广播器定义TF广播器(TransformBroadcaster)创建坐标变换值发布坐标变换(sendTransform)turtle_tf_broadcaster.cpp点击查看代码/***该例程产......
  • iTOP-i.MX6ULL开发板Qt 串口编程
    本章内容对应视频讲解链接(在线观看):QT上位机开发之串口助手(上)→B站搜索标题→【北京迅为】嵌入式学习之QT学习篇QT上位机开发之串口助手(下)→B站搜索标题→【北京迅为】嵌入式学习之QT学习篇本节我们使用Qt来编写一个简单的上位机。实验介绍:组装ui界面,使用Qt提供的串口类......
  • GO 编程模式:FUNCTIONAL OPTIONS
    在本篇文章中,我们来讨论一下FunctionalOptions这个编程模式。这是一个函数式编程的应用案例,编程技巧也很好,是目前在Go语言中最流行的一种编程模式。但是,在我们正式讨论这个模式之前,我们需要先来看看要解决什么样的问题。本文是全系列中第3/10篇:Go编程模式Go编程模式:切片,接口......
  • (Python编程)基本的内嵌技术
    ProgrammingPython,3rdEdition翻译最新版本见wiki:http://wiki.woodpecker.org.cn/moin/PP3eD欢迎参与翻译与修订。23.3.BasicEmbeddingTechniques23.3.基本的内嵌技术Asyoucanprobablytellfromtheprecedingoverview,thereismuchfl......
  • 记录每一天,流式编程 stream
    流式编程stream我以为遇到lambda已经够让我惊喜了,万万没想到stream的出现,才让我发现它才是函数式编程的主角。特点:无存储。stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/Ochannel等。对stream的任何修改都不会修......
  • 零基础应该如何学习计算机编程?
    一、编程的概念让我们简单介绍一下编程。编程是人与计算机之间的一种交流方式,通过编写一系列的程序指令,指导计算机执行相应的任务。专门从事编程工作的技术人员被称为程序员。在计算机领域,编程可以细分为许多技术方向。从整体上看,可以分为两类,即高层编程和低层编程。当......
  • 编程实现邮件地址有效性检测
    这个VB6COM组件提供了一项即时邮件查询的功能。它有效的避免了向一个不存在的账户发送邮件的情况。例如,在ASP页面里面检查用户输入的邮件地址是否正确,并避免在你的用户数据库里面存储相关的错误信息。主要内容工作原理让我们首先来看一下这个组件是如何进行工作的。首先给定一个E-......
  • (Python编程)目录工具
    ProgrammingPython,3rdEdition翻译最新版本见wiki:http://wiki.woodpecker.org.cn/moin/PP3eD欢迎参与翻译与修订。   4.3.DirectoryTools 4.3.目录工具Oneofthemorecommontasksintheshellutilitiesdomainisapplyinganoperationtoasetoffilesin......