遇见数据集

slm-tokenizer-32k

收藏
Hugging Face2026-06-15 更新2026-06-16 收录
官方服务:

资源简介:

该数据集是一个专门为小型语言模型(SLM)训练设计的自定义BPE分词器,词汇表大小为32,768个token。分词器基于Qwen/Qwen2.5-Coder-0.5B的正则表达式预分词器规则构建,包含32,700个学习到的token和68个特殊/保留token,无填充token。训练语料为5个领域的平衡混合数据,每个领域最多收集100,000个样本,具体包括:Web数据(来自HuggingFaceFW/fineweb-edu的sample-100BT子集)、合成数据(来自HuggingFaceTB/smollm-corpus的cosmopedia-v2子集)、维基百科(来自HuggingFaceFW/finewiki的en子集)、数学数据(来自HuggingFaceTB/finemath的finemath-4plus子集)以及Python代码(来自rijuludar/stackedu-en的data/python目录)。分词器支持丰富的特殊token结构,涵盖对话标记(如<|im_start|>, <|im_end|>)、FIM标记(如<|fim_prefix|>, <|fim_middle|>, <|fim_suffix|>)、思维链标记(如</think>, </think>)、步骤标记(如<|step_start|>, <|step_end|>)、搜索标记(如<search>, </search>)、工具调用标记(如<tool_call>, </tool_call>, <tool_response>, </tool_response>)以及50个保留标记(<|reserved_0|>到<|reserved_49|>),适用于需要结构化文本处理的小型语言模型训练和推理任务。

本数据集为专为小型语言模型(Small Language Model,SLM)训练打造的自定义字节对编码(Byte Pair Encoding,BPE)分词器,其词汇表规模为32,768个Token。该分词器基于Qwen/Qwen2.5-Coder-0.5B的正则表达式预分词规则构建,包含32,700个学习得到的Token与68个特殊/保留Token,未设置填充Token。 其训练语料为覆盖5个领域的均衡混合数据集,单领域样本采集上限为100,000个,具体领域及对应数据源如下:Web数据(源自HuggingFaceFW/fineweb-edu的sample-100BT子集)、合成数据(源自HuggingFaceTB/smollm-corpus的cosmopedia-v2子集)、维基百科数据(源自HuggingFaceFW/finewiki的en子集)、数学数据(源自HuggingFaceTB/finemath的finemath-4plus子集)以及Python代码数据(源自rijuludar/stackedu-en的data/python目录)。 该分词器支持丰富的特殊Token结构,涵盖对话标记(如<|im_start|>、<|im_end|>)、填充中间(Fill-In-the-Middle,FIM)标记(如<|fim_prefix|>、<|fim_middle|>、<|fim_suffix|>)、思维链(Chain-of-Thought)标记(如</think>、</think>)、步骤标记(如<|step_start|>、<|step_end|>)、搜索标记(如<search>、</search>)、工具调用标记(如<tool_call>、</tool_call>、<tool_response>、</tool_response>)以及50个保留标记(<|reserved_0|>至<|reserved_49|>),可适用于需结构化文本处理的小型语言模型训练与推理任务。

创建时间:
2026-06-12
原始信息汇总

数据集概述:Custom 32k SLM Tokenizer

  • 许可证:Apache-2.0
  • 语言:英语
  • 标签:tokenizer, bpe

核心特征

  • 词汇量:总计 32,768 个 token
    • 学习到的 tokens:32,700 个
    • 特殊/预留 tokens:68 个
    • 填充 tokens:0 个
  • 算法:BPE(Byte Pair Encoding)
  • 预分词器规则:源自 Qwen/Qwen2.5-Coder-0.5B

训练语料

该 tokenizer 在以下 5 个领域的平衡混合数据上训练,每个领域最多收集 100,000 个样本:

领域 数据集 子集/数据目录
网络文本 HuggingFaceFW/fineweb-edu sample-100BT
合成文本 HuggingFaceTB/smollm-corpus cosmopedia-v2
维基百科 HuggingFaceFW/finewiki en
数学 HuggingFaceTB/finemath finemath-4plus
Python 代码 rijuludar/stackedu-en data/python

特殊 tokens 结构

包含用于结构格式化、推理、工具调用和填充中间(FIM)任务的特殊 tokens:

基本控制 tokens<s></s><|endoftext|><|im_start|><|im_end|>

FIM tokens<|fim_prefix|><|fim_middle|><|fim_suffix|>

推理与步骤 tokens<think></think><|step_start|><|step_end|>

搜索与工具 tokens<search></search><tool_call></tool_call><tool_response></tool_response>

预留 tokens<|reserved_0|><|reserved_49|>(共 50 个)

完整列表<s>, </s>, <|endoftext|>, <|im_start|>, <|im_end|>, <|fim_prefix|>, <|fim_middle|>, <|fim_suffix|>, <think>, </think>, <|step_start|>, <|step_end|>, <search>, </search>, <tool_call>, </tool_call>, <tool_response>, </tool_response>, <|reserved_0|><|reserved_49|>

搜集汇总
数据集介绍
slm-tokenizer-32k 数据集图片
构建方式
该数据集是一个专为小型语言模型(SLM)设计的32,768词元BPE分词器,其构建基于Qwen/Qwen2.5-Coder-0.5B的正则表达式预分词规则。分词器从五个领域均匀混合的训练语料中学习得到,每个领域最多采集100,000个样本:网络文本来自HuggingFaceFW/fineweb-edu的sample-100BT子集,合成文本取自HuggingFaceTB/smollm-corpus的cosmopedia-v2子集,维基百科内容源自HuggingFaceFW/finewiki的英文子集,数学语料来自HuggingFaceTB/finemath的finemath-4plus子集,Python代码则选用rijuludar/stackedu-en的数据子集。最终获得32,700个学习词元和68个特殊或保留词元,总词汇量达32,768。
特点
该分词器在结构设计上独具匠心,其特殊词元体系覆盖了多种应用场景:包括用于结构化格式的<|im_start|>和<|im_end|>、支持思维链推理的<think>和</think>、交互式步骤分界的<|step_start|>和<|step_end|>、集成搜索功能的<search>和</search>、工具调用与响应的<tool_call>和<tool_response>,以及填充中间任务(FIM)所需的前缀、中缀和后缀标记。此外,预留了50个保留词元(<|reserved_0|>至<|reserved_49|>)以备扩展之需。这种设计赋予了分词器在多样化的SLM任务中灵活处理结构化交互与专业协议的能力。
使用方法
使用该分词器时,用户可直接通过HuggingFace的transformers库加载。其标准词元<s>和</s>用于标记序列边界,<|endoftext|>标识文本结束。在对话场景中,利用<|im_start|>和<|im_end|>包裹每条消息以区分角色。对于推理任务,可插入<think>与</think>包围思考过程;在分步求解中,每个步骤前后添加<|step_start|>和<|step_end|>。代码填充任务中,三个FIM标记分别指示缺失片段的位置和内容。工具集成则通过<tool_call>和<tool_response>界定外部交互。保留词元为用户自定义功能提供了接口,使该分词器能适配各类复杂SLM训练与部署管线。
背景与挑战
背景概述
在自然语言处理领域,分词器作为语言模型的基础组件,直接影响模型对文本的理解与生成能力。slm-tokenizer-32k数据集由HuggingFace社区的研究人员开发,旨在为小型语言模型(SLMs)构建一个高效且专精化的词汇表。该分词器基于字节对编码(BPE)算法,词汇表大小为32,768个token,其中包含32,700个学习得到的token和68个特殊标记。其训练语料涵盖网页、合成文本、维基百科、数学文本和Python代码五个领域,每个领域各采集十万条样本,确保了数据的多样性与平衡性。这一设计思路借鉴了Qwen2.5-Coder-0.5B的正则预分词规则,并专门引入了用于结构化格式化、推理、工具调用及填空任务(FIM)的特殊标记,为SLMs在特定场景下的高效推理与扩展应用奠定了坚实基础。该数据集的发布推动了对轻量化、领域适配性分词器构建方法的研究,对促进小型语言模型的实用化具有重要参考价值。
当前挑战
该数据集所解决的核心领域问题在于,传统通用分词器在大规模模型上表现优异,但面对小型语言模型时往往存在词汇冗余、计算效率低下及领域适配性差等弊端。slm-tokenizer-32k通过精简词汇量并聚焦多样化、高质量的专门语料,在保持编码效率的同时,提升了模型对数学推理和代码生成等任务的性能。构建过程中的挑战主要体现在多源语料的有效平衡与整合上:从HuggingFaceFW/fineweb-edu、HuggingFaceTB/finemath等不同子集中抽取样本,需确保各领域数据的代表性与一致性,避免因数据分布不均引发的语义偏差。此外,设计涵盖思维链、工具调用及填空标记等复杂特殊符号系统,增加了分词器训练与验证的难度,要求对标记序列的显式编码规则进行精细调校,以保障在SLMs中的稳定兼容与实际效用。
常用场景
经典使用场景
slm-tokenizer-32k专为小型语言模型(SLM)设计,其最经典的使用场景是作为模型训练的文本预处理核心组件,将原始文本转换为模型可理解的数字序列。该分词器采用字节对编码(BPE)算法,词汇表规模为32,768个token,并在涵盖网页、合成文本、维基百科、数学内容和Python代码五个领域的平衡语料上训练而成,使其能够高效处理多样化的自然语言和代码数据。这一设计使得它特别适合资源受限环境下的语言模型开发,如移动设备或嵌入式系统,为SLM提供高效且精准的分词能力。
实际应用
在实际应用中,slm-tokenizer-32k广泛服务于需要轻量化自然语言处理能力的场景,如智能客服的实时文本生成、移动设备的语音助手、以及物联网设备的指令解析。其内置的特殊token支持结构化格式、推理标记、工具调用和填充-中间(FIM)任务,使得模型能够处理对话推理、代码补全和函数调用等复杂任务。例如,在移动应用中,该分词器可协助小模型快速响应用户查询,或在边缘设备上实现代码片段自动生成,从而提升用户体验和系统效率。
衍生相关工作
该数据集衍生了多项经典工作,尤其是在小型语言模型的分词优化和领域特定提示工程方面。其训练语料的平衡混合策略——结合fineweb-edu、cosmopedia-v2、finewiki、finemath和stackedu-en——启发了后续研究探索跨域分词器的鲁棒性。特殊token的精心设计(如<think>、<tool_call>、<fim_prefix>)已被后续工作采纳为小模型推理和工具使用能力的标准模板。此外,该分词器作为预训练组件,被集成到多个轻量级开源模型中,推动了低资源语言模型在交互式应用和代码助手领域的进展。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务