VisualGLM-6B icon indicating copy to clipboard operation
VisualGLM-6B copied to clipboard

微调完成后推理加载问题

Open magicwang1111 opened this issue 2 years ago • 7 comments

python3 cli_demo.py --from_pretrained '/root/ai/VisualGLM-6B/checkpoints/finetune-visualglm-6b-05-25-15-02/5000/mp_rank_00_model_states.pt' --prompt_zh 请给这张图片写一段广告语?

根据官方的命令修改了一下,报错信息

(visualGLM) root@iZbp1ewp3ew1qt4u8bdh0iZ:~/ai/VisualGLM-6B# python3 cli_demo.py --from_pretrained '/root/ai/VisualGLM-6B/checkpoints/finetune-visualglm-6b-05-25-15-02/5000/mp_rank_00_model_states.pt' --prompt_zh 请给这张图片写一段广告语?
Traceback (most recent call last):
  File "/root/ai/VisualGLM-6B/cli_demo.py", line 104, in <module>
    main()
  File "/root/ai/VisualGLM-6B/cli_demo.py", line 30, in main
    model, model_args = AutoModel.from_pretrained(
  File "/usr/local/lib/python3.10/dist-packages/sat/model/base_model.py", line 265, in from_pretrained
    model_path = auto_create(name, path=home_path, url=url)
  File "/usr/local/lib/python3.10/dist-packages/sat/resources/download.py", line 54, in auto_create
    url = MODEL_URLS[name]
KeyError: '/root/ai/VisualGLM-6B/checkpoints/finetune-visualglm-6b-05-25-15-02/5000/mp_rank_00_model_states.pt'
(visualGLM) root@iZbp1ewp3ew1qt4u8bdh0iZ:~/ai/VisualGLM-6B#

magicwang1111 avatar May 25 '23 08:05 magicwang1111

请改成

python3 cli_demo.py --from_pretrained /root/ai/VisualGLM-6B/checkpoints/finetune-visualglm-6b-05-25-15-02 --prompt_zh 请给这张图片写一段广告语?

1049451037 avatar May 25 '23 08:05 1049451037

请改成

python3 cli_demo.py --from_pretrained /root/ai/VisualGLM-6B/checkpoints/finetune-visualglm-6b-05-25-15-02 --prompt_zh 请给这张图片写一段广告语?

已成功运行,谢谢, 训练前 image 训练后 image , 衣服 image

希望接下来支持在web_demo也能加载微调后的模型

magicwang1111 avatar May 25 '23 08:05 magicwang1111

image 多轮对话的推理能力也很不错

magicwang1111 avatar May 25 '23 09:05 magicwang1111

如果数据多的话可以考虑增加训练的参数,目前的训练脚本只训练了2层lora,可以看到 https://github.com/THUDM/VisualGLM-6B/blob/main/finetune_visualglm.py#L18 的layer_range参数,目前只finetune了[0,14]两层的lora。

1049451037 avatar May 25 '23 12:05 1049451037

如果数据多的话可以考虑增加训练的参数,目前的训练脚本只训练了2层lora,可以看到 https://github.com/THUDM/VisualGLM-6B/blob/main/finetune_visualglm.py#L18 的layer_range参数,目前只finetune了[0,14]两层的lora。

实在是太感谢你了,在微调的过程中给予我这么多帮助,我看到这行代码了 self.add_mixin("lora", LoraMixin(args.num_layers, args.lora_rank, head_first=True, num_attention_heads=args.num_attention_heads, hidden_size_per_attention_head=args.hidden_size // args.num_attention_heads, layer_range=list(range(0, 28, 14))), reinit=True)

我知道在SD里lora层数是26层 BASE,IN00,IN01,IN02,IN03,IN04,IN05,IN06,IN07,IN08,IN09,IN10,IN11,M00,OUT00,OUT01,OUT02,OUT03,OUT04,OUT05,OUT06,OUT07,OUT08,OUT09,OUT10,OUT11 所以如果想修改层数,是否是改成 self.add_mixin("lora", LoraMixin(args.num_layers, args.lora_rank, head_first=True, num_attention_heads=args.num_attention_heads, hidden_size_per_attention_head=args.hidden_size // args.num_attention_heads, layer_range=list(range(0, 28, 14, 15, 16))), reinit=True)这种方式?

magicwang1111 avatar May 26 '23 02:05 magicwang1111

如果数据多的话可以考虑增加训练的参数,目前的训练脚本只训练了2层lora,可以看到 https://github.com/THUDM/VisualGLM-6B/blob/main/finetune_visualglm.py#L18 的layer_range参数,目前只finetune了[0,14]两层的lora。 visualglm是否支持chatglm一样的多轮对话训练?

{"prompt": "长城h3风扇不转。继电器好的。保险丝好的传感器新的风扇也新的这是为什么。就是继电器缺一个信号线", "response": "用电脑能读数据流吗?水温多少", "history": []}
{"prompt": "95", "response": "上下水管温差怎么样啊?空气是不是都排干净了呢?", "history": [["长城h3风扇不转。继电器好的。保险丝好的传感器新的风扇也新的这是为什么。就是继电器缺一个信号线", "用电脑能读数据流吗?水温多少"]]}
{"prompt": "是的。上下水管都好的", "response": "那就要检查线路了,一般风扇继电器是由电脑控制吸合的,如果电路存在断路,或者电脑坏了的话会出现继电器不吸合的情况!", "history": [["长城h3风扇不转。继电器好的。保险丝好的传感器新的风扇也新的这是为什么。就是继电器缺一个信号线", "用电脑能读数据流吗?水温多少"], ["95", "上下水管温差怎么样啊?空气是不是都排干净了呢?"]]}

magicwang1111 avatar May 26 '23 04:05 magicwang1111

layer_range接受一个list作为参数,代表要加lora的层编号,比如我们提供的脚本里list(range(0, 28, 14))其实就是[0, 14],这个是python的语法。你如果想对15和16也加lora,就直接传layer_range=[0, 14, 15, 16]就可以了。

1049451037 avatar May 26 '23 15:05 1049451037

layer_range接受一个list作为参数,代表要加lora的层编号,比如我们提供的脚本里list(range(0, 28, 14))其实就是[0, 14],这个是python的语法。你如果想对15和16也加lora,就直接传layer_range=[0, 14, 15, 16]就可以了。

感谢指导,visualglm是否支持chatglm一样的多轮对话训练?

{"prompt": "长城h3风扇不转。继电器好的。保险丝好的传感器新的风扇也新的这是为什么。就是继电器缺一个信号线", "response": "用电脑能读数据流吗?水温多少", "history": []}
{"prompt": "95", "response": "上下水管温差怎么样啊?空气是不是都排干净了呢?", "history": [["长城h3风扇不转。继电器好的。保险丝好的传感器新的风扇也新的这是为什么。就是继电器缺一个信号线", "用电脑能读数据流吗?水温多少"]]}
{"prompt": "是的。上下水管都好的", "response": "那就要检查线路了,一般风扇继电器是由电脑控制吸合的,如果电路存在断路,或者电脑坏了的话会出现继电器不吸合的情况!", "history": [["长城h3风扇不转。继电器好的。保险丝好的传感器新的风扇也新的这是为什么。就是继电器缺一个信号线", "用电脑能读数据流吗?水温多少"], ["95", "上下水管温差怎么样啊?空气是不是都排干净了呢?"]]}

magicwang1111 avatar May 29 '23 01:05 magicwang1111

支持,可以参考cli_demo.py

1049451037 avatar May 29 '23 02:05 1049451037