Closed lucasjinreal closed 2 months ago
sam-b的loss我找不到了,我手里有一个sam-l的每个ep的loss打印,如下:
lr为什么是0.0
目前开源的这个base是不可能复现2.6开始这个loss的,可以麻烦看看是什么问题吗?应该不止我一个是这样的情况。除非你用目前的代码能跑出一个这样的loss,那可能就是我们的问题
当前codebase我在检查,因为目前只有我一个人维护vary了,所以可能慢一点, 这个loss是ep末的loss,初始不是2.6,第一个ep末才是2.6,当前codebase的问题是第一个ep loss收敛和我内部的一致,但是一个ep后loss 不动,我还在查原因
好的,感谢跟进,有发现记得pin一下我 第一个epoch end 2.6 ,看起来还算正常
应该是deepspeed 下transformers trainer 的问题,在ep>1时收敛不正常,甚至拿少量图overfit不了,解决这个的问题只有自己写trainer,或者导入我训练好的Vary-tiny(all weights)在你的数据上 continue train
@Ucas-HaoranWei 导入也无法overfit,loss较高。那怎么解决呢?
sam-b的loss我找不到了,我手里有一个sam-l的每个ep的loss打印,如下:
@Ucas-HaoranWei 请问 vit 提升到 sam-l 规模,感知能力有没有增强,发现目前开源的模型,存在单词或字母识别错误。提高 vit 参数,不知道能否修复此问题。在错别字问题上面,想到三个参数可调:
不知道作者做这些实验,帮忙分享下经验。
sam-b的loss我找不到了,我手里有一个sam-l的每个ep的loss打印,如下:
@Ucas-HaoranWei 请问 vit 提升到 sam-l 规模,感知能力有没有增强,发现目前开源的模型,存在单词或字母识别错误。提高 vit 参数,不知道能否修复此问题。在错别字问题上面,想到三个参数可调:
- vit 参数,扩展到 sam-l 或 sam-h
- image_size,提高图片分辨率,从而让 vit 更准
- image_token_len,扩大图片特征输出,从而让 vit 更准
不知道作者做这些实验,帮忙分享下经验。
我们内部的sam-l是1280*1280分辨率,400tokens,为了解决下标上标错误问题,应该cover住你的以上三个参数了,效果强于b不少
@Ucas-HaoranWei 可否回答如何复现训练的问题?
基于transformers的codebase短时间内不好解了,这可能是你用llava那套和这套代码loss在多个ep下不骤降的原因,感觉不少人都想scratch去训一下,我正在协调内部codebase开源
好的,但是有几点错综复杂的现象,有些点指向同一个出错的地方,让我们来推理一下:
看起来都是从头训的问题。
想请教一下,到底要多少数据、大概多久能有涌现效果,如果从头训的话?
我用了2M数据,但是我自己先测的50w,是可以收敛到0.几,我才敢scale upde 只加载sam权重,你是否在train.py里重新load了?如果没有,model.from_pretrain后会丢掉sam weights,需要在这句后面再重新load一次sam
load了。
感觉我们还是得继续看一下,如何复现从头训练,如你所说,50w也能work,我现在差不多也这个数量级,从零的话,后面loss比较难降低,而且我每1000次都推理了一下,基本上没有一个学到东西的渐进过程,可以说是整个过程有点崩。这个得排查一下,哪里没有对齐。
至于deepspeed trainer,感觉可能不是这个原因
transformers库貌似可以通过数据*n遍,来替代多个ep收敛 https://github.com/Ucas-HaoranWei/Vary-toy/issues/30#issuecomment-2050877639
加载vary tiny中的SAM权重继续训练,结果也比较差。
另外代码中的加载部分如果我没有弄错的话应该是这样:
毕竟改了vision_tower_2
作者麻烦有空看一下? 以及如果方便的话,是否可以share 一份loss收敛曲线?