CodeGeeX 多语言代码生成模型开源项目

我要开发同款
匿名用户2022年10月10日
134阅读
开发技术Python
所属分类LLM(大语言模型)、人工智能
授权协议Apache 2.0

作品详情

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

截至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环境。

安装需要Python3.7+/CUDA11+/PyTorch1.10+/DeepSpeed0.6+,通过以下命令安装 codegeex:

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

aria2c-x16-s16-j4--continue=true-iurls.txt使用以下命令合并得到完整的权重:

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

bash./scripts/test_inference.sh<GPU_ID>./tests/test_prompt.txtVSCode插件使用指南基于CodeGeeX开发了一款免费的VSCode插件,在应用市场搜索“codegeex”或通过该链接安装。详细的使用指南在CodeGeeX插件使用指南.

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

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论