用最新版Transformers报错的解决办法 AttributeError: 'ChatGLMTokenizer' object has no attribute 'sp_tokenizer'. Did you mean: '_tokenize'? return self.sp_tokenizer.num_tokens

#101
by PiaoYang - opened

使用最新版Transformers对Tokenizer进行加载的时候会报错

AttributeError: 'ChatGLMTokenizer' object has no attribute 'sp_tokenizer'. Did you mean: '_tokenize'?
    return self.sp_tokenizer.num_tokens

解决办法:使用修复版的Tokenizer

THUDM/chatglm-6b替换为PiaoYang/chatglm-6b即可。同时如果有revision参数,需要去掉。

tokenizer = AutoTokenizer.from_pretrained("PiaoYang/chatglm-6b", trust_remote_code=True)

真的非常非常感谢大佬,本来都绝望要换模型了,太感谢了!!!!

我也遇到了这个问题,我发现是因为tokenization的初始化有问题,于是修改了换存在本地的tokenization_chatglm.py文件,可以按照保存信息找到本地缓存的路径。

  1. 找到要修改的缓存文件
    image.png
  2. 修改ChatGLMTokenizer类的__init__方法的定义,把super.__init__这一行放到__init__方法的最后
Knowledge Engineering Group (KEG) & Data Mining at Tsinghua University org

更新一下最新的为爱你也有这个问题吗

可以,有效!
image.png

Knowledge Engineering Group (KEG) & Data Mining at Tsinghua University org

这一个模型要降级到4.40以下,只有GLM-4适配了最新版。前面这些模型已经没有继续维护了

Sign up or log in to comment