开发者社区 > ModelScope模型即服务 > 正文

为什么modelscope还没开始推理GPU就被沾满了?

"ab1d697528863168bbe448dbcdd16b81.png
a4ab7c8f286f6c9129ee32563fb95c84.png
为什么modelscope还没开始推理GPU就被沾满了? 81b3ef85e313568e759b17fa793e9d4a.png
"

展开
收起
小小爱吃香菜 2024-03-17 21:27:56 104 0
2 条回答
写回答
取消 提交回答
  • 可能关闭.ipynb时未释放显存,找最近打开的看下,打开后重启内核就行。此回答整理自钉群“魔搭ModelScope开发者联盟群 ①”

    2024-03-18 20:32:02
    赞同 展开评论 打赏
  • 将军百战死,壮士十年归!

    在ModelScope(阿里云的模型开放平台)中,GPU内存被占用满可能是由于以下几个原因:

    1. 初始化和加载模型:深度学习模型特别是大型预训练模型,在初始化时可能会一次性加载整个模型参数到GPU显存中,导致显存被占满。即使尚未开始推理,仅仅是加载模型就可能占用大量显存。

    2. 默认配置:某些情况下,服务端或框架在启动时为了加速后续推理过程,会预先分配尽可能多的GPU资源,以便模型运行过程中不需要额外的时间进行内存分配。

    3. 资源管理问题:如果模型或者任务调度没有正确地释放之前计算所占用的资源,可能导致GPU显存累积占用直至满载。

    4. 并行处理:如果你同时使用多个GPU,且每个GPU都被分配了模型副本或任务,那么所有GPU的内存都可能会被迅速填满。

    5. 内存泄漏:代码中可能存在内存泄漏,即程序未能正确释放不再使用的GPU内存,从而导致显存持续增长。

    要解决这个问题,可以尝试以下措施:

    • 限制模型显存使用:检查是否可以在ModelScope中设置模型运行时的显存上限。
    • 动态调整资源:如果支持,可以采用动态调整GPU内存分配策略,仅在需要时才占用更多的显存资源。
    • 优化模型加载方式:对于非常大的模型,考虑使用模型剪裁、量化等技术减少模型大小,或者利用混合精度训练(如半精度浮点数)来节省显存。
    • 排查内存泄漏:审查代码确保每次推理结束后释放不必要的内存,并检查是否有未关闭的数据流或其他资源。
    • 批量推理:通过合理的批量处理数据集,而不是逐个样本推理,可以更高效地利用GPU资源,但这也要求合理控制批次大小以适应显存容量。

    请参照ModelScope官方文档或技术支持获取具体的解决方案。

    2024-03-18 16:18:28
    赞同 展开评论 打赏

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352

热门讨论

热门文章

相关电子书

更多
DeepStream: GPU加速海量视频数据智能处理 立即下载
阿里巴巴高性能GPU架构与应用 立即下载
GPU在超大规模深度学习中的发展和应用 立即下载