1.注意~
本篇文章只是记录遇到的问题和解决方案,非教程!
本篇文章只是记录遇到的问题和解决方案,非教程!
本篇文章只是记录遇到的问题和解决方案,非教程!
ps:
本以为微调visualglm能像chatglm3那样最多碰点版本问题,结果发现小坑不断,得不停查资料,而且大佬们大都去看cogvlm了。o(╥﹏╥)o
2.问题与方案
1.系统影响
系统 | 预测 | 微调 |
---|---|---|
Windows | √ | × |
Linux | √ | √ |
原因:微调需要用到SwissArmyTransformer中的deepspeed。这个包只有Linux可以用,Windows用户别挣扎了~
2.运行webdemo.py报错
我默认大家都是 Hugging Face Hub下载的。因此请用web_demo_hf.py别用web_demo.py,原因后面会讲。
3.微调坑之权重文件缺失
Hugging Face Hub下载的文件是不含有以下:
mp_rank_00_model_states.pt
latest
model_config.json
这三个文件。正是缺了这些文件,导致web_demo.py跑不了,虽然理论只要一运行那个cli_demo.py文件就会自动下载,但是绝大多少人肯定下载一小部分后就失败。
注意那个pt文件非常大大概在14.55G左右,这几个文件我放在以下百度云链接里,使用时只要放到上图对应位置就行
链接:https://pan.baidu.com/s/1yVPN65BXs04D-OXWqp8NCQ?pwd=lmh0
提取码:lmh0
–来自百度网盘超级会员V6的分享
4.微调坑之finetune_visualglm.sh设置修改
必须删了
–layer_range 0 14
这一行,否则运行时,会莫名卡死,原因我不懂~
4.微调坑之finetune_visualglm.py的补充
添加包
from transformers import AutoTokenizer, AutoModel
因为我的sat生成AutoTokenizer总会报错。我就直接用transformers的AutoTokenizer来替代
然后修改create_dataset_function方法
def create_dataset_function(path, args):
# tokenizer = get_tokenizer(args)#注释掉该行
tokenizer = AutoTokenizer.from_pretrained("你的visualglm-6b路径", trust_remote_code=True)
image_processor = BlipImageEvalProcessor(224)
dataset = FewShotDataset(path, image_processor, tokenizer, args)
return dataset
同时由于我的visualglm权重路径是放在其他路径的,由此需要修改一下FineTuneVisualGLMModel的参数
model, args = FineTuneVisualGLMModel.from_pretrained(model_type, args)
改成
model, args = FineTuneVisualGLMModel.from_pretrained(model_type, args,home_path='visualglm-6b文件夹所在路径,比如: /usr/logs')
5.微调坑之torch缓存
微调运行后在Linux中始终无法开启deepspeed,然后卡死,说torch_extensions/py310******文件占用之类的问题。
解决方法:之家把对应缓冲文件删了,再次运行~ok!!
这5个坑折磨我一个下午+一晚。难受香菇
PS
2024.01.13补充:
之前找的mp_rank_00_model_states.pt被污染过,难怪怎么微调都不对劲,还是得感谢清华的大佬们,他们提供了原始pt
原来百度云的里的pt,文件我也换了
再次感谢清华大佬们~