ammarnasr/the-stack-java-clean
收藏Hugging Face2023-08-14 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/ammarnasr/the-stack-java-clean
下载链接
链接失效反馈官方服务:
资源简介:
---
license: openrail
dataset_info:
features:
- name: hexsha
dtype: string
- name: size
dtype: int64
- name: content
dtype: string
- name: avg_line_length
dtype: float64
- name: max_line_length
dtype: int64
- name: alphanum_fraction
dtype: float64
splits:
- name: train
num_bytes: 3582248477.9086223
num_examples: 806789
- name: test
num_bytes: 394048264.9973618
num_examples: 88747
- name: valid
num_bytes: 3982797.09401595
num_examples: 897
download_size: 1323156008
dataset_size: 3980279540
task_categories:
- text-generation
language:
- code
tags:
- code
pretty_name: TheStack-Java
size_categories:
- 1M<n<10M
---
## Dataset 1: TheStack - Java - Cleaned
**Description**: This dataset is drawn from TheStack Corpus, an open-source code dataset with over 3TB of GitHub data covering 48 programming languages. We selected a small portion of this dataset to optimize smaller language models for Java, a popular statically typed language.
**Target Language**: Java
**Dataset Size**:
- Training: 900,000 files
- Validation: 50,000 files
- Test: 50,000 files
**Preprocessing**:
1. Selected Java as the target language due to its popularity on GitHub.
2. Filtered out files with average line length > 100 characters, maximum line length > 1000 characters, and alphabet ratio < 25%.
3. Split files into 90% training, 5% validation, and 5% test sets.
**Tokenizer**: Byte Pair Encoding (BPE) tokenizer with tab and whitespace tokens. GPT-2 vocabulary extended with special tokens.
**Training Sequences**: Sequences constructed by joining training data text to reach a context length of 2048 tokens (1024 tokens for full fine-tuning).
许可证:openrail
数据集信息:
特征:
- 名称:hexsha,数据类型:字符串(string)
- 名称:size,数据类型:64位整数(int64)
- 名称:content,数据类型:字符串(string)
- 名称:avg_line_length,数据类型:64位浮点数(float64)
- 名称:max_line_length,数据类型:64位整数(int64)
- 名称:alphanum_fraction,数据类型:64位浮点数(float64)
划分集:
- 名称:训练集(train):字节数:3582248477.9086223,样本数:806789
- 名称:测试集(test):字节数:394048264.9973618,样本数:88747
- 名称:验证集(valid):字节数:3982797.09401595,样本数:897
下载大小:1323156008
数据集总大小:3980279540
任务类别:
- 文本生成(text-generation)
语言:
- 代码(code)
标签:
- 代码(code)
友好名称:TheStack-Java
规模类别:
- 100万<n<1000万(1M<n<10M)
**数据集1:TheStack-Java(清洗版)**
**描述**:本数据集源自TheStack语料库——该语料库是一款涵盖48种编程语言、存储超3TB GitHub开源代码数据的开源代码数据集。我们从中选取子集,用于优化面向Java(一种主流静态类型编程语言)的小型大语言模型(Large Language Model)。
**目标语言**:Java
**数据集规模**:
- 训练集:90万个文件
- 验证集:5万个文件
- 测试集:5万个文件
**预处理流程**:
1. 因Java在GitHub生态中拥有极高普及度,故将其选为目标语言。
2. 过滤掉同时满足以下条件的文件:平均行长度超过100字符、最大行长度超过1000字符,且字母数字占比低于25%。
3. 将数据集按90%训练集、5%验证集、5%测试集的比例进行划分。
**分词器**:采用字节对编码(Byte Pair Encoding, BPE)分词器,支持制表符与空白符Token,并基于GPT-2词表扩展了专用Token。
**训练序列构造**:将训练数据文本拼接为上下文长度为2048个Token的序列(全量微调时上下文长度设为1024个Token)。
提供机构:
ammarnasr
原始信息汇总
数据集概述
数据集名称
- TheStack-Java
数据集描述
- 该数据集从TheStack Corpus中提取,该Corpus包含超过3TB的GitHub数据,涵盖48种编程语言。本数据集专注于优化Java语言的小型语言模型,Java是一种流行的静态类型语言。
目标语言
- Java
数据集大小
- 训练集: 900,000文件
- 验证集: 50,000文件
- 测试集: 50,000文件
预处理步骤
- 选择Java作为目标语言,因其GitHub上的流行度。
- 过滤掉平均行长度超过100个字符、最大行长度超过1000个字符以及字母比率低于25%的文件。
- 将文件分为90%训练集、5%验证集和5%测试集。
分词器
- Byte Pair Encoding (BPE) 分词器,包含制表符和空格标记。GPT-2词汇表扩展了特殊标记。
训练序列
- 通过连接训练数据文本构建序列,以达到2048个标记的上下文长度(全精细调整为1024个标记)。
搜集汇总
数据集介绍

构建方式
在软件工程领域,高质量的代码数据集对于训练语言模型至关重要。该数据集源自TheStack语料库,这是一个覆盖48种编程语言的开源代码集合。研究者从中筛选出Java语言的相关文件,并进行了严格的预处理:首先基于Java在GitHub上的流行度进行选择,随后过滤掉平均行长度超过100字符、最大行长度超过1000字符以及字母数字比例低于25%的文件,以确保代码的规范性与可读性。最终,数据被划分为训练集、验证集和测试集,比例分别为90%、5%和5%,为模型训练提供了结构化的基础。
特点
作为专注于Java编程语言的数据集,其特点体现在多个维度。数据集规模适中,包含约90万训练文件、5万验证文件和5万测试文件,覆盖了广泛的Java代码示例。每个样本均包含哈希值、文件大小、代码内容及行长度等元数据,便于深入分析。通过预处理步骤,数据集剔除了异常格式的代码,提升了整体质量。此外,数据以文本生成任务为导向,适用于代码补全、生成等自然语言处理应用,为研究者和开发者提供了可靠的实验资源。
使用方法
在机器学习应用中,该数据集的使用方法遵循标准流程。用户可通过HuggingFace平台直接下载数据,利用其内置的分割进行模型训练与评估。数据以序列形式组织,通过连接训练文本构建长度为2048令牌的上下文,适用于基于Transformer架构的模型。预处理阶段已应用字节对编码(BPE)分词器,并扩展了GPT-2词汇表,支持高效的文本处理。研究者可将其用于代码生成模型的微调或预训练,结合验证集和测试集监控性能,推动软件智能化的发展。
背景与挑战
背景概述
在人工智能与软件工程交叉领域,代码生成与理解已成为核心研究方向。TheStack-Java-Clean数据集源于TheStack语料库,该库由BigCode社区于2023年构建,旨在提供大规模、高质量的开放源代码数据。该数据集聚焦于Java这一广泛使用的静态类型编程语言,通过从GitHub海量仓库中精选代码文件,为训练代码专用语言模型提供了结构化资源。其创建不仅推动了代码智能辅助工具的发展,也为研究程序语义理解、自动代码补全及缺陷检测等任务奠定了数据基础,对提升软件开发自动化水平具有显著影响力。
当前挑战
该数据集致力于解决代码生成与理解领域的核心挑战,即如何从自然语言描述中准确生成符合语法与逻辑的Java代码,并理解复杂代码语义。在构建过程中,面临多重挑战:首先,原始GitHub代码质量参差不齐,需过滤低质量或噪声文件,如过长的代码行或非字母数字比例异常的内容;其次,确保数据代表性需平衡代码风格与项目多样性,避免偏向特定领域或编码习惯;此外,预处理中需设计合理的序列长度与分词策略,以适配Transformer模型训练,同时保留代码的结构与语义完整性。
常用场景
经典使用场景
在软件工程与人工智能交叉领域,代码生成与理解已成为研究热点。该数据集作为高质量的Java代码语料库,其经典使用场景聚焦于训练与评估代码语言模型。通过提供大规模、经过清洗的Java源代码文件,研究者能够构建模型以学习Java语言的语法结构、编程范式及常见模式,进而应用于代码自动补全、程序合成等任务。数据集的结构化划分确保了模型在训练、验证和测试阶段的可靠性,为代码智能领域的基准实验奠定了坚实基础。
衍生相关工作
围绕该数据集,已衍生出多项经典研究工作。例如,基于其训练的轻量级Java代码生成模型被用于探索代码摘要与文档自动生成;部分研究利用该数据集进行代码克隆检测或漏洞预测,推动了软件安全领域的发展。同时,数据集作为基准被纳入代码语言模型评估框架(如CodeXGLUE),促进了学术界对模型性能的标准化比较。这些工作共同丰富了代码智能生态,为后续研究提供了方法论参考。
数据集最近研究
最新研究方向
在软件工程与人工智能交叉领域,基于Java代码的预训练模型研究正成为前沿热点。该数据集作为高质量Java代码的精选子集,为代码生成、缺陷检测及智能编程助手等任务提供了关键训练资源。当前研究聚焦于利用此类数据优化轻量级语言模型,以提升模型在代码理解与生成任务中的效率与准确性,同时探索代码语义表示与自动化重构技术,推动软件开发智能化进程。
以上内容由遇见数据集搜集并总结生成



