CodeGeeX

多语言代码生成模型
授权协议 Apache 2.0
开发语言 Python
所属分类 程序开发、 代码生成工具
软件类型 开源软件
地区 不详
投 递 者 赵开诚
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

CodeGeeX是一个具有130亿参数的多编程语言代码生成预训练模型。CodeGeeX采用华为MindSpore框架实现,在鹏城实验室“鹏城云脑II”中的192个节点(共1536个国产昇腾910 AI处理器)上训练而成。

截至2022年6月22日,CodeGeeX 在20多种编程语言的代码语料库(>8500亿Token)上预训练得到。

CodeGeeX有以下特点:

  • 高精度代码生成:支持生成Python、C++、Java、JavaScript和Go等多种主流编程语言的代码,在HumanEval-X代码生成任务上取得47%~60%求解率,较其他开源基线模型有更佳的平均性能。代码生成示例
  • 跨语言代码翻译:支持代码片段在不同编程语言间进行自动翻译转换,翻译结果正确率高,在HumanEval-X代码翻译任务上超越了其它基线模型。代码翻译示例
  • 自动编程插件:CodeGeeX插件现已上架VSCode插件市场(完全免费),用户可以通过其强大的少样本生成能力,自定义代码生成风格和能力,更好辅助代码编写。插件下载
  • 模型跨平台开源: 所有代码和模型权重开源开放,用作研究用途。CodeGeeX同时支持昇腾和英伟达平台,可在单张昇腾910或英伟达V100/A100上实现推理。申请模型权重

全新多编程语言评测基准HumanEval-X:HumanEval-X是第一个支持功能正确性评测的多语言、多任务的基准,包含820个人工编写的高质量代码生成题目、测试用例与参考答案,覆盖5种编程语言(Python、C++、Java、JavaScript、Go),支持代码生成与代码翻译能力的评测。如何使用

在HumanEval-X代码生成任务上,与其它开源基线模型相比,CodeGeeX取得了最佳的平均性能。

使用指南

CodeGeeX最初使用Mindspore框架实现,并在昇腾910AI芯片上进行训练。为适配更多平台,官方将其转换到Megatron-LM框架,支持Pytorch+GPU环境。

安装

需要Python 3.7+ / CUDA 11+ / PyTorch 1.10+ / DeepSpeed 0.6+,通过以下命令安装 codegeex:

git clone git@github.com:THUDM/CodeGeeX.git
cd CodeGeeX
pip install -e .

模型权重

通过该链接申请权重,您将收到一个包含临时下载链接文件urls.txt的邮件。推荐使用aria2通过以下命令快速下载(请保证有足够的硬盘空间存放权重(~26GB)):

aria2c -x 16 -s 16 -j 4 --continue=true -i urls.txt

使用以下命令合并得到完整的权重:

cat codegeex_13b.tar.gz.part.* > codegeex_13b.tar
tar xvf codegeex_13b.tar.gz

用GPU进行推理

尝试使用CodeGeeX模型生成第一个程序吧!首先,在配置文件configs/codegeex_13b.sh中写明存放权重的路径。其次,将提示(可以是任意描述或代码片段)写入文件tests/test_prompt.txt,运行以下脚本即可开始推理(需指定GPU序号):

bash ./scripts/test_inference.sh <GPU_ID> ./tests/test_prompt.txt

VS Code插件使用指南

基于CodeGeeX 开发了一款免费的VS Code插件,在应用市场搜索“codegeex”或通过该链接安装。详细的使用指南在CodeGeeX插件使用指南.

左侧:CodeGeeX训练数据中各编程语言占比。 右侧:CodeGeeX训练损失函数随训练步数下降曲线。

  • 亚马逊今天在Re:Mars大会上宣布推出CodeWhisperer,这是一款类似于CodeGeeX和GitHub Copilot的AI辅助编程工具,它根据一个注释或几个按键来自动补全整个函数。目前支持Java、JavaScript和Python,和CodeGeeX一样,使用了数十亿行公开可用的开源代码、自己的代码库、公开可用的文档和公共论坛上的代码进行了训练。 现在,CodeWhisperer作为

  • 随着NLP预训练模型的发展,大语言模型在各个领域的作用也越来越大。几个月前,GitHub基于OpenAI的GPT-3训练的Copilot效果十分惊艳,可惜现在已经开始收费(参考:Copilot Labs插件——基于AI的代码解释和代码翻译神器)。而最近,清华大学也发布了一个代码补全神器——CodeGeeX。 一、CodeGeeX简介 这是一个具有130亿个参数的大型多语言代码生成模型,它预先经过2

 相关资料
  • 我下载了android应用程序的处理文件(这里是链接http://www.gwoptics.org/processing/mobile/BouncingBall/)我尝试在处理时进行编译,但出现以下两个错误: 找不到android.content.res的库 库必须安装在“sketchbook”文件夹中名为“Libraries”的文件夹中。 我想从这个项目生成整个java,这样我就可以使用它的一些

  • Sentinel 目前的多语言生态: Sentinel Go: https://github.com/alibaba/sentinel-golang Sentinel C++: https://github.com/alibaba/sentinel-cpp 更多的多语言版本欢迎社区贡献: Sentinel Node.js Sentinel Rust Sentinel PHP

  • 主要内容:ISO 语言代码,ISO 639-1 语言代码ISO 语言代码 HTML 的 lang 属性可用于声明网页或部分网页的语言,这对搜索引擎和浏览器是有帮助的。 根据 W3C 推荐标准,您应该通过 <html> 标签中的 lang 属性对每张页面中的主要语言进行声明: 比如声明原文版语言: <html lang="en"> ... </html> 在 XHTML 中,采用如下方式在 <html> 标签中对语言进行声明: <html xmlns="

  • 本文向大家介绍学生成绩管理系统C语言代码实现,包括了学生成绩管理系统C语言代码实现的使用技巧和注意事项,需要的朋友参考一下 C语言实现了学生成绩管理系统,可以进行学生成绩的增加,删除,更新,查询,计算和展示。 完整代码如下: 文件studata.txt文件展示如下: 更多学习资料请关注专题《管理系统开发》。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我正在根据参考指南学习使用Map结构。日食验证是 面向Web开发人员的Eclipse Java EE IDE。版本:开普勒服务版本2 pom。xml如下所示,与参考指南相同 它表示在构建项目时将生成实现代码。但是,它似乎不会在目标/生成的源文件夹下生成

  • 本文向大家介绍易语言制作二维码生成器,包括了易语言制作二维码生成器的使用技巧和注意事项,需要的朋友参考一下 DLL命令表 生成二维码 转换二维码启动窗口 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对呐喊教程的支持。如果你想了解更多相关内容请查看下面相关链接