FlagEmbedding icon indicating copy to clipboard operation
FlagEmbedding copied to clipboard

reranker模型微调会出现数据喂进去,显存占用越来越多,没有批次处理数据清理机制,导致百万级数据微调训练过程很容易报错内存

Open aisen-x opened this issue 1 year ago • 6 comments

EA9869BA-3730-4cd1-AF98-8B9EBBCA4973 看看这个问题如何解决,感谢

aisen-x avatar Feb 23 '24 04:02 aisen-x

内存溢出错误

aisen-x avatar Feb 23 '24 04:02 aisen-x

建议减小batch size,增大gradient_accumulation_steps

staoxiao avatar Feb 23 '24 09:02 staoxiao

我对源码做了如下优化: 使用更高效的数据读取方式: 通过datasets库的流式API来逐步读取数据,避免一次加载整个数据集到内存中。 动态数据加载: 只有在__getitem__方法被调用时才加载和处理数据。 利用DataLoader的num_workers: 通过多线程来加速数据加载。
我在项目中测试完成提交一下代码,ok不

aisen-x avatar Feb 26 '24 03:02 aisen-x

image 修改了一下上述文件

aisen-x avatar Feb 26 '24 03:02 aisen-x

datasets库本身是将数据放在磁盘上的,应该不会占据太多内存。您是在加载数据的时候出现了内存溢出问题吗? 另外,欢迎提交PR。但建议保持原来的方式,增加一个参数用来开启流式API

staoxiao avatar Feb 26 '24 08:02 staoxiao

好的 ,后面项目测试完成再来提交代码

aisen-x avatar Feb 27 '24 09:02 aisen-x