首页 > 其他分享 >如何估算transformer模型的显存大小

如何估算transformer模型的显存大小

时间:2022-08-30 10:57:09浏览次数:82  
标签:显存 transformer 估算 模型 内存 modal memory activations

在微调GPT/BERT模型时,会经常遇到“ cuda out of memory”的情况。这是因为transformer是内存密集型的模型,并且内存要求也随序列长度而增加。所以如果能对模型的内存要求进行粗略的估计将有助于估计任务所需的资源。

如果你想直接看结果,可以跳到本文最后。不过在阅读本文前请记住所有神经网络都是通过反向传播的方法进行训练的, 这一点对于我们计算内存的占用十分重要。

  1. total_memory = memory_modal + memory_activations + memory_gradients

这里的memory_modal是指存储模型所有参数所需的内存。memory_activations是计算并存储在正向传播中的中间变量,在计算梯度时需要使用这些变量。因为模型中梯度的数量通常等于中间变量的数量,所以memory_activations= memory_gradients。因此可以写成:

  1. total_memory = memory_modal + 2 * memory_activations

所以我们计算总体内存的要求时只需要找到memory_modal和memory_activations就可以了。

 

完整文章:

https://avoid.overfit.cn/post/6724eec842b740d482f73386b1b8b012

标签:显存,transformer,估算,模型,内存,modal,memory,activations
From: https://www.cnblogs.com/deephub/p/16638532.html

相关文章

  • 在 ML.NET 中使用Hugginface Transformer
    本文主要来自https://rubikscode.net/2021/10/25/using-huggingface-transformers-with-ml-net/,根据自己的理解做了一些修改。ML.NET集成的ONNX运行时,Hugginface提供了......
  • 【CVPR2022】LAVT: Language-Aware Vision Transformer for Referring Image Segmenta
    【CVPR2022】LAVT:Language-AwareVisionTransformerforReferringImageSegmentation论文地址:https://arxiv.org/abs/2112.02244代码地址:https://github.com/yz93......
  • 查询显存
    #coding:utf-8importos#popen返回文件对象,同open操作一样foriin[1,2,2]:f=os.popen(r"nvidia-smi","r")l=f.read().split('\n')print('|==========......
  • Event Transformer. A sparse-aware solution for efficient event data processing
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!  CVPR2022 Abstract对于在资源匮乏和具有挑战性的环境中运行的许多应用程序来说,事件摄像机是非常感......
  • 使用Pytorch手写ViT — VisionTransformer
    《TheAttentionisallyouneed》的论文彻底改变了自然语言处理的世界,基于Transformer的架构成为自然语言处理任务的的标准。尽管基于卷积的架构在图像分类任务中仍然是......
  • 名校 AI 课程|斯坦福 CS25:Transformers United 专题讲座
    自2017年提出后,Transformer名声大噪,不仅颠覆了自然语言处理(NLP)领域,而且在计算机视觉(CV)、强化学习(RL)、生成对抗网络(GANs)、语音甚至是生物学等领域也大显锋芒,于是就有了近......
  • Transformer模块初探
    Transformer笔记前言背景 Transformer依赖于SelfAttention的知识。Attention是一种在深度学习中广泛使用的方法,Attention的思想提升了机器翻译的效果。​ 2017......
  • 68transformer
    点击查看代码importmathimportpandasaspdimporttorchfromtorchimportnnfromd2limporttorchasd2l#@saveclassPositionWiseFFN(nn.Module):"""......
  • 【MySQL】MySQL估算redo日志的容量
    在MySQL8.0.30之前mysql>pagergrepsequencePAGERsetto'grepsequence'mysql>showengineinnodbstatusGselectsleep(60);showengineinnodbstatusGLogs......