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

使用BertTokenizer.from_pretrained加载模型时触发UnicodeDecodeError如何解决?

问题解决:加载BertTokenizer时触发UnicodeDecodeError

错误原因

你传给BertTokenizer.from_pretrained()的是模型权重文件pytorch_model.bin,这是二进制格式的权重数据,但BertTokenizer需要加载的是包含词汇表(vocab.txt)、配置文件(config.json)的模型目录(或预训练模型名称),而非单个权重文件。当tokenizer尝试把二进制权重文件当作文本格式的词汇表读取时,自然会触发UTF-8解码错误。

解决方案

1. 修正路径指向模型目录

确保你的模型文件都放在同一个目录下,目录结构大致如下:

model_directory/
├── vocab.txt
├── config.json
└── pytorch_model.bin

修改代码,传入目录路径:

from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained("/path/to/model_directory")

2. 补充缺失的必要文件

如果你的预训练脚本只生成了pytorch_model.bin,需要补充以下文件:

  • vocab.txt:如果是基于已有BERT模型微调,直接复制原模型的vocab.txt到目录;如果是从头预训练,导出训练时使用的词汇表为vocab.txt(每行一个token)。
  • config.json:可以用BertConfig生成并保存,示例代码:
    from transformers import BertConfig
    
    config = BertConfig(
        vocab_size=你的词汇表大小,
        hidden_size=768,  # 根据你的训练配置调整
        num_hidden_layers=12,
        num_attention_heads=12,
        # 其他参数根据你的预训练设置补充
    )
    config.save_pretrained("/path/to/model_directory")
    

3. 验证加载

完成上述步骤后,重新运行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.18 08:50:07