数据编程代码_超长代码生成器

数据编程代码_超长代码生成器需要Python 3.7+ / CUDA 11+ / PyTorch 1.10+ / DeepSpeed 0.6+,通过以下命令安装 codeg

《开源精选》是我们分享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.git
cd CodeGeeX
pip install -e .

代码100分

模型权重

申请权重:https://models.aminer.cn/codegeex/download/request

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

代码100分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序号):

代码100分bash ./scripts/test_inference.sh <GPU_ID> ./tests/test_prompt.txt

生成示例

数据编程代码_超长代码生成器

数据编程代码_超长代码生成器

数据编程代码_超长代码生成器

数据编程代码_超长代码生成器

-END-

开源协议:Apache2.0

开源地址:https://github.com/THUDM/CodeGeeX

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/4237.html

(0)
上一篇 2022-12-14
下一篇 2023-03-23

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注