Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

微调完成后推理加载问题 #61

Closed
magicwang1111 opened this issue May 25, 2023 · 9 comments
Closed

微调完成后推理加载问题 #61

magicwang1111 opened this issue May 25, 2023 · 9 comments

Comments

@magicwang1111
Copy link

magicwang1111 commented May 25, 2023

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#
@1049451037
Copy link
Member

1049451037 commented May 25, 2023

请改成

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

@magicwang1111
Copy link
Author

请改成

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
Copy link
Author

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

@1049451037
Copy link
Member

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

@magicwang1111
Copy link
Author

如果数据多的话可以考虑增加训练的参数,目前的训练脚本只训练了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
Copy link
Author

magicwang1111 commented May 26, 2023

如果数据多的话可以考虑增加训练的参数,目前的训练脚本只训练了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", "上下水管温差怎么样啊?空气是不是都排干净了呢?"]]}

@1049451037
Copy link
Member

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

@magicwang1111
Copy link
Author

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", "上下水管温差怎么样啊?空气是不是都排干净了呢?"]]}

@1049451037
Copy link
Member

支持,可以参考cli_demo.py

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants