运行一段时间,显存不释放,最终CUDA out of memory
使用官方示例 transformers做serving,显存40G,循环调用,A100 40G显存直接打满,如果不重启,这部分显存不释放
from FlagEmbedding import FlagModel
sentences_1 = ["样例数据-1", "样例数据-2"]
sentences_2 = ["样例数据-3", "样例数据-4"]
model = FlagModel('BAAI/bge-large-zh-v1.5',
query_instruction_for_retrieval="为这个句子生成表示以用于检索相关文章:",
use_fp16=True) # Setting use_fp16 to True speeds up computation with a slight performance degradation
embeddings_1 = model.encode(sentences_1)
embeddings_2 = model.encode(sentences_2)
可以调小batch size,降低显存占用。
可以调小batch size,降低显存占用。
你指的batch size是传入的token数吗? 测试发现,batch_size在128,如果同时请求serving数过多,也会一直不释放,除非重启serving
我也碰到这个问题,我是一次传入batchsize的数据循环做,batchsize每次传入都是一样的,为什么显存占用越来越高?
文本越长,相同的batch size也会占用更多显存。
import torch
torch.cuda.empty_cache() # 在每次推理结束后,释放显存 希望可以帮助到你。
import torch
torch.cuda.empty_cache() # 在每次推理结束后,释放显存 希望可以帮助到你。
谢谢,这个方式我们之前尝试过,随着运行时间的增加,显存占用非常高,当前是限制了总的使用显存大小
import torch torch.cuda.empty_cache() # 在每次推理结束后,释放显存 希望可以帮助到你。
谢谢,这个方式我们之前尝试过,随着运行时间的增加,显存占用非常高,当前是限制了总的使用显存大小
你好,我也遇到了这个问题,请问您后来又解决吗