开发者社区 > ModelScope模型即服务 > 计算机视觉 > 正文

在ModelScope中,会报CUDA out of memory,这个一般怎么处理?

你好 我这边使用了一个ZhipuAI/ChatGLM-6B-int8,运行官方的cli-demo 会报CUDA out of memory,这个一般怎么处理6000dc640741b0b3f91a2801fe324815.png
没看到其他再跑 这个现实没有是不是代表没用到gpu

展开
收起
崔问问 2023-12-03 22:45:26 237 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    根据您的描述,您在使用ZhipuAI/ChatGLM-6B-int8模型时遇到了CUDA out of memory的问题。这可能是因为您的GPU内存不足导致的。您可以尝试以下方法来解决这个问题:

    1. 减小批量大小(batch size):尝试将批量大小从默认值减小到较小的值,例如32或64,以减少每次迭代所需的GPU内存。

    2. 使用CPU运行:如果您的GPU内存不足以支持较大的批量大小,您可以考虑使用CPU运行模型。在运行命令时,添加--device cpu参数,如下所示:

    python cli-demo.py --model_name_or_path "ZhipuAI/ChatGLM-6B-int8" --device cpu
    
    1. 释放其他占用GPU内存的程序:确保在运行模型之前关闭其他占用大量GPU内存的程序,以便为模型腾出足够的内存空间。

    2. 升级硬件:如果可能的话,考虑升级您的GPU内存,以便能够处理更大的批量大小。

    2023-12-04 15:58:49
    赞同 展开评论 打赏
  • 在ModelScope中,如果遇到CUDA out of memory的问题,可以尝试以下方法解决:

    1. 减小批量大小(batch size):将模型的批量大小从默认值减小到适合你的GPU内存的大小。例如,如果你的GPU内存为8GB,可以将批量大小设置为4或2。

    2. 使用梯度累积(gradient accumulation):梯度累积是一种技术,可以在不增加显存占用的情况下,通过多次更新模型参数来累积梯度。你可以尝试将批量大小设置为更大的值,然后使用梯度累积来减少实际的迭代次数。

    3. 使用混合精度训练(mixed precision training):混合精度训练是一种技术,可以在不牺牲性能的情况下,减少显存占用。你可以尝试使用PyTorch或其他深度学习框架提供的混合精度训练功能。

    4. 检查是否有其他程序占用了GPU资源:确保没有其他程序正在使用你的GPU资源。如果有,请关闭这些程序,以便给模型训练腾出足够的显存空间。

    5. 如果以上方法都无法解决问题,可以考虑使用CPU进行训练。虽然这会降低训练速度,但可以避免CUDA out of memory的问题。

    2023-12-04 14:34:29
    赞同 展开评论 打赏
  • 还有其他的在跑吗?gpu显存貌似被占用了。前面如果用了notebook的话,您重启内核试试。。此回答整理自钉钉群:魔搭ModelScope开发者联盟群 ①

    2023-12-04 08:03:38
    赞同 展开评论 打赏

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

相关电子书

更多
视觉AI能力的开放现状及ModelScope实战 立即下载
ModelScope助力语音AI模型创新与应用 立即下载
低代码开发师(初级)实战教程 立即下载