遇见数据集

lemon-train-code

收藏
Hugging Face2026-07-27 更新2026-07-28 收录
官方服务:

资源简介:

ZEST数据集是一个多领域数据集,旨在通过领域感知的tokenization技术提升小模型在特定任务上的性能。该数据集覆盖两个核心领域:生物学(蛋白质)和计算机科学(编程语言)。在蛋白质领域,数据来源于UniRef50用于预训练(Masked Profile Modeling),Pfam用于构建包含32K结构基序的ZEST tokenizer词汇表,以及SCOPe 2.08和CATH S20 v4.4用于评估蛋白质远程同源性任务(指标包括mAP、fold AUC、top-k recall)。在代码领域,数据来源于CodeSearchNet(包含6种编程语言)用于预训练(Masked Language Modeling),并利用tree-sitter挖掘32K语法模式构建ZEST-Code tokenizer词汇表,评估基准包括POJ-104(用于代码克隆检测,指标为MAP@R)和Devign(用于代码缺陷检测,指标为准确率)。该数据集支持的任务包括蛋白质序列的远程同源性检测、代码克隆检测和代码缺陷检测。其核心创新在于通过注入领域归纳偏见到tokenizer级别,使得小模型(如70M参数)能够匹配或超越大模型基线(如3B参数),实现高达43倍的参数减少,并具备可测量的信息论优势(ZEST token携带的任务相关比特是标准BPE的1.7倍)。

The ZEST dataset is a multi-domain dataset designed to enhance the performance of small models on specific tasks through domain-aware tokenization techniques. It covers two core domains: biology (proteins) and computer science (programming languages). In the protein domain, data is sourced from UniRef50 for pre-training (Masked Profile Modeling), Pfam for building a ZEST tokenizer vocabulary with 32K structural motifs, and SCOPe 2.08 and CATH S20 v4.4 for evaluating protein remote homology tasks (metrics include mAP, fold AUC, top-k recall). In the code domain, data is sourced from CodeSearchNet (including 6 programming languages) for pre-training (Masked Language Modeling), and tree-sitter is used to mine 32K syntactic patterns to construct the ZEST-Code tokenizer vocabulary. Evaluation benchmarks include POJ-104 (for code clone detection, with MAP@R metric) and Devign (for code defect detection, with accuracy metric). The dataset supports tasks such as protein remote homology detection, code clone detection, and code defect detection. Its core innovation lies in injecting domain inductive bias at the tokenizer level, enabling small models (e.g., 70M parameters) to match or exceed large model baselines (e.g., 3B parameters), achieving up to 43x parameter reduction, and providing measurable information-theoretic advantages (ZEST tokens carry 1.7x more task-related bits than standard BPE).

创建时间:
2026-07-25
原始信息汇总

数据集概述

  • 数据集名称:lemon-train-code
  • 所属项目:ZEST(Zoned Encoding of Sequence Themes)
  • 核心目标:通过在分词器层级注入归纳偏置,提升小模型在下游任务中的性能,实现与更大模型相当的效果。

关键成果

  • 性能对比:仅70M参数模型使用ZEST分词后,在蛋白质远程同源性检测(折叠级别)上,与3B参数的ProtTucker/ProtT5-XL基线模型表现相当,实现43倍参数缩减
  • 信息论优势:ZEST分词每个token携带的任务相关比特数比标准BPE高出1.7倍。

评估指标:τ(T)

  • 定义:τ(T) = I(T; Y) / E[tokens per sequence],其中I(T; Y)是分词词表与任务标签之间的互信息,E[tokens per sequence]是每个序列的平均token数。
  • 作用:量化分词器的归纳偏置,更高的τ值表示分词更有效,模型扩展性更好。

数据集用途

该数据集与ZEST项目的代码部分相关,主要用于以下任务:

  • 代码克隆检测
  • 代码缺陷检测

领域与应用

1. 蛋白质(生物学)

  • 分词器:ZEST,基于从Pfam挖掘的32K结构基序,采用贪心最大匹配。
  • 预训练:在UniRef50上使用掩码配置文件建模(Masked Profile Modeling)。
  • 微调:在CATH数据对上使用层次化对比学习。
  • 基准测试:SCOPe 2.08和CATH S20 v4.4,评估指标包括mAP、折叠AUC、top-k召回率。

2. 代码(编程语言)

  • 分词器:ZEST-Code,基于通过tree-sitter挖掘的32K语法模式,采用贪心最大匹配。
  • 预训练:在CodeSearchNet(6种编程语言)上使用掩码语言建模(Masked Language Modeling)。
  • 基准测试:POJ-104(MAP@R)和Devign(准确率)。

模型训练策略

  • 一次性预训练,多次剪枝:对每个分词器预训练一个大模型,然后使用层剪枝创建多个小规模变体。
  • 剪枝示例:70M参数(16层)模型可剪枝为30M(4层)或43M(8层),每个剪枝后的模型再进行层次化微调,从单个预训练检查点生成多个扩展曲线数据点。

快速开始

  • 计算τ(T)python experiments/biology/compute_tau.py --scope-fasta data/scope40.fa --cath-fasta data/cath_s20.fa
  • 构建ZEST-Code分词器python experiments/code/build_tokenizer.py --codesearchnet-dir data/code/codesearchnet/ --output data/code/zest_code_vocab.json

许可证

MIT

搜集汇总
数据集介绍
lemon-train-code 数据集图片
构建方式
lemon-train-code 数据集的构建依托于 ZEST(Zoned Encoding of Sequence Themes)分词框架,通过注入领域知识以提升小规模模型的表现。在代码领域,首先利用 tree-sitter 语法分析器对 CodeSearchNet 语料库中的六种编程语言进行词法解析,从中挖掘出 32K 个高频句法模式,形成 ZEST-Code 分词器的词汇表。随后,采用贪婪最大匹配算法对代码序列进行分词,将语义相关的语法单元编码为紧凑的 token。基于这些 token,模型在 CodeSearchNet 上执行掩码语言模型预训练,并针对 POJ-104(代码克隆检测)和 Devign(缺陷检测)等下游任务进行微调,从而构建出兼具通用性与任务特异性的数据集。
特点
该数据集的核心特点在于其信息论导向的设计理念,通过引入 τ(T) 指标(每 token 任务相关比特数)量化分词器的归纳偏置优势。与传统 BPE 分词相比,ZEST-Code 分词器能提取更具语义含量和任务相关性的 token,使得小规模模型(如 70M 参数)在代码克隆与缺陷检测任务中可媲美或超越更大规模的基线模型。此外,数据集支持从单个大型预训练模型通过层剪枝策略(如均匀剪枝)生成多种参数规模的子模型,有效降低了重复训练成本,具备高效的缩放特性。
使用方法
使用者可通过安装依赖包并运行实验脚本快速上手。针对代码任务,首先执行 `python experiments/code/build_tokenizer.py` 构建 ZEST-Code 分词器,并指定 CodeSearchNet 数据路径。随后,可使用 `compute_tau.py` 计算分词器在 POJ-104 等任务上的 τ(T) 值,评估其信息增益。模型可借助 `zest.model.prune_checkpoint` 函数从预训练检查点中剪枝出不同大小的子模型,并通过分层微调适配具体任务。最终在 POJ-104 上采用 MAP@R 指标评估代码克隆检测性能,或在 Devign 上评估缺陷检测准确率。
背景与挑战
背景概述
ZEST数据集于近年由研究团队提出,旨在探索在分词器层面注入归纳偏置以提升小规模模型性能的新范式。该工作聚焦于蛋白质序列与编程语言两大领域,核心研究问题在于能否通过领域感知的分词策略,使参数量仅为70M的模型在蛋白质远程同源性检测任务上媲美3B参数的基线模型(如ProtTucker/ProtT5-XL),实现了43倍的参数缩减。这一突破得益于所提出的信息论度量τ(T),即每个分词携带的任务相关比特数,ZEST分词器在该指标上较标准BPE提升了1.7倍。该数据集及方法为高效自然语言处理与生物信息学交叉研究提供了新思路,推动了模型轻量化与领域知识融合的进展。
当前挑战
ZEST面临的核心挑战在于如何有效解决大模型参数冗余问题与领域特异性分词构建的困境。传统图像分类或文本建模任务依赖大规模参数与海量数据,而ZEST需在蛋白质远程同源性检测等精细任务中,通过领域分词器将小模型性能提升至大模型水平,这对分词器的信息提取效率提出了严苛要求。构建过程中,挑战体现在对蛋白质结构基序与代码语法模式的高质量挖掘上:需要从Pfam家族中提取32K个结构基序,并借助tree-sitter解析器从六个编程语言的代码中分离出语义单元,同时保证分词器在不同任务间的泛化能力与计算效率,避免过拟合或信息丢失。
常用场景
经典使用场景
lemon-train-code数据集的核心价值在于为代码智能领域提供了一种新颖的评估范式,其经典使用场景聚焦于代码克隆检测与缺陷定位两大任务。研究人员利用该数据集中的ZEST-Code分词器,通过基于tree-sitter的语法模式挖掘,将源代码转化为富含句法信息的32K词汇表,进而在CodeSearchNet六语言语料上预训练语言模型。在POJ-104基准上评估代码克隆检测的MAP@R指标,以及在Devign数据集上评估缺陷预测准确率,构成了该数据集最典型且广泛应用的研究框架,为对比不同分词策略对代码理解能力的影响奠定了实验基础。
衍生相关工作
该数据集的出现催生了一系列具有影响力的衍生研究。在tokenizer设计层面,研究者借鉴ZEST的语法感知策略,提出了针对特定编程语言(如Rust、Go)的定制化词汇表构建方法。在模型压缩领域,基于层剪枝的多尺度模型生成技术被扩展到其他模态,如自然语言处理中的轻量级问答系统。更重要的是,τ(T)信息论评估框架已从代码领域泛化至蛋白质序列分析,启发了生物信息学中结构化tokenizer的改进工作。此外,跨语言代码搜索基准的构建者开始在对比学习框架中引入ZEST-Code的层次化对比微调策略,形成了更为完善的代码表示评估生态。
数据集最近研究
最新研究方向
当前,lemon-train-code数据集的研究前沿聚焦于在分词器层面注入归纳偏置以提升小模型的推理效能。该数据集基于ZEST(Zoned Encoding of Sequence Themes)框架,通过领域感知的分词策略,在蛋白质(自然界的代码)与编程语言(人类代码)两大领域实现了突破性进展。研究发现,采用ZEST分词技术的7000万参数模型在蛋白质远程同源性检测任务中,性能与拥有30亿参数的ProtTucker/ProtT5-XL基线模型相当,实现了43倍的参数压缩比。这一成效源于ZEST分词器生成的每个令牌携带的任务相关信息量(τ(T))是标准BPE分词器的1.7倍,从信息论角度揭示了令牌级归纳偏置对模型效率的根本性影响。该方向不仅为轻量化蛋白质结构预测和代码缺陷检测提供了新范式,更预示着通过优化输入端数据结构而非单纯堆叠参数规模,可开创绿色高效AI模型设计的新纪元。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务