Llama-2-7b:在 T4 实例上的 Google Colab 上运行 Llama-2-7b 时出现 CUDA 内存不足错误

问题描述 投票:0回答:2

我正在尝试在 Google Colab 上的 T4 实例上运行 Llama-2-7b 模型。我在运行代码行时收到“CUDA 内存不足错误”:

trainer.train().

侧面的 GPU 内存使用图显示,在崩溃之前,GPU 内存使用量约为 6.5/15 GB,而在崩溃时,它飙升至 14.7 GB,然后抛出错误。 我尝试将批量大小减少到 1,并尝试了以下线程中建议的所有其他内容。 如何避免 PyTorch 中的“CUDA 内存不足”

有人可以指出我如何解决这个问题吗?谢谢。 这是详细的错误消息:


OutOfMemoryError Traceback(最近一次调用最后一次) 在 ()

  1 # Train model

----> 2 trainer.train()

-31帧-

/usr/local/lib/python3.10/dist-packages/bitsandbytes/autograd/_functions.py 向前(ctx,A,B,out,bias,quant_state)

514         # 1. Dequantize
515         # 2. MatmulnN

--> 516 输出 = torch.nn.function.linear(A, F.dequantize_4bit(B, quant_state).to(A.dtype).t(),bias)

517 
518         # 3. Save state

OutOfMemoryError:CUDA 内存不足。尝试分配 172.00 MiB。 GPU 0 的总容量为 14.75 GiB,其中 72.81 MiB 是免费的。进程 38354 有 14.67 GiB 内存正在使用。在已分配的内存中,13.37 GiB 由 PyTorch 分配,303.44 MiB 由 PyTorch 保留但未分配。如果保留但未分配的内存很大,请尝试设置 max_split_size_mb 以避免碎片。请参阅内存管理和 PYTORCH_CUDA_ALLOC_CON 的文档”

google-colaboratory llama
2个回答
0
投票

在尝试了各种建议(包括将batch_size减少到1)和其他建议(例如清空CUDA缓存并执行此链接中找到的垃圾收集)之后,(运行时错误:CUDA错误:内存不足“?),唯一有效的方法对我来说,升级到 Colab Pro 订阅并使用具有高内存的 A100 或 V100 GPU。我运行的特定模型最终在 A100 GPU VRAM 上使用了 22.6 GB 的峰值(批量大小为 1)


0
投票

您使用的 GPU 根本没有足够的 RAM 来训练该模型。

训练时,除了模型参数和数据之外,您还需要考虑优化器状态和激活消耗的内存。

您可能会发现这篇文章很有帮助https://blog.eleuther.ai/transformer-math/

© www.soinside.com 2019 - 2024. All rights reserved.