专栏名称: 学术头条
致力于科学传播和学术分享,关注计算机科学、认知科学、人工智能科学、神经科学、脑科学等学科领域。我们从跨学科的角度,围绕“认知智能”向科学界和大众介绍相关领域的前沿话题和深度解读。
目录
相关文章推荐
LCA  ·  一棵树,让我觉得安静 ·  19 小时前  
康石石  ·  我在金匠找到了自己! ·  23 小时前  
桂林晚报  ·  刚刚开幕,免费开放! ·  昨天  
康石石  ·  25年国家级A类竞赛变化一览! ·  2 天前  
51好读  ›  专栏  ›  学术头条

CodeGeeX第四代模型正式发布,同期开源!

学术头条  · 公众号  ·  · 2024-07-05 16:00

正文


CodeGeeX 是智谱AI 旗下的代码生成大模型,自 2022 年 9 月第一代模型 发布 ,以每半年更新一代模型的迭代速度不断进化,致力于 探索大模型代码生成能力的上限 。基于模型打造的 CodeGeeX 智能编程助手,不仅支持代码补全、代码注释、代码修复、代码翻译等基础功能,还支持联网代码问答、代码解释器、检索增强等进阶实用功能。CodeGeeX 对个人用户完全免费 ,在各种主流 IDE 均可免费下载使用。

目前 CodeGeeX 的个人用户数量已经超过 100 万 ,企业版本也已经广泛应用于科技、金融、医疗和制造等多个行业,在中国信通院组织的代码大模型首轮评估中获得 当前最高评级 ,成为国内首批通过该项评估的大模型之一。

为了让更多人体验到 CodeGeeX 的强大能力,我们正式发布 CodeGeeX4 系列模型的开源版本:CodeGeeX4-ALL-9B ,其是集代码补全和生成、代码问答、代码解释器、工具调用、联网搜索、项目级代码问答等能力于一体的代码大模型,是目前 百亿(10B)参数以下性能最强、最全能的代码大模型


模型的核心功能 Demo 和使用教程已经在 GitHub 上开源,模型权重可在 HuggingFace、ModelScope、WiseModel 等大模型平台下载。

GitHub:
https://github.com/THUDM/CodeGeeX4
HuggingFace:
https://huggingface.co/THUDM/codegeex4-all-9b
ModelScope:
https://modelscope.cn/models/ZhipuAI/codegeex4-all-9b
WiseModel:
https://wisemodel.cn/models/ZhipuAI/codegeex4-all-9b


一、CodeGeeX4-ALL-9B:
百亿参数以下性能最强的全能代码模型

CodeGeeX4-ALL-9B 作为最新一代 CodeGeeX4 系列模型的开源版本,在 GLM-4 强大语言能力的基础上继续迭代,大幅增强代码生成能力。使用 CodeGeeX4-ALL-9B 单一模型,即可支持代码补全和生成、代码解释器、联网搜索、工具调用、仓库级长代码问答及生成等全面功能,覆盖了编程开发的各种场景。

CodeGeeX4-ALL-9B 在多个权威代码能力评测集,如 NaturalCodeBench、BigCodeBench 上都取得了极具竞争力的表现,是百亿参数量级以下性能最强的模型,甚至 超过数倍规模的通用模型 ,在推理性能和模型效果上得到最佳平衡。

1. 性能表现评测

BigCodeBench 测试结果显示,CodeGeeX4-ALL-9B 在同等尺寸下效果最好:


在其他代码生成、补全、推理测试集上,CodeGeeX4-ALL-9B 取得了与更大规模模型接近的水平:


2. CodeGeeX4-ALL-9B 上下文处理能力达到了 128K,相较于上一代模型增长 8 倍!

对于参数量 10B 以下的代码大模型,从海量的代码中准确提取信息是一个关键性的挑战。CodeGeeX4-ALL-9B 升级支持 128K 上下文,使其能够处理和利用更长代码文件、甚至是项目代码中的信息,有助于模型更深入理解复杂和细节丰富的代码。基于更长的上下文,CodeGeeX4-ALL-9B 可以处理更复杂的项目级任务,在输入显著变长的情况下,依然能准确回答不同代码文件中的内容,并对代码作出修改。

在“大海捞针”(Needle In A Haystack, NIAH)评估中,CodeGeeX4-ALL-9B 模型展示了其在处理长达 128K 的上下文中进行代码的嵌入和检索能力,实现了 100% 的检索准确度


上面这张图,表现的是在一个全部由 Python 代码组成的测试集中,插入一个赋值语句,如:zhipu_codemodel = "codegeex"(Needle)。 测试模型是否可以正确回答出 zhipu_codemodel 的值,CodeGeeX4-ALL-9B 100% 完成任务。

3. CodeGeeX4-ALL-9B 支持 Function Call 能力

CodeGeeX4-ALL-9B 是目前 唯一一个实现 Function Call 的代码大模型

Berkeley Function Calling Leaderboard 是第一个可全面评估大模型函数调用能力的测试集。其中 AST 数据集是评估模型对 Java、JavaScript、Python 程序的调用能力;Excecutable 数据集是评估模型对真实场景 API 的函数调用能力。

CodeGeeX4-ALL-9B 在 Berkeley Function Calling Leaderboard 上进行了全面的测试,包括各种形式的函数调用、不同的函数调用场景以及函数调用可执行性的测试,得到了以下结果:在 AST 和 Exec 测试集中调用成功率超过 90%。



二、插件功能全面进入项目级辅助编程

最新的CodeGeeX插件v2.12.0版本,已经全面接入了第四代模型。先来看看进阶的 「编程超能力」

CodeGeeX4-ALL-9B的生成速度全面超越上一代模型,实现3倍速生成,首响速度提高了8倍以上,是目前速度最快的一代模型。

毫秒级生成速度,为实现项目级辅助编程奠定基础。同时,利用 CodeGeeX 第四代模型的强大能力,插件也实现了一系列的功能创新。


1. 为项目自动生成 README 文件

CodeGeeX v2.12.0 版本可以为项目自动生成 README 文件。这个功能可以通过 @Openedfile 使用,通过分析已打开的项目代码结构、功能模块和依赖项,智能生成一个包含项目简介、安装步骤、使用方法、示例代码和贡献指南的 README 文件。

这样,在项目中不仅节省了手动编写文档的时间,还确保了 README 内容的准确性和完整性,使你的项目更加专业和易于理解。无论是开源项目还是个人开发,自动生成的 README 都能帮助你更好地展示和分享你的代码。

2. 项目级长文本上下文的记忆和理解

CodeGeeX 基于第四代模型的 128K 长文本能力,能够在一个包含 10000+ 行代码的项目文件中,准确提取一个特定变量的信息。在 CodeGeeX 插件中打开项目文件,如果不记得文件海量代码中的某一个变量名,就可以利用 @currentFile 来使用这个功能。

只需简单描述你要查找的变量及其相关功能,CodeGeeX 就可以在 10000+ 行代码中,快速定位该变量所在的位置,并提供详细的信息和上下文。这一功能大大提高了在大型代码库中查找和理解某一变量的效率,使得代码维护和调试变得更加便捷。

3. 支持项目中的跨文件分析和问答

CodeGeeX 支持项目中跨文件的分析和问答功能,能够在项目中跨越多个文件进行智能检索和信息提取。无论是查找某个变量、函数,还是了解特定逻辑的实现细节,你只需提出问题,CodeGeeX 会在整个项目中进行深入分析,并提供准确、详细的回答。

这一功能帮助开发者更高效地理解复杂代码库,大幅提升代码查找和问题解决的速度,让项目维护和开发更加轻松。

4. 支持本地模式

CodeGeeX v2.12.0 开始支持本地模式,允许在插件中接入本地模型,从而更灵活地使用插件。选择进入本地模式 CodeGeeX 能够直接配置本地模型的 API 地址,连接插件后就可以在离线状态下,继续获得本地模型提供的代码补全和智能问答能力。







请到「今天看啥」查看全文