CodeXGLUE
CodeXGLUE 是由微软研究院推出的代码智能基准测试平台,旨在为人工智能在编程领域的应用提供统一的评估标准。随着开发者数量激增,利用 AI 辅助代码搜索、自动补全、跨语言翻译及缺陷检测等需求日益迫切。然而,该领域长期缺乏像自然语言处理中 GLUE 或计算机视觉中 ImageNet 那样全面、多样化的数据集来衡量模型性能。
CodeXGLUE 正是为了解决这一痛点而生。它汇集了 14 个数据集,覆盖代码克隆检测、代码修复、文本到代码生成、代码摘要等 10 类核心任务,全面涵盖“代码对代码”、“文本对代码”、“代码对文本”及“文本对文本”等多种交互场景。通过提供标准化的数据与评估平台,它让不同算法模型的性能对比变得科学且直观,极大地推动了预训练模型(如 CodeBERT)在代码理解与生成方面的研究进展。
这套工具特别适合人工智能研究人员、大模型开发者以及关注代码智能前沿技术的工程师使用。无论是希望验证新算法的有效性,还是想要复现业界领先的代码辅助功能,CodeXGLUE 都提供了坚实的数据基础。其独特的价值在于打破了以往任务分散的局面,构建了一个多元化的评测生态,帮助社区更清晰地探索 AI 赋能软件开发的无限可能。
使用场景
某跨国金融科技公司的高级工程师李明,正负责将核心交易系统中遗留的 Python 风控模块迁移至 Java 平台,并需同步更新相关技术文档。
没有 CodeXGLUE 时
- 跨语言翻译靠手动:缺乏统一的代码翻译基准,李明只能逐行人工重写逻辑,耗时数周且极易引入细微的逻辑错误。
- 语义搜索效率低:在海量代码库中寻找功能相似的参考片段时,传统关键词搜索无法理解“计算风险敞口”等自然语言意图,导致大量时间浪费在无效筛选上。
- 模型评估无标准:团队尝试引入多个 AI 辅助工具,但因缺乏像 ImageNet 那样权威的评测数据集,无法客观对比哪个模型更适合当前的代码补全或缺陷检测任务。
- 文档维护不同步:代码重构后,英文技术文档难以自动准确地翻译为中文供本地团队使用,造成信息滞后和理解偏差。
使用 CodeXGLUE 后
- 自动化代码迁移:利用 CodeXGLUE 中的“代码到代码翻译”任务数据集训练模型,实现了 Python 到 Java 的高精度自动转换,将迁移周期从数周缩短至几天。
- 智能语义检索:基于其“文本到代码搜索”能力,李明直接用自然语言描述需求即可精准定位语义相关的代码片段,大幅提升了复用效率。
- 科学选型有依据:依托 CodeXGLUE 提供的 10 类多样化任务和统一评测平台,团队快速筛选出在缺陷检测和代码补全上表现最优的预训练模型。
- 文档同步零时差:借助“文档翻译”任务能力,系统自动生成与新版代码逻辑严格对应的中文文档,确保了全球协作的信息一致性。
CodeXGLUE 通过提供标准化的基准数据集和评测平台,将原本依赖人工经验的模糊开发流程,转变为可量化、高效率的智能化工程实践。
运行环境要求
基准测试中使用了 2 块 NVIDIA P100 GPU,具体显存和 CUDA 版本未说明

快速开始
引言
根据埃文斯数据公司的报告,2019年全球专业开发者人数为2390万,预计到2024年将增至2870万。随着开发者群体的不断壮大,旨在利用人工智能提升软件开发效率的代码智能技术,在软件工程和人工智能两大领域的重要性日益凸显。
当开发者希望找到他人编写的具有相同意图的代码时,代码搜索系统能够根据自然语言查询自动检索语义相关的代码片段。当开发者不确定下一步该写什么时,代码补全系统则可以根据当前编辑上下文自动补全后续代码。而当开发者需要将一段Python代码的功能移植到Java中实现时,代码到代码的翻译系统可以帮助完成从一种编程语言(Python)到另一种编程语言(Java)的转换。
因此,代码智能在微软赋能开发者这一使命中发挥着至关重要的作用。正如微软首席执行官萨蒂亚·纳德拉在微软[BUILD 2020]大会上所强调的那样,开发者的作用比以往任何时候都更加重要。GitHub正逐渐成为源代码的默认托管平台,而Visual Studio Code则是最受欢迎的代码编辑器。微软为开发者提供了最完整的工具链,整合了GitHub、Visual Studio和Microsoft Azure的优势,帮助开发者将创意转化为代码,并进一步部署到云端。
近年来,统计模型(包括神经网络)在代码智能任务中的应用呈现爆发式增长。尤其是最近,基于大规模编程语言数据预训练的模型,受到了BERT(arxiv.org/abs/1810.04805)和GPT(arxiv.org/abs/1908.09203)等自然语言处理领域大型预训练模型成功启发。这些模型,如IntelliCode和CodeBERT,在代码理解和生成方面取得了显著进展。然而,目前代码智能领域仍缺乏覆盖广泛任务的基准测试套件。我们已经看到,多样化的基准数据集对于应用型人工智能研究领域的蓬勃发展至关重要,例如计算机视觉领域的ImageNet和自然语言处理领域的GLUE。
为此,来自微软亚洲研究院、开发者事业部和必应的研究人员共同推出了CodeXGLUE——一个面向代码智能的基准数据集与开放挑战赛。它包含一系列代码智能任务以及用于模型评估和比较的平台。CodeXGLUE意为“面向代码的通用语言理解评估基准”,涵盖了10类多样化的代码智能任务,共14个数据集,具体场景如下:
以下是对CodeXGLUE的简要概述,包括任务、数据集、使用的语言、各数据集的规模、基线系统、提供方以及每项任务的简要定义。其中以蓝色标注的数据集为新引入的内容。

为了方便参赛者,我们提供了三类基线模型来支持这些任务:一种是擅长问题理解的BERT风格预训练模型(即CodeBERT);另一种是GPT风格的预训练模型,我们称之为CodeGPT,主要用于补全和生成任务;最后还提供了一个编码器-解码器框架,以支持序列到序列的生成任务。
我们提供了三条流水线,分别基于CodeBERT、CodeGPT以及编码器-解码器架构,以便参赛者轻松上手。

通过CodeXGLUE,我们旨在推动能够应用于各类代码智能问题的模型开发,从而提高软件开发者的生产力。我们鼓励研究人员积极参与这一开放挑战赛,继续推进代码智能领域的研究进展。未来,我们将把CodeXGLUE扩展到更多编程语言和下游任务中,同时通过探索新的模型结构、引入新的预训练任务、使用不同类型的数据等方式,持续优化预训练模型。
相关链接
排行榜 | CodeXGLUE论文 | HuggingFace数据集入口
任务与数据集
以下我们将详细说明每个任务的任务定义,以及上表中重点介绍的新引入数据集。
- 克隆检测(BigCloneBench、POJ-104)。该任务要求模型衡量代码之间的语义相似度。包含两个现有数据集:一个用于代码间的二分类任务,另一个则是在给定查询代码的情况下检索语义相似的代码。
- 缺陷检测(Devign)。该任务要求模型识别源代码中是否存在可能被用于攻击软件系统的缺陷,例如资源泄漏、释放后使用漏洞和拒绝服务攻击等。包含一个现有数据集。
- 完形填空(CT-all、CT-max/min)。该任务要求模型从代码中预测被遮盖的标记符,并将其表述为多选分类问题。这两个数据集均为新创建,其中一个候选标记符来自(经过过滤的)词汇表,另一个则仅限于“max”和“min”这两个选项。
- 代码补全(PY150、GitHub Java Corpus)。该任务要求模型在给定代码上下文的情况下预测后续标记符。涵盖标记符级别和行级别两种补全方式。标记符级别的任务类似于语言建模,我们在此收录了两个具有影响力的数据集。行级别数据集则是新近创建的,用于测试模型自动补全整行代码的能力。
- 代码翻译(CodeTrans)。该任务要求模型将一种编程语言的代码翻译成另一种编程语言的代码。新创建了一个Java与C#之间的数据集。
- 代码搜索(CodeSearchNet, AdvTest;CodeSearchNet, WebQueryTest)。该任务要求模型衡量文本与代码之间的语义相似度。在检索场景中,新创建了一个测试集,其中测试集中函数名和变量已被替换,以检验模型的泛化能力。而在文本-代码分类场景中,则创建了一个自然语言查询来源于Bing查询日志的测试集,用于测试模型对真实用户查询的表现。
- 代码修复(Bugs2Fix)。该任务要求模型尝试自动优化代码,这些代码可能存在错误或过于复杂。包含一个现有数据集。
- 文本到代码生成(CONCODE)。该任务要求模型根据自然语言描述生成代码。包含一个现有数据集。
- 代码摘要(CodeSearchNet)。该任务要求模型为代码生成自然语言注释。包含现有的数据集。
- 文档翻译(Microsoft Docs)。该任务要求模型在不同人类语言之间翻译代码文档。新创建了一个专注于低资源多语言翻译的数据集。
提交说明
当您构建的模型在开发集上的评估结果达到预期时,即可提交您的测试结果以获得测试集上的官方评估。为确保官方测试结果的公正性,我们不会公开测试集的正确答案。要提交您的模型以进行测试集上的官方评估,请按照以下步骤操作:
- 为开发集生成预测输出。
- 运行各任务特定Git仓库中的官方评估方法,验证您的系统运行正常。
- 为测试集生成预测输出。
- 通过电子邮件发送至
codexglue@microsoft.com提交以下信息。
邮件内容应包括:
- 测试集上的预测结果。[必填]
- 开发集上的预测结果。[建议填写]
- 个人/团队名称:将在排行榜上显示的个人或团队名称。[必填]
- 个人/团队所属机构:将在排行榜上显示的个人或团队所属机构。[可选]
- 模型代码:用于训练该模型的代码。[建议提供]
- 模型信息:将在排行榜上显示的模型名称或技术名称。[必填]
- 论文信息:若模型源自已发表的研究成果,需提供论文名称、引用信息及URL,以便在排行榜上展示。[可选]
为避免“P值黑客行为”,我们不鼓励同一团队在短时间内提交过多结果。
训练与推理时间成本
我们使用2块P100 GPU计算了每个数据集的训练和推理时间成本。结果见下表。

许可证
我们的代码遵循MIT许可证。
我们的数据集遵循数据计算使用协议(C-UDA)许可证。
参考文献
如果您使用此代码或CodeXGLUE,请考虑引用我们的论文。
@article{DBLP:journals/corr/abs-2102-04664,
author = {Shuai Lu and
Daya Guo and
Shuo Ren and
Junjie Huang and
Alexey Svyatkovskiy and
Ambrosio Blanco and
Colin B. Clement and
Dawn Drain and
Daxin Jiang and
Duyu Tang and
Ge Li and
Lidong Zhou and
Linjun Shou and
Long Zhou and
Michele Tufano and
Ming Gong and
Ming Zhou and
Nan Duan and
Neel Sundaresan and
Shao Kun Deng and
Shengyu Fu and
Shujie Liu},
title = {CodeXGLUE: {A} Machine Learning Benchmark Dataset for Code Understanding
and Generation},
journal = {CoRR},
volume = {abs/2102.04664},
year = {2021}
}
本研究由Alexey Svyatkovskiy、Ambrosio Blanco、Colin Clement、Dawn Drain、Daxin Jiang、Daya Guo、Duyu Tang、Junjie Huang、Lidong Zhou、Linjun Shou、Long Zhou、Michele Tufano、Ming Gong、Ming Zhou、Nan Duan、Neel Sundaresan、Shao Kun Deng、Shengyu Fu、Shuai Lu、Shujie Liu和Shuo Ren共同完成。
常见问题
相似工具推荐
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
spec-kit
Spec Kit 是一款专为提升软件开发效率而设计的开源工具包,旨在帮助团队快速落地“规格驱动开发”(Spec-Driven Development)模式。传统开发中,需求文档往往与代码实现脱节,导致沟通成本高且结果不可控;而 Spec Kit 通过将规格说明书转化为可执行的指令,让 AI 直接依据明确的业务场景生成高质量代码,从而减少从零开始的随意编码,确保产出结果的可预测性。 该工具特别适合希望利用 AI 辅助编程的开发者、技术负责人及初创团队。无论是启动全新项目还是在现有工程中引入规范化流程,用户只需通过简单的命令行操作,即可初始化项目并集成主流的 AI 编程助手。其核心技术亮点在于“规格即代码”的理念,支持社区扩展与预设模板,允许用户根据特定技术栈定制开发流程。此外,Spec Kit 强调官方维护的安全性,提供稳定的版本管理,帮助开发者在享受 AI 红利的同时,依然牢牢掌握架构设计的主动权,真正实现从“凭感觉写代码”到“按规格建系统”的转变。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
funNLP
funNLP 是一个专为中文自然语言处理(NLP)打造的超级资源库,被誉为"NLP 民工的乐园”。它并非单一的软件工具,而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。 面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点,funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具,还独特地收录了丰富的垂直领域资源,如法律、医疗、金融行业的专用词库与数据集,甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性,从基础的字典词典到前沿的 BERT、GPT-2 模型代码,再到高质量的标注数据和竞赛方案,应有尽有。 无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师,还是从事人工智能研究的学者,都能在这里找到急需的“武器弹药”。对于开发者而言,它能大幅减少寻找数据和复现模型的时间;对于研究者,它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神,极大地降低了中文自然语言处理的开发与研究成本,是中文 AI 社区不可或缺的宝藏仓库。