CoLT-132K
收藏arXiv2025-03-19 更新2025-03-21 收录
下载链接:
http://arxiv.org/abs/2503.15301v1
下载链接
链接失效反馈官方服务:
资源简介:
CoLT-132K是一个大规模的代码补全数据集,由北京大学的研究团队创建。该数据集包含120,000个训练样本和12,000个测试样本,是从2,000个高质量的开源代码仓库中构建的。每个样本包含一个长达128K tokens的代码上下文作为输入,覆盖了Python、Java、C++和Go四种流行的编程语言,以及三种代码补全场景:API调用、单行代码补全和结构化跨度补全。数据集的设计旨在为仓库级别的代码补全训练提供足够的数据支持,并包含更多现实世界的代码补全场景。
CoLT-132K is a large-scale code completion dataset created by a research team from Peking University. It consists of 120,000 training samples and 12,000 test samples, which are constructed from 2,000 high-quality open-source code repositories. Each sample contains a code context of up to 128K tokens as input, covering four widely used programming languages: Python, Java, C++, and Go, as well as three code completion scenarios: API invocation, single-line code completion, and structured span completion. The dataset is designed to provide sufficient data support for repository-level code completion training and includes more real-world code completion scenarios.
提供机构:
北京大学
创建时间:
2025-03-19
搜集汇总
数据集介绍

构建方式
CoLT-132K数据集的构建过程分为多个阶段,首先从GitHub上爬取了2000个高质量的开源代码仓库,确保数据的多样性和代表性。随后,通过代码仓库的去重处理,去除重复或高度相似的文件,以避免模型过拟合。接着,使用SCIP工具解析代码仓库,构建依赖图以提取跨文件上下文。最后,从每个仓库中提取三种类型的代码完成场景(API调用、单行代码、结构化代码块)作为真实标签,并结合文件内和跨文件上下文构建输入样本。每个样本的输入上下文长度可达128K个token,确保数据集的挑战性和实用性。
特点
CoLT-132K数据集具有三大显著特点。首先,其规模庞大,包含120,000个训练样本和12,000个测试样本,覆盖了Python、Java、C++和Go四种编程语言。其次,数据集的输入上下文长度极长,平均约为12,000个token,最大可达128,000个token,远超现有基准数据集。最后,数据集具有高度多样性,不仅涵盖了多种编程语言,还包含了API调用、单行代码和结构化代码块三种不同的代码完成场景,能够更全面地反映真实世界中的代码完成需求。
使用方法
CoLT-132K数据集主要用于训练和评估大语言模型在仓库级代码完成任务中的表现。使用该数据集时,首先通过监督微调(SFT)对模型进行预热,使其初步掌握代码完成任务。随后,采用基于强化学习(RL)的训练方法,通过构建偏好数据(包含提示、正确代码和错误代码的三元组),进一步优化模型对长上下文的利用能力。训练过程中,模型被鼓励利用长上下文中的相关信息(如API调用和相似代码),并惩罚忽略上下文的行为。最终,模型能够在复杂的代码完成任务中表现出色,尤其是在处理长上下文时展现出更强的信息提取和利用能力。
背景与挑战
背景概述
CoLT-132K数据集由北京大学和aiXcoder团队于2025年发布,旨在解决大语言模型(LLMs)在代码补全任务中无法充分利用长上下文信息的问题。该数据集包含132,000个样本,涵盖Python、Java、C++和Go四种编程语言,每个样本的输入上下文长度可达128K个token。CoLT-132K的发布为仓库级代码补全任务提供了大规模、多样化的数据支持,推动了LLMs在代码生成领域的进一步发展。通过引入强化学习技术,该数据集帮助模型更好地利用长上下文中的相关信息,显著提升了代码补全的准确性。
当前挑战
CoLT-132K数据集面临的挑战主要体现在两个方面。首先,仓库级代码补全任务本身具有复杂性,模型需要从大量代码上下文中提取并利用相关信息,而现有LLMs往往倾向于依赖局部上下文,忽略长距离依赖。其次,数据集的构建过程中也面临诸多挑战,包括如何从开源仓库中提取高质量的长上下文代码、如何确保数据的多样性和代表性,以及如何避免数据泄露问题。此外,长上下文的处理对模型的算力和内存提出了更高要求,如何在有限资源下高效训练模型也是一个亟待解决的难题。
常用场景
经典使用场景
CoLT-132K数据集主要用于支持基于长上下文的代码补全任务,特别是在仓库级别的代码补全场景中。该数据集通过提供长达128K token的上下文输入,帮助模型在生成代码时充分利用仓库中的跨文件和文件内上下文信息。典型的使用场景包括API调用补全、单行代码补全以及结构化代码块补全。通过CoLT-132K,研究人员可以训练和评估大语言模型(LLMs)在处理长上下文时的表现,尤其是在跨文件依赖和复杂代码结构中的表现。
实际应用
CoLT-132K数据集在实际应用中具有广泛的潜力,特别是在软件开发工具和IDE中。通过利用该数据集训练的模型,开发者可以在编写代码时获得更准确的补全建议,尤其是在处理大型代码库时。例如,模型可以根据仓库中的跨文件依赖关系,自动补全API调用或生成复杂的代码块。此外,该数据集还可以用于构建智能代码助手,帮助开发者更快地完成代码编写任务,减少错误并提高开发效率。
衍生相关工作
CoLT-132K数据集衍生了一系列相关研究工作,特别是在仓库级别代码补全领域。基于该数据集,研究人员提出了多种改进模型上下文利用能力的方法,如CoLT(Code Long-context Training)技术。此外,该数据集还启发了对跨文件依赖关系、代码检索和生成策略的深入研究。例如,RepoCoder和CrossCodeEval等研究利用类似的上下文提取和生成技术,进一步推动了仓库级别代码补全的发展。CoLT-132K的开源也为社区提供了宝贵的数据资源,促进了更多创新性工作的涌现。
以上内容由遇见数据集搜集并总结生成



