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

fewshot微调后效果和微调前一样,没有效果提升是什么原因?

Open danxuan2022 opened this issue 2 years ago • 10 comments

image

用的是自己新增到few shot的图片进行预测推理的,效果和few shot前效果一致 没有效果提升。

danxuan2022 avatar Jun 07 '23 04:06 danxuan2022

多次运行可能会有随机性,因为样例里面微调的参数比较少(只有两层lora),可能会微调力度不够。我当时example里用的配置是5卡每张卡的batch-size是4。

1049451037 avatar Jun 07 '23 05:06 1049451037

多次运行可能会有随机性,因为样例里面微调的参数比较少(只有两层lora),可能会微调力度不够。我当时example里用的配置是5卡每张卡的batch-size是4。

《因为样例里面微调的参数比较少(只有两层lora),可能会微调力度不够》微调粒度不够 微调参数偏少,只有两层lora,如果想在模型组网上多改动一些参数,需要怎么改? image

danxuan2022 avatar Jun 07 '23 05:06 danxuan2022

修改layer_range参数,样例的脚本是微调了第0层和第14层,多传一些数字就是微调更多层,不传这个参数默认就是微调所有层。增大lora_rank也可以增加微调参数。

1049451037 avatar Jun 07 '23 05:06 1049451037

修改layer_range参数,样例的脚本是微调了第0层和第14层,多传一些数字就是微调更多层,不传这个参数默认就是微调所有层。增大lora_rank也可以增加微调参数。

danxuan2022 avatar Jun 07 '23 07:06 danxuan2022

修改layer_range参数,样例的脚本是微调了第0层和第14层,多传一些数字就是微调更多层,不传这个参数默认就是微调所有层。增大lora_rank也可以增加微调参数。

好的了解了 ,多谢🙏

danxuan2022 avatar Jun 07 '23 07:06 danxuan2022

多次运行可能会有随机性,因为样例里面微调的参数比较少(只有两层lora),可能会微调力度不够。我当时example里用的配置是5卡每张卡的batch-size是4。

除了增加微调模型的层数,如果few shot想取得比较好的效果,数据集上需要用多少图片会取得较理想的效果? 我现在是在fewshot-data的dataset.json中添加了8张关于地图导航相关的图片和文字描述,但是看起来效果不是特别好,如果想取得比较理想的效果还是需要用大量数据做fine tuning吗? image

地图数据及描述信息如下: 图片描述信息为:{"img": "fewshot-data/8.png", "prompt": "这张图片的背景里有什么内容?", "label": "这是地图导航,共18.1公里,30分钟到达,18米后进入无名道路。"} image

danxuan2022 avatar Jun 07 '23 07:06 danxuan2022

建议把prompt换一下,你的数据显然不是问的背景是什么内容……这样容易让模型误解

1049451037 avatar Jun 07 '23 07:06 1049451037

样容易

ok明白了,感谢解答,prompt换成:这张内容是什么?

danxuan2022 avatar Jun 07 '23 07:06 danxuan2022

建议把prompt换一下,你的数据显然不是问的背景是什么内容……这样容易让模型误解

image

看了一下效果,目前的话只能描述图片内容到是一张地图,显示地图的主要道路等描述信息,想进一步提取图片的文本信息如<共18.1公里,30分钟到达,18米后进入无名道路>,这种信息如何可以通过few shot让大模型学习到预测推理出<共18.1公里,30分钟到达,18米后进入无名道路>这种文本内容呢? image

dataset.json内容如下 image

danxuan2022 avatar Jun 07 '23 08:06 danxuan2022

老哥你这里最后一张图片我发现一个小问题哦,其实你想训练它看地图导航,那样本里就不要有上面那些看背景的训练样本啦,会给微调有干扰的。另外visualGLM暂时还不太支持OCR,你的需求可能还得等他们支持OCR了_(:3_/ image

minlo-18 avatar Jun 09 '23 02:06 minlo-18

``> 修改layer_range参数,样例的脚本是微调了第0层和第14层,多传一些数字就是微调更多层,不传这个参数默认就是微调所有层。增大lora_rank也可以增加微调参数。

能直接微调整个模型吗?我尝试了去掉ues_lora 出了点问题

        self.optimizer = self._configure_zero_optimizer(basic_optimizer)
optimizer = DeepSpeedZeroOptimizer(
  File "/path/to/anaconda3/envs/py10/lib/python3.10/site-packages/deepspeed/runtime/zero/stage_1_and_2.py", line 270, in __init__
  File "/path/to/anaconda3/envs/py10/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 1444, in _configure_zero_optimizer
    self.dtype = self.optimizer.param_groups[0]['params'][0].dtype
IndexError: list index out of range
    optimizer = DeepSpeedZeroOptimizer(
  File "/path/to/anaconda3/envs/py10/lib/python3.10/site-packages/deepspeed/runtime/zero/stage_1_and_2.py", line 270, in __init__
Traceback (most recent call last):
    self.dtype = self.optimizer.param_groups[0]['params'][0].dtype
  File "/path/to/projects/vis-dir/pair-oneitem/finetune_visualglm.py", line 222, in <module>
IndexError: list index out of range
    training_main(args, model_cls=model, forward_step_function=forward_step, create_dataset_function=create_dataset_function, collate_fn=data_collator)
  File "/path/to/anaconda3/envs/py10/lib/python3.10/site-packages/sat/training/deepspeed_training.py", line 98, in training_main
    model, optimizer = setup_model_untrainable_params_and_optimizer(args, model)
  File "/path/to/anaconda3/envs/py10/lib/python3.10/site-packages/sat/training/deepspeed_training.py", line 174, in setup_model_untrainable_params_and_optimizer
    model, optimizer, _, _ = deepspeed.initialize(
  File "/path/to/anaconda3/envs/py10/lib/python3.10/site-packages/deepspeed/__init__.py", line 171, in initialize
    engine = DeepSpeedEngine(args=args,
  File "/path/to/anaconda3/envs/py10/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 310, in __init__
    self._configure_optimizer(optimizer, model_parameters)
  File "/path/to/anaconda3/envs/py10/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 1209, in _configure_optimizer
    self.optimizer = self._configure_zero_optimizer(basic_optimizer)
  File "/path/to/anaconda3/envs/py10/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 1444, in _configure_zero_optimizer
    optimizer = DeepSpeedZeroOptimizer(
  File "/path/to/anaconda3/envs/py10/lib/python3.10/site-packages/deepspeed/runtime/zero/stage_1_and_2.py", line 270, in __init__
    self.dtype = self.optimizer.param_groups[0]['params'][0].dtype
IndexError: list index out of range```

Syno8 avatar Aug 31 '23 09:08 Syno8