https://github.com/THUDM/CodeGeeX
CodeGeeX 是一个具有 130 亿参数的多编程语言代码生成预训练模型。CodeGeeX 采用华为 MindSpore 框架实现,在鹏城实验室 “鹏城云脑 II” 中的 192 个节点(共 1536 个国产昇腾 910 AI 处理器)上训练而成。特性:
- 高精度代码生成:支持生成 Python、C++、Java、JavaScript 和 Go 等多种主流编程语言的代码,在 HumanEval-X 代码生成任务上取得 47%~60% 求解率;
- 跨语言代码翻译:支持代码片段在不同编程语言间进行自动翻译转换;
- 自动编程插件:CodeGeeX 插件现已上架 VSCode 插件市场;
消息:
- 2022-12-13 : 我们在codegeex-vscode-extension中发布了 CodeGeeX VS Code 扩展的源代码。
- 2022-12-11:CodeGeeX 现在可用于 Jetbrains IDE(IntelliJ IDEA、PyCharm、GoLand、CLion 等)
- 2022-12-04:我们发布了量化的源代码(需要更少的 GPU RAM:27GB -> 15GB)和模型并行性(可以在 <8G RAM 的多个 GPU 上运行)。
- 2022-09-30:我们发布了 Ascend 和 NVIDIA 平台的跨平台源代码和模型权重。
架构:CodeGeeX是一个基于transformers的大规模预训练编程语言模型。它是一个从左到右的自回归解码器,它将代码和自然语言作为输入并预测下一个标记的概率。CodeGeeX 包含 40 个变换器层,自注意力块的隐藏大小为 5,120,前馈层的隐藏大小为 20,480,使其大小达到 130 亿个参数。它支持的最大序列长度为 2,048。
(左图: CodeGeeX 训练数据中编程语言的比例。 右图:训练损失与 CodeGeeX 训练步骤的关系图。)