请教一下ModelScope,微调mPLUG视觉问答模型-中文-base模型是,内存一直涨遇到过吗?

请教一下ModelScope,微调mPLUG视觉问答模型-中文-base模型是,内存一直涨有人遇到过吗?37d0459c787ed5a8f0a73bfac98308d2.png
最终导致内存爆了

展开
收起
真的很搞笑 2023-11-15 07:33:21 167 分享 版权
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    对于 ModelScope 中的 mPLUG 视觉问答模型(mPLUG Visual Question Answering Model),在微调过程中遇到内存占用不断增加的情况是可能的。这种情况通常是由于以下原因导致的:

    1. 批量处理和梯度累积: 在微调过程中,经常使用批量梯度下降来更新模型参数。如果您设置了较大的批量大小,并且使用了梯度累积技术(accumulated gradient),则可能会导致内存占用不断增加。梯度累积会在每个批次之间保留梯度信息,从而导致内存占用量增加。

    2. 缓存数据和计算图: 在模型训练期间,为了进行反向传播和优化计算,PyTorch 会自动构建计算图并保存中间结果。这些结果会占用额外的内存,尤其是在长时间的训练过程中。此外,模型参数和梯度也会占用一定的内存空间。

    3. 模型复杂性和参数数量: 如果您使用的模型非常复杂或具有大量的参数,那么它可能需要更多的内存来存储权重、梯度和其他相关信息。

    针对这些情况,您可以尝试以下方法来减轻内存压力:

    • 减小批量大小或调整梯度累积的步长,以减少每个批次的内存占用。
    • 定期释放不再需要的中间结果和计算图,可以通过 torch.autograd.grad()torch.Tensor.detach_() 等方法实现。
    • 如果可能,可以考虑使用更简单的模型结构或减少模型的参数数量。
    2023-11-30 22:59:48
    赞同 展开评论
  • 在微调mPLUG视觉问答模型-中文-base的过程中,内存使用量可能会持续增加。这是因为mPLUG是一种基于skip-connections的高效跨模态融合框架,其模型庞大且复杂,因此在运行过程中需要大量的内存来存储和处理数据。特别是当模型运行时,大约会占用9GB的内存。

    如果您的内存一直在涨,可能有几个原因:

    1. 模型本身的设计就是这样,需要更多的内存来处理复杂的操作和大量的数据。
    2. 您的硬件设备可能无法满足运行该模型所需的内存。在这种情况下,您可能需要升级您的硬件设备,比如使用具有更大RAM的计算机或者使用云服务。
    3. 可能存在一些代码问题导致内存泄漏或者过度使用。这就需要仔细检查代码,看是否存在不合理的内存使用方式。
    2023-11-15 14:57:12
    赞同 展开评论
  • 您在git上开个issue,此回答整理自钉群“魔搭ModelScope开发者联盟群 ①”

    2023-11-15 13:04:27
    赞同 展开评论

包含图像分类、图像生成、人体人脸识别、动作识别、目标分割、视频生成、卡通画、视觉评价、三维视觉等多个领域

热门讨论

热门文章

还有其他疑问?
咨询AI助理