Deep learning 运行BERT模型时google colab中的RAM波动

Deep learning 运行BERT模型时google colab中的RAM波动,deep-learning,nlp,ram,bert-language-model,huggingface-transformers,Deep Learning,Nlp,Ram,Bert Language Model,Huggingface Transformers,我正在google colab上运行一个简单的评论分类任务。我使用DistilBERT进行上下文嵌入。我只使用了4000个训练样本,因为笔记本不断崩溃。 当我运行单元获取嵌入时,我会记录RAM利用率的增加情况。我看到它在3gb到8gb之间振荡。 不应该只是增加吗?有人能解释一下这在较低层次上是如何工作的吗 这是我的代码,最后是我看到上面提到的东西的地方 #对于DistilBERT: 模型\类,标记器\类,预训练\权重=(ppb.DistilBertModel,ppb.distilbert标记器,

我正在google colab上运行一个简单的评论分类任务。我使用DistilBERT进行上下文嵌入。我只使用了4000个训练样本,因为笔记本不断崩溃。 当我运行单元获取嵌入时,我会记录RAM利用率的增加情况。我看到它在3gb到8gb之间振荡。 不应该只是增加吗?有人能解释一下这在较低层次上是如何工作的吗

这是我的代码,最后是我看到上面提到的东西的地方

#对于DistilBERT:
模型\类,标记器\类,预训练\权重=(ppb.DistilBertModel,ppb.distilbert标记器,'distilbert base uncased')
##想要伯特而不是迪斯蒂伯特?取消对以下行的注释:
#模型\类,标记器\类,预训练\权重=(ppb.BertModel,ppb.bertokenizer,'bert base uncased')
#加载预训练模型/标记器
标记器=标记器\u类。来自\u预训练(预训练的\u权重)
模型=模型类。来自预训练(预训练权重)
最大长度=80
tokenized=sample['comment\u text'].apply((lambda x:tokenizer.encode(x,add\u special\u tokens=True,max\u length=max\u len)))
padded=np.array([i+[0]*(max_len-len(i))表示标记化.values中的i)
注意,掩码=np.where(填充!=0,1,0)
注意
输入=火炬张量(填充)
注意面具=火炬张量(注意面具)
**使用手电筒。无梯度()
最后隐藏状态=模型(输入ID,注意屏蔽=注意屏蔽)**