《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个使用MindSpore框架实现的编程语言代码生成器——CodeGeeX。
CodeGeeX 是一个具有130亿参数的多编程语言代码生成预训练模型,采用辅助华为 MindSpore 框架实现,在鹏城实验室“鹏城云脑II”上使用1536个国产昇腾910 AI处理器训练而成。CodeGeexX 支持十多种主流编程语言的高精度代码生成、跨语言代码翻译等功能,同时开发自动编程插件,更好的辅助程序开发和相关研究。
特性高精度代码生成:支持生成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),支持代码生成与代码翻译能力的评测。
使用指南
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.gitcd CodeGeeXpip install -e .
模型权重
申请权重:https://models.aminer.cn/codegeex/download/request
通过申请权重,您将收到一个包含临时下载链接文件 urls.txt 的邮件。推荐使用 aria2 通过以下命令快速下载(请保证有足够的硬盘空间存放权重(~26GB)):
aria2c -x 16 -s 16 -j 4 –continue=true -i urls.txt
使用以下命令合并得到完整的权重:
cat codegeex_13b.tar.gz.part.* > codegeex_13b.tartar xvf codegeex_13b.tar.gz
用GPU进行推理
尝试使用 CodeGeeX 模型生成第一个程序吧!首先,在配置文件 configs/codegeex_13b.sh 中写明存放权重的路径。其次,将提示(可以是任意描述或代码片段)写入文件 tests/test_prompt.txt ,运行以下脚本即可开始推理(需指定GPU序号):
bash ./scripts/test_inference.sh ./tests/test_prompt.txt生成示例
-END-
开源协议:Apache2.0
开源地址:https://github.com/THUDM/CodeGeeX