CodeGeeX是什么?

CodeGeeX是一个拥有130亿参数的大规模多语言代码生成模型。该模型可生成Python、C++、Java等主流编程语言的可执行代码,并支持跨语言代码翻译。CodeGeeX提供免费的VS Code和Jetbrains IDE扩展,在HumanEval-X多语言基准测试中表现优异。项目完全开源,同时支持Ascend和NVIDIA平台,为开发者提供高效的代码生成工具。

<img src="https://yellow-cdn.veclightyear.com/2b54e442/0b2a8c29-e48b-448f-b927-b37825e107ba.png"> <p align="center"> ? <a href="https://codegeex.cn" target="_blank">主页</a> | ? <a href="https://models.aminer.cn/codegeex/blog/" target="_blank">博客</a> | ? <a href="https://models.aminer.cn/codegeex/playground" target="_blank">演示</a> | ? <a href="https://codegeex.cn/download/request" target="_blank">下载模型</a> | ? <a href="https://arxiv.org/abs/2303.17568" target="_blank">论文</a> | ? <a href="README_zh.md" target="_blank">中文</a> </p> <p align="center"> ? 支持 <a href="https://marketplace.visualstudio.com/items?itemName=aminer.codegeex" target="_blank">VS Code</a>、<a href="https://plugins.jetbrains.com/plugin/20587-codegeex" target="_blank">Jetbrains</a>、<a href="https://plugins.jetbrains.com/plugin/20587-codegeex" target="_blank">Cloud Studio</a> | ? 加入我们的 <a href="https://discord.gg/8gjHdkmAN6" target="_blank">Discord</a>、<a href="https://join.slack.com/t/codegeexworkspace/shared_invite/zt-1s118ffrp-mpKKhQD0tKBmzNZVCyEZLw" target="_blank">Slack</a>、<a href="https://t.me/+IipIayJ32B1jOTg1" target="_blank">Telegram</a>、<a href="resources/zh/wechat.md"target="_blank">微信</a> </p>

? 最新一代 CodeGeeX4 模型已经正式开源。

  • CodeGeeX:多语言代码生成模型
    • 新闻
    • 入门指南
      • 安装
      • 模型权重
      • 在GPU上进行推理
      • VS Code和Jetbrains扩展指南
    • CodeGeeX:架构、代码语料库和实现
    • HumanEval-X:一个新的多语言程序合成基准
      • 多语言代码生成
      • 跨语言代码翻译
      • 如何使用HumanEval-X并为其做出贡献?
    • 许可证
    • 引用

CodeGeeX:多语言代码生成模型

我们介绍CodeGeeX,这是一个拥有130亿参数的大规模多语言代码生成模型,在包含20多种编程语言的大型代码语料库上进行了预训练。截至2022年6月22日,CodeGeeX已经在由1,536个昇腾910 AI处理器组成的集群上训练了超过8500亿个标记。CodeGeeX具有以下几个独特特征:

  • 多语言代码生成:CodeGeeX在生成几种主流编程语言的可执行程序方面表现出色,包括Python、C++、Java、JavaScript、Go等。演示
  • 跨语言代码翻译:CodeGeeX支持不同语言之间的代码片段翻译。只需一次点击,CodeGeeX就可以以高精度将程序转换为任何预期的语言。演示
  • 可定制的编程助手:CodeGeeX在VS Code扩展市场上免费提供。它支持代码补全、解释、总结等功能,为用户提供更好的编码体验。VS Code扩展
  • 开源和跨平台:所有代码和模型权重都公开可用于研究目的。CodeGeeX支持昇腾和NVIDIA平台。它支持在单个昇腾910、NVIDIA V100或A100上进行推理。申请模型权重

HumanEval-X用于真实多语言基准测试。 为了帮助标准化多语言代码生成和翻译的评估,我们开发并发布了HumanEval-X基准。HumanEval-X是一个新的多语言基准,包含820个人工编写的编码问题,涉及5种编程语言(Python、C++、Java、JavaScript和Go),每个问题都有相关的测试和解决方案。使用方法 ? 在HuggingFace上可用

<img src="https://yellow-cdn.veclightyear.com/2b54e442/bcecf6d0-95e9-425b-94e8-86ed7c0c50ab.png"> <p align="center"><i>与其他开源多语言基线相比,CodeGeeX在平均性能上达到了最高水平。</i> </p>

新闻

  • ? 2023-07-24:CodeGeeX2 已经发布,更强大、更快速、更轻量。支持100+种语言和许多新功能。

  • 2023-5-16:CodeGeeX论文已被KDD 2023,长滩接受,将在会议期间进行展示。

  • 2023-03-30:CodeGeeX论文现已在arxiv上发布。

  • 2023-02-14:CodeGeeX现在支持Cloud Studio,这是腾讯的一款出色的Web IDE。点击此页面顶部的徽章,快速启动环境来测试CodeGeeX。

  • 2023-02-13:非常感谢OneFlow团队为CodeGeeX的推理添加oneflow后端(在FP16下甚至比FasterTransformer更快!)。查看更多详情这里。

  • 2023-02:我们正在举办CodeGeeX "用AI编程" 黑客马拉松,基于CodeGeeX设计酷炫的应用并赢取奖品(RTX 4090、大疆无人机等)!

  • 2022-12-31:我们在codegeex-fastertransformer中发布了CodeGeeX的FasterTransformer版本。INT8加速版本达到了平均<15ms/token的速度。祝大家新年快乐!

  • 2022-12-13:我们在codegeex-vscode-extension中发布了CodeGeeX VS Code扩展的源代码。按照快速入门开始开发。

  • 2022-12-11:CodeGeeX现在可用于Jetbrains IDEs(IntelliJ IDEA、PyCharm、GoLand、CLion等),在这里下载。

  • 2022-12-04:我们发布了量化(需要更少的GPU RAM:27GB -> 15GB)和模型并行(可以在多个RAM<8G的GPU上运行)的源代码。

  • 2022-09-30:我们发布了适用于昇腾和NVIDIA平台的跨平台源代码和模型权重。

入门指南

CodeGeeX最初是在Mindspore中实现并在昇腾910 AI处理器上训练的。我们提供了一个基于Megatron-LM的与torch兼容的版本,以便于在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 .