PaddlePaddle / PaddleNLP

👑 Easy-to-use and powerful NLP and LLM library with 🤗 Awesome model zoo, supporting wide-range of NLP tasks from research to industrial applications, including 🗂Text Classification, 🔍 Neural Search, ❓ Question Answering, ℹ️ Information Extraction, 📄 Document Intelligence, 💌 Sentiment Analysis etc.
https://paddlenlp.readthedocs.io
Apache License 2.0
12.17k stars 2.95k forks source link

基于UIE-BASE模型定制训练后,使用定制训练的模型进行预测任务,每一次预测完后的显存不释放,导致随着预测次数增加,显存直接爆掉 #6306

Open Eavinn opened 1 year ago

Eavinn commented 1 year ago

[Question]: 按照 https://github.com/PaddlePaddle/PaddleNLP/tree/develop/model_zoo/uie 教程基于uie-base模型做训练,训练完成之后模型保存在MODEL_PATH,使用 Taskflow('information_extraction', schema=self.schema, task_path=MODEL_PATH)去做预测任务,每预测一次GPU已用显存都会增大500M左右(模型大约500M),直到最后显存不足。

后尝试提前使用paddle.set_flags()加入FLAGS_eager_delete_tensor_gb、FLAGS_memory_fraction_of_eager_deletion、FLAGS_fast_eager_deletion_mode、FLAGS_fraction_of_gpu_memory_to_use、FLAGS_use_cuda_managed_memory全局变量设置,没有任何效果。

使用版本: paddlepaddle-gpu 2.4.2.post117 paddlenlp 2.5.2

附截图: image image image

Eavinn commented 1 year ago

通过阅读源码,感觉源码写的有点问题,我修改将保存md5值的逻辑放在下面,暂时解决了显存爆掉的问题,但是预测完成之后显存无法释放的问题还是无法解决。 image

xinliqingpi commented 1 year ago

官方会修复这个吗?

Eavinn commented 1 year ago

官方会修复这个吗?

感觉官方可能没空修复BUG

tianchiguaixia commented 1 year ago

我也遇到这个问题

tianchiguaixia commented 1 year ago

我知道了,还得看scheme是否修改,如果scheme修改了,修改一次,都是重新加载新模型

Eavinn commented 1 year ago

我知道了,还得看scheme是否修改,如果scheme修改了,修改一次,都是重新加载新模型

你有想到什么办法, 每次预测完后,完全释放掉显存吗?

tianchiguaixia commented 1 year ago

语出时候使用里面的fp16 onnx预测

shopexdream commented 1 year ago

我知道了,还得看scheme是否修改,如果scheme修改了,修改一次,都是重新加载新模型

有道理,但是预测计算后,为啥不释放GPU呢?