You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Hugging Face PreTrainedTokenizer中移除Token并保存?

从Hugging Face PreTrainedTokenizer中移除Token的推荐方法

由于直接修改词汇表文件的方式已被弃用且不适用于所有Tokenizer,推荐通过以下通用步骤移除指定Token并保存更新后的Tokenizer:

1. 提取并过滤现有词汇表

先获取Tokenizer的完整词汇表,过滤掉需要移除的Token集合:

from transformers import AutoTokenizer

# 加载原始Tokenizer
tokenizer = AutoTokenizer.from_pretrained("your-model-name")

# 定义要移除的Token集合
tokens_to_remove = {"[UNUSED0]", "unused_token_1", "some-token"}

# 过滤词汇表:保留不在移除列表中的Token
filtered_vocab = {token: idx for token, idx in tokenizer.get_vocab().items() if token not in tokens_to_remove}

2. 重新初始化Tokenizer

根据原始Tokenizer的类型,用过滤后的词汇表构建新的Tokenizer实例,需保留原始Tokenizer的核心配置(如大小写转换、特殊Token设置):

示例:BERT类Tokenizer

from transformers import BertTokenizer

new_tokenizer = BertTokenizer(
    vocab=None,
    vocab_dict=filtered_vocab,
    do_lower_case=tokenizer.do_lower_case,
    unk_token=tokenizer.unk_token,
    sep_token=tokenizer.sep_token,
    pad_token=tokenizer.pad_token,
    cls_token=tokenizer.cls_token,
    mask_token=tokenizer.mask_token
)

示例:GPT2类Tokenizer

from transformers import GPT2Tokenizer

new_tokenizer = GPT2Tokenizer(
    vocab=None,
    merges_file=None,
    vocab_dict=filtered_vocab,
    merges=tokenizer.merges,  # 保留原始BPE合并规则
    unk_token=tokenizer.unk_token,
    bos_token=tokenizer.bos_token,
    eos_token=tokenizer.eos_token,
    pad_token=tokenizer.pad_token
)

3. 保存更新后的Tokenizer

使用save_pretrained方法将新Tokenizer保存到本地,后续可通过from_pretrained加载使用:

new_tokenizer.save_pretrained("./updated-tokenizer")

注意事项

  • FastTokenizer兼容性:若原始Tokenizer是PreTrainedTokenizerFast(多数默认加载的Tokenizer),直接修改词汇表可能导致后端tokenizer逻辑(如SentencePiece、BPE)异常。建议先转换为普通Tokenizer(加载时使用非Fast版本,如GPT2Tokenizer而非GPT2TokenizerFast)再操作,或根据需求重新训练FastTokenizer。
  • 模型适配:若后续要将更新后的Tokenizer与预训练模型配合使用,需同步调整模型的embedding层权重,裁剪掉对应已移除Token的embedding向量,避免维度不匹配或无效权重问题。

内容的提问来源于stack exchange,提问作者Bram Vanroy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 04:37:26