首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >微调GPT2时库达内存不足

微调GPT2时库达内存不足
EN

Stack Overflow用户
提问于 2022-03-19 16:18:09
回答 1查看 882关注 0票数 0

RuntimeError:库达内存不足。尝试分配144.00 MiB (GPU 0;11.17 GiB总容量;10.49 GiB已经分配;13.81 MiB空闲;10.56 GiB被PyTorch总共保留)如果保留内存是>>分配的内存,尝试设置max_split_size_mb以避免碎片化。请参阅内存管理和PYTORCH_CUDA_ALLOC_CONF文档

这是我得到的错误,我试着玩了批量大小,但没有任何效果。我正在google colab上接受培训。

这是与错误有关的代码段:

代码语言:javascript
复制
training_args = TrainingArguments(
output_dir="/content/",
num_train_epochs=EPOCHS,
per_device_train_batch_size=16,
per_device_eval_batch_size=16,
# gradient_accumulation_steps=BATCH_UPDATE,
evaluation_strategy="epoch",
save_strategy='epoch',
fp16=True,
fp16_opt_level=APEX_OPT_LEVEL,
warmup_steps=WARMUP_STEPS,    
learning_rate=LR,
adam_epsilon=EPS,
weight_decay=0.01,        
save_total_limit=1,
load_best_model_at_end=True,     
)

有解决办法吗?

EN

回答 1

Stack Overflow用户

发布于 2022-03-19 17:53:15

你用的是哪种型号?只是拥抱脸的标准gpt-2?我以前在我自己的GPU上对这个模型进行了微调,它只有6GB,并且能够使用8的batch_size,没有问题。

我将尝试以下每一项:

  1. 减少batch_size -您已经尝试过了,您是否一直将其更改为1的batch_size?即使在那时,问题是否也会发生呢?
  2. 我猜你已经在科拉布启动了GPU。分配给你的GPU有点随机。根据我在免费版的经验,你通常会得到类似特斯拉T4 (16 T4)或特斯拉K80 (24 T4)的东西。使用!nvidia-smi -L查看分配给您的GPU。如果您应该看到您有一个低于24 got的模型,请将Notebook-设置转换为None,然后再转到GPU以获得一个新的。或者管理会话,->终止会话,然后重新分配。试几次,直到你得到一个好的GPU。因为您的代码可能不适用于16 or或更低的容量,而可能只使用24 or。一般来说,清除您的资源可能是一个好主意,以防已经加载了一些大型的东西,这首先导致了这个问题。
  3. 虽然我不是这方面的专家:我不确定fp16是否是一个好主意,只使用而不知道您分配了哪个GPU。据我所知,一些GPU(如K80 )不支持它(同样,您可能比我了解更多),这意味着它只会导致培训期间浪费掉一半的资源。如果您不知道fp16意味着将浮动精度从32降到16,那么就使用不太精确的浮点数表示将相同资源的数量提高一倍(但前提是GPU支持它)。
  4. 尝试一下distilgpt2,它是一种性能几乎相同的蒸馏模型。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71539894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档