ScarlettSun9 2024-03-24 22:14 采纳率: 0%
浏览 73

模型微调时 CUDA out of memory 的问题

用 LoRA 微调 llama 模型的时候 CUDA out of memory 了

使用2张A100,40G显存,已经将 batchsize 降为2了,也设置了set_per_process_memory_fraction,nvidia-smi没有占用显存,ps -ef也没有僵尸进程。求指教!

img

报错信息⬆️

img

nvidia-smi⬆️

img

ps -ef 查看僵尸进程⬆️

  • 写回答

2条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-03-24 22:16
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题描述: 在使用 LoRA 进行微调 llama 模型时,出现了 CUDA out of memory 的错误提示。已经尝试将 batchsize 降为2,并设置了 set_per_process_memory_fraction,但仍无法解决问题。同时,nvidia-smi 也未显示占用显存,ps -ef 查看也没有僵尸进程。求教解决方案。 解决方案:
    1. 检查显存是否足够 首先,需要确认显存是否足够。在使用 LoRA 进行微调 llama 模型时,需要同时加载原始模型和微调模型,因此会占用较大的显存空间。虽然使用了 2 张 A100 显卡,但如果数据量过大,仍可能导致显存不足。可以尝试降低 batchsize,或使用更多的显卡来缓解显存压力。
    2. 检查代码中的内存泄露问题 如果显存足够,可以检查代码中是否存在内存泄露问题。可能存在一些变量占用了过多的内存,导致显存不足。可以使用 Python 的 memory_profiler 库来检查代码中的内存使用情况。 示例代码:
    from memory_profiler import profile
    @profile
    def my_function():
        # your code here
    
    1. 检查 CUDA 版本和驱动版本是否匹配 如果显存足够,代码中也不存在内存泄露问题,那么可能是 CUDA 的版本和驱动版本不匹配导致的。可以使用以下命令来检查 CUDA 和驱动的版本:
    nvcc --version
    nvidia-smi
    

    如果版本不匹配,需要卸载当前版本,下载安装匹配的版本。 4. 检查模型配置是否正确 如果以上方法仍然无法解决问题,可以检查模型配置是否正确。可能存在一些配置参数设置不当,导致模型无法正常运行。 以上是解决问题的一些常见方法和思路,根据具体情况可以选择适合的解决方案。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月24日

悬赏问题

  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥50 win10链接MySQL
  • ¥35 跳过我的世界插件ip验证
  • ¥15 抖音看过的视频,缓存在哪个文件
  • ¥15 自定义损失函数报输入参数的数目不足
  • ¥15 如果我想学习C大家有是的的资料吗
  • ¥15 根据文件名称对文件进行排序
  • ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓
  • ¥15 有人会用py或者r画这种图吗