THUDM / VisualGLM-6B

Chinese and English multimodal conversational language model | 多模态中英双语对话语言模型
Apache License 2.0
4.08k stars 415 forks source link

模型微调出错 #78

Closed 2132660698 closed 1 year ago

2132660698 commented 1 year ago

image

AttributeError 'FakeTokenizer' object has no attribute 'pad_token_id' AttributeError 'FakeTokenizer' object has no attribute 'encode' 这两个都出现过。

1049451037 commented 1 year ago

看起来是tokenizer加载错误,是不是在调用get_tokenizer函数的时候args.tokenizer_type不对,正常来说如果args是VisualGLMModel.from_pretrained返回的结果的话,应该会被覆盖为THUDM/chatglm-6b

model, args = FineTuneVisualGLMModel.from_pretrained('visualglm-6b', args)
# args.tokenizer_type == 'THUDM/chatglm-6b'
tokenizer = get_tokenizer(args)
2132660698 commented 1 year ago

model, args = FineTuneVisualGLMModel.from_pretrained(model_type, args) args 的值打印如下: image

1049451037 commented 1 year ago

呃……可以直接print一下args.tokenizer_type吗,这一屏幕字符串也很难找

1049451037 commented 1 year ago

如果args.tokenizer_type不等于'THUDM/chatglm-6b'就说明模型加载有问题,可以检查一下模型checkpoint里的model_config.json

2132660698 commented 1 year ago

呃……可以直接print一下args.tokenizer_type吗,这一屏幕字符串也很难找 是这个: image

2132660698 commented 1 year ago

image 我用的这个训练的

1049451037 commented 1 year ago

那应该可以正常加载tokenizer呀,可以print一下get_tokenizer返回的tokenizer是什么吗

2132660698 commented 1 year ago

报错前打印这个,是不是网络下载的问题呢? image

1049451037 commented 1 year ago

是的,应该是网络的问题

2132660698 commented 1 year ago

这个可以配置本地加载吗?

1049451037 commented 1 year ago

把tokenizer的相关代码复制到本地,然后把args.tokenizer_type='THUDM/chatglm-6b'替换成本地的路径就可以了

2132660698 commented 1 year ago

把tokenizer的相关代码复制到本地,然后把args.tokenizer_type='THUDM/chatglm-6b'替换成本地的路径就可以了

这个配置成本地后,问题解决了,非常感谢大家。

Tate2099 commented 1 year ago

把tokenizer的相关代码复制到本地,然后把args.tokenizer_type='THUDM/chatglm-6b'替换成本地的路径就可以了

请问下这一步具体如何操作?

20191864218 commented 11 months ago

把tokenizer的相关代码复制到本地,然后把args.tokenizer_type='THUDM/chatglm-6b'替换成本地的路径就可以了

请问下这一步具体如何操作?

找到你下载的14个G的那个visualglm-6b.zip,然后unzip,然后解压的文件里面有个model_config.json文件,里面的tokenizer_type改成你本地的模型地址,具体修改json文件的方法去搜一下就可以

chenchen333-dev commented 6 months ago

把tokenizer的相关代码复制到本地,然后把args.tokenizer_type='THUDM/chatglm-6b'替换成本地的路径就可以了

这个配置成本地后,问题解决了,非常感谢大家。

是配置本地的visualglm-6b路径还是chatglm-6b路径呢?

chenchen333-dev commented 6 months ago

把tokenizer的相关代码复制到本地,然后把args.tokenizer_type='THUDM/chatglm-6b'替换成本地的路径就可以了

args.tokenizer_type='THUDM/chatglm-6b'是在哪个文件呢?