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

ModelScope的显存没有跑别的任何东西怎么解决?

部署模型,docker本地运行,显卡是Tesla T4,操作系统是ubuntu 22.04 ,ModelScope的显存没有跑别的任何东西怎么解决? 启动命令是:
docker run --rm --name server --shm-size=50gb --gpus='"device=0"' -e MODELSCOPE_CACHE=/modelscope_cache -v /data/model/cache:/modelscope_cache -p 80:8000 registry.cn-beijing.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda11.8.0-py310-torch2.1.0-tf2.14.0-1.10.0 modelscope server --model_id=qwen/Qwen-7B-Chat --revision=v1.0.5
报错说我显存不够,报错内容
torch.cuda.OutOfMemoryError: LLMPipeline: CUDA out of memory. Tried to allocate 36.00 MiB. GPU 0 has a total capacty of 14.58 GiB of which 22.50 MiB is free. Process 17739 has 14.55 GiB memory in use. Of the allocated memory 14.45 GiB is allocated by PyTorch, and 759.00 KiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

展开
收起
小小爱吃香菜 2024-01-09 21:21:49 133 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    根据您的描述,您在使用ModelScope时遇到了显存不足的问题。为了解决这个问题,您可以尝试以下方法:

    1. 减小批量大小(batch size):在运行模型时,尝试减小批量大小,以减少每次迭代所需的显存。例如,将--batch_size=4更改为--batch_size=2或更小的值。

    2. 使用梯度累积(gradient accumulation):梯度累积是一种技术,通过多次更新模型参数来累积梯度,从而减少每次迭代所需的显存。要使用梯度累积,您可以在运行命令中添加--gradient_accumulation_steps参数,例如--gradient_accumulation_steps=4

    3. 调整显存分配策略:您可以尝试调整显存分配策略,以便更好地利用您的显卡资源。例如,您可以尝试设置PYTORCH_CUDA_ALLOC_CONF环境变量,以调整PyTorch的内存分配策略。具体来说,您可以设置max_split_size_mb参数,以控制PyTorch在分配显存时的最大分割大小。例如,将PYTORCH_CUDA_ALLOC_CONF="max_split_size_mb=500"添加到运行命令中。

    2024-01-13 19:26:03
    赞同 展开评论 打赏
  • 先换qwen-1.8b模型试一下,如果可以就是显存被占用了。此回答整理至钉群“魔搭ModelScope开发者联盟群 ①”

    2024-01-09 22:59:34
    赞同 展开评论 打赏

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

相关电子书

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