Shitao Xiao
Shitao Xiao
max_length, train_group_size, 以及batch size。如果占用过多,可以参考https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune#3-train 开启deepspeed和gradient
> 请问能具体介绍下训练过程中哪些变量会占用较多内存吗?在测试中,我发现程序在后向传播会出现OOM。 主要是模型的中间结果,使用gradient checkpointing能大幅降低显存
> 请问batch size大小会对微调模型的performance有影响吗?在数据量为5W左右时,batch size取多少合适? 会有一定的影响。在使用难负样本的情况下,建议总的batch size可以开到128, 256的样子。
> 想请教一下,为何开启DeepSpeed之后没有显存上的节省,ZeRO1/2/3都没有效果,是因为模型本身原因不支持吗?但是ZeRO1/2应该只有优化器和梯度相关 支持的。可以确认一下是否真开启了DeepSpeed,ZeRO2目前是无法使用的 。另外,优化器所占空间不大,所以可能节省不太明显。
> 我的 neg是 20 --train_group_size 为21 --max_len 1024为什么一直 报这个错误RuntimeError: The expanded size of the tensor (888) must match the existing size (514) at non-singleton dimension 1. Target sizes: [16, 888]....
1. 可以从其他地方下载hotpotqa,这份数据挺常见 2. 全部使用了,但经过了采样,一共大概10000条左右 3. 有重复,我们没有专门去重。medi数据质量不高,我们进行了过滤 4. fever 5. 完整数据训练,训练5k个step 6. 采集了15个负样例。除了medi,其他检索数据集都进行了采样。
具体的报错信息应该还在截图界面的上面,可以往上翻查看更具体的信息
应该是环境的问题,看起来是bitsandbytes的问题,可以去其repo咨询
跟batch size, max_length有关,减小batch size和max length就可降低显存占用。 没有看到具体报错信息,难以判断问题所在。可以尝试单卡运行,看是否报错。
不可行,bge-reranker-large和bge-large的使用方式不一样,bge-reranker-large无法输出向量。 多语言模型我们正在训练中。