The Heap
收藏arXiv2025-01-17 更新2025-01-18 收录
下载链接:
https://huggingface.co/datasets/WizzF/Heap-Forge
下载链接
链接失效反馈官方服务:
资源简介:
The Heap 是一个由代尔夫特理工大学创建的多语言代码数据集,旨在为大型语言模型的评估提供无污染的数据。该数据集涵盖了57种编程语言,包含733,663个代码仓库,总计96,990,250个原始文件和38,681,609个去重后的文件。数据来源于GitHub,通过非宽松许可证筛选和去重处理,确保与其他公开数据集无重叠。数据集的应用领域主要集中在大型语言模型的评估,旨在解决数据污染问题,确保模型评估的公平性和准确性。
The Heap is a multilingual code dataset created by Delft University of Technology, aiming to provide contamination-free data for the evaluation of large language models (LLMs). This dataset covers 57 programming languages, contains 733,663 code repositories, and totals 96,990,250 raw files and 38,681,609 deduplicated files. Sourced from GitHub, the data has undergone filtering based on non-permissive licenses and deduplication to ensure no overlap with other publicly available datasets. The primary application scenario of this dataset focuses on the evaluation of large language models, with the goal of addressing data contamination issues and ensuring the fairness and accuracy of model evaluations.
提供机构:
代尔夫特理工大学
创建时间:
2025-01-17
原始信息汇总
数据集概述
数据集名称
The Heap
数据集描述
The Heap 是一个多语言代码数据集,包含57种编程语言,旨在为大语言模型(LLM)评估提供无污染的数据集。该数据集通过GitHub API收集了多达50,000个公共仓库,并进行了严格的清理和去重处理。
数据集结构
数据集包含多个配置文件,每个配置文件对应一种编程语言。每个配置文件包含以下特征:
- id: 文件的唯一标识符
- file_name: 文件名
- file_path: 文件路径
- content: 文件内容
- size: 文件大小
- language: 文件所属的编程语言
- extension: 文件扩展名
- total_lines: 文件总行数
- avg_line_length: 平均行长度
- max_line_length: 最大行长度
- alphanum_fraction: 字母数字字符的比例
- repo_name: 仓库名称
- repo_stars: 仓库的星标数
- repo_forks: 仓库的fork数
- repo_open_issues: 仓库的开放问题数
- repo_license: 仓库的许可证类型
- repo_extraction_date: 仓库的提取日期
- exact_duplicates_stackv2: 是否与The Stack V2数据集中的文件完全重复
- exact_duplicates_stackv1: 是否与The Stack V1数据集中的文件完全重复
- exact_duplicates_redpajama: 是否与Red Pajama数据集中的文件完全重复
- exact_duplicates_githubcode: 是否与GitHub Code数据集中的文件完全重复
- near_duplicates_stackv2: 是否与The Stack V2数据集中的文件近似重复
- near_duplicates_stackv1: 是否与The Stack V1数据集中的文件近似重复
- near_duplicates_redpajama: 是否与Red Pajama数据集中的文件近似重复
- near_duplicates_githubcode: 是否与GitHub Code数据集中的文件近似重复
数据集配置
数据集包含以下编程语言的配置:
- C#: 3,257,456个样本,22.81 GB
- C++: 4,811,620个样本,58.16 GB
- Go: 2,328,529个样本,25.71 GB
- JavaScript: 3,393,747个样本,88.09 GB
- Mathematica: 21,208个样本,1.73 GB
- PHP: 3,310,243个样本,24.82 GB
- Python: 1,595,919个样本,22.62 GB
数据收集
数据集通过GitHub API收集,优先选择非宽松许可证的仓库,以减少污染。收集的仓库创建日期早于2024年8月,并按星标数降序排列。
数据清理
清理过程中排除了大于10 MB的文件和少于10个单词的文件。
数据去重
数据集进行了精确和近似去重处理,去重对象包括The Stack V2、The Stack、Red Pajama、GitHub Code和CodeParrot等公开代码数据集。
数据集字段
数据集中的每个文件包含以下字段:
- file_name: 文件名
- file_path: 文件路径
- content: 文件内容
- file_size: 文件大小
- language: 文件所属的编程语言
- extension: 文件扩展名
- repo_name: 仓库名称
- repo_stars: 仓库的星标数
- repo_forks: 仓库的fork数
- repo_open_issues: 仓库的开放问题数
- repo_created_at: 仓库的创建日期
- repo_pushed_at: 仓库的最后推送日期
- sha: 文件内容的SHA值
- exact_duplicates_pubdataset: 是否与其他公开数据集中的文件完全重复
- near_duplicates_pubdataset: 是否与其他公开数据集中的文件近似重复
搜集汇总
数据集介绍

构建方式
The Heap 数据集的构建过程始于从 GitHub 平台上收集代码库,通过搜索 API 获取了 57 种编程语言的代码文件。为了确保数据的多样性和代表性,数据集涵盖了多种编程范式,包括过程式、面向对象和函数式编程语言。为了避免数据污染,数据集仅包含非宽松许可证(如 GNU General Public License)下的代码,并通过计算密集型的去重操作,移除了与其他公开数据集(如 The Stack)重复的代码。此外,数据集还通过文件大小和单词数的筛选,进一步确保了数据的质量。
特点
The Heap 数据集的主要特点在于其多语言覆盖和去重机制。数据集涵盖了 57 种编程语言,确保了广泛的代表性。通过严格的去重操作,数据集避免了与其他公开数据集的重复,确保了在评估大型语言模型时的数据独立性。此外,数据集中的代码文件均来自非宽松许可证的代码库,这为研究提供了独特的数据源,避免了潜在的许可问题。数据集还提供了丰富的元数据,包括文件内容、质量指标和重复标记,便于研究人员根据需求进行筛选和使用。
使用方法
The Heap 数据集主要用于评估大型语言模型在多语言代码任务中的表现。研究人员可以通过数据集中的元数据和质量指标,筛选出适合特定任务的代码文件。数据集提供了精确的去重标记,帮助研究人员避免数据污染问题。此外,数据集的结构化设计使得用户可以根据编程语言、文件大小或其他指标进行灵活的数据过滤。数据集的使用场景包括但不限于代码生成、代码理解和代码翻译等任务,为研究人员提供了一个干净且多样化的评估平台。
背景与挑战
背景概述
The Heap 数据集由荷兰代尔夫特理工大学的 Jonathan Katzy、Razvan Mihai Popescu、Arie van Deursen 和 Maliheh Izadi 等研究人员于2025年发布,旨在为大语言模型(LLMs)提供无污染的多语言代码评估数据。随着大语言模型的快速发展,训练数据的广泛使用导致了许多公开代码的重复利用,进而影响了模型评估的公正性。The Heap 通过去重技术,确保其包含的57种编程语言的代码数据与其他公开数据集无重叠,从而为研究人员提供了一个公平的评估平台。该数据集的发布不仅解决了数据污染问题,还推动了代码大语言模型的研究进展。
当前挑战
The Heap 数据集面临的挑战主要体现在两个方面。首先,数据集的构建过程中需要解决代码的去重问题,尤其是与其他公开数据集的重复代码检测。尽管采用了SHA-256哈希和MinHash局部敏感哈希等技术进行精确和近似去重,但仍需应对代码片段粒度较低时的重复检测难题。其次,数据集的伦理问题也不容忽视,许多代码作者并未意识到其代码可能被用于训练大语言模型,因此数据集的使用需遵循严格的伦理规范,确保代码作者的权益不受侵害。
常用场景
经典使用场景
The Heap数据集最经典的使用场景在于为大型语言模型(LLMs)提供无污染的多语言代码评估环境。由于该数据集经过严格的去重处理,确保了其与现有训练数据集的独立性,研究人员可以在此数据集上公平地评估LLMs在下游任务中的表现,避免了数据泄露导致的评估偏差。
实际应用
在实际应用中,The Heap数据集被广泛用于评估和优化代码生成、代码补全和代码翻译等任务中的LLMs性能。由于其覆盖了57种编程语言,且代码来源多样化,该数据集能够帮助开发者在多语言环境中测试模型的泛化能力,从而提升模型在实际开发中的实用性。
衍生相关工作
The Heap的发布催生了一系列相关研究,特别是在LLMs的无污染评估领域。基于该数据集,研究人员开发了新的去重算法和评估框架,进一步推动了代码数据集的标准化和透明化。此外,该数据集还为多语言代码生成模型的训练和评估提供了新的基准,促进了跨语言代码处理技术的发展。
以上内容由遇见数据集搜集并总结生成



