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

自定义训练Tokenizer加载过慢:如何调试及解决该问题?

自定义Tokenizer加载缓慢的调试与优化方案

调试步骤

  • 排查网络影响:from_pretrained默认从远程仓库拉取文件,先手动下载tokenizer的核心文件(vocab.json、merges.txt、tokenizer_config.json等)到本地目录,改用本地路径加载:
    from transformers import AutoTokenizer
    test_tokenizer = AutoTokenizer.from_pretrained('./local-tokenizer-folder')
    
    若加载速度恢复正常,说明问题出在网络层面。
  • 检查文件规模:查看tokenizer相关文件的大小,若词汇表(vocab.json)或合并规则(merges.txt)过大(比如百万级条目),加载解析自然耗时,需评估是否存在冗余内容。
  • 启用调试日志定位瓶颈:通过日志查看加载过程中哪一步卡顿,代码如下:
    import logging
    logging.basicConfig(level=logging.DEBUG)
    from transformers import AutoTokenizer
    test_tokenizer = AutoTokenizer.from_pretrained('raptorkwok/cantonese-tokenizer-test')
    
    日志会输出下载、文件解析、初始化等各阶段的耗时,精准定位问题点。

优化方案

  • 确保生成并使用Fast版本Tokenizer:确认你的tokenizer仓库中存在tokenizer.json文件,这是PreTrainedTokenizerFast的核心文件。如果没有,重新训练时生成:
    # 训练后保存时指定生成fast格式
    tokenizer.save_pretrained("save_dir", legacy_format=False)
    
    拥有tokenizer.json后,PreTrainedTokenizerFast的加载速度会远快于普通版本。
  • 复用本地缓存:Hugging Face会自动缓存已下载的模型/Tokenizer文件,默认路径为~/.cache/huggingface/hub。检查该路径下是否存在对应tokenizer的缓存目录,避免重复下载;若缓存损坏,删除对应目录后重新拉取。
  • 精简tokenizer文件:清理仓库中不必要的附加文件(如冗余配置、大体积注释文件),减少加载时的文件读取量。
  • 完全离线加载:将所有tokenizer相关文件下载到本地,始终通过本地路径加载,彻底规避网络波动的影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 01:25:58