greatewei
greatewei
> 大佬解决了吗,我遇到一样问题,而且随着问答次数上升,显存不断增加,并没有输出结果后释放显存,最终导致溢出。
> 这样的方式是否也能应对并发请求的场景,目前观察到的现象只要有问答显存就会增长,num_beams和max_new_tokens参数减小后的效果是显存增长速度变慢,但是始终是增加,及时问答结束也并且未能得到释放
> @greatewei @yuxuan2015 我刚才看了一下,确实是我们的锅,我们的chat.sh脚本中的“CUDA_VISIBLE_DEVICES”打成了"CUDA_VISIBLE_DEVIECES"导致没有指定确切的显卡,同时由于peft目前自带的问题会造成有一定的显存泄露的问题,可以将"CUDA_VISIBLE_DEVICES"修改正确,或者拉去我们最新的代码 我尝试了几个case,总的来说显存是只增不降,如果将load_8bit修改为false,响应速度将会很快,但是显存增长也很快,是否有办法结束对话后自动释放显存空间呢?
> @greatewei 把上面说的那个问题修改了也是这样吗 是的,只要问题内容足够长,显存会不断增长,load8bit 设置为false 效果更明显
> 随着记忆长度的增加(输入长度变长),显存是会增长的。最后达到max_memory所对应的极限长度。 使用两段不同的长文本进行测试的效果还是会出现显存溢出,可能还需要其他方法处理。
> @greatewei 你能提供你的显卡类型和max_memory设置的大小吗 v100, 32G显存, max_memory:1024(这个参数我进行了忽略,我采用了llama-index的方式,需要提供更多上下文),即使max_memory参数进行了限制,增个服务的显存是只增不减的,只要尝试次数过多,或者直接忽略max_memory参数的限制,可以很快的复现。
> @greatewei 就是你使用的不是我们提供的脚本? 使用你们原版的chat.py脚本可以复现,但是不是很明显,需要改造一下。
> @greatewei 使用我们的脚本把max_memory设置好了应该是不会有问题的。我也没有你现在的代码我也复现不了你的情况。 我恢复了脚本,将load_8bit设置为False 启动命令: CUDA_VISIBLE_DEVICES=0 python -u chat.py --model_path llama-7b-hf --lora_path Chinese-cuna-lora-7b-3epoch-belle-and-guanaco  load_8bit=False 启动后:9370MiB / 32768MiB ---------------- 提问第一个问题: 总结以下内容: 《黑客帝国》 在矩阵中生活的一名年轻的网络黑客尼奥(基努·里维斯饰)发现,看似正常的现实世界实际上似乎被某种力量控制着,尼奥便在网络上调查此事。而在现实中生活的人类反抗组织的船长墨菲斯(劳伦斯·菲什伯恩饰), 也一直在矩阵中寻找传说的救世主,就这样在人类反抗组织成员崔妮蒂(凯莉·安·摩丝饰)的指引下,两人见面了,尼奥也在墨菲斯的指引下,回到了真正的现实中,逃离了矩阵,这才了解到,原来他一直活在虚拟世界当中 [5] 。 《黑客帝国2:重装上阵》 黑客帝国 黑客帝国(2张) 实际上,整个《重装上阵》是尼奥探寻自己使命背后真相的过程,他要为自己的行动寻找一个可以接受的理由。在上集打败史密斯(雨果·维文饰)、救出墨菲斯之后,尼奥随同亲密爱人崔妮蒂和其他战友一起,乘坐Nebuchadnezzar号飞船返回地球上最后一个人类据点——锡安基地。在那里,他们和其他自由战士们聚集到了一起。就在这时,母体系统决定“先下手为强”,派遣了为数250000的电子乌贼大军,开始进攻锡安基地,微弱的基地防守力量根本不足以对抗如此强大的机甲兵团,看来人类最后的香火也岌岌可危。可是,“母体取经”的道路注定是凶险多端的:在寻找母体系统内唯一知道系统弱点的“制钥者”的过程中,尼奥、墨菲斯和崔妮蒂遇到了前所未有的困难...
> @greatewei 他这个显存变化应该是他生成长度不同造成的变化 嗯,但是一直没有释放,目前我的解决方案是回答输出后释放缓存,效果很明显:torch.cuda.empty_cache()