网站大量收购独家精品文档,联系QQ:2885784924

大模型面试题-42-大模型(LLMs)显存问题面.pdf

大模型面试题-42-大模型(LLMs)显存问题面.pdf

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

大模型(LLMs)显存问题面

来自:AiGC面试宝典

2023年09月16日21:00

1.大模型大概有多大,模型文件有多大?

一般放出来的模型文件都是fp16的,假设是一个nB的模型,那么模型文件占2nG,fp16加载到显存里做推理也

是占2nG,对外的pr都是10n亿参数的模型。

2.能否用4*v10032G训练vicuna65b?

不能。

•首先,llama65b的权重需要5*v10032G才能完整加载到GPU。

•其次,vicuna使用flash-attention加速训练,暂不支持v100,需要turing架构之后的显卡。

(刚发现fastchat上可以通过调用train脚本训练vicuna而非train_mem,其实也是可以训练的)

3.如果就是想要试试65b模型,但是显存不多怎么办?

最少大概50g显存,可以在llama-65b-int4(gptq)模型基础上LoRA[6],当然各种库要安装定制版本的。

4.nB模型推理需要多少显存?

考虑模型参数都是fp16,2nG的显存能把模型加载。

5.nB模型训练需要多少显存?

基础显存:模型参数+梯度+优化器,总共16nG。

activation占用显存,和maxlen、batchsize有关

解释:优化器部分必须用fp32(似乎fp16会导致训练不稳定),所以应该是2+2+12=16,参考ZeRO论文。

注以上算数不够直观,举个例子?

7B的vicuna在fsdp下总共160G显存勉强可以训练。(按照上面计算7*16=112G是基础显存)

所以全量训练准备显存20nG大概是最低要求,除非内存充足,显存不够offload内存补。

6.如何估算模型所需的RAM?

首先,我们需要了解如何根据参数量估计模型大致所需的RAM,这在实践中有很重要的参考意义。我们需要通

过估算设置batch_size,设置模型精度,选择微调方法和参数分布方法等。

接下来,我们用LLaMA-6B模型为例估算其大致需要的内存。

首先考虑精度对所需内存的影响:

•fp32精度,一个参数需要32bits,4bytes.

•fp16精度,一个参数需要16bits,2bytes.

•int8精度,一个参数需要8bits,1byte.

其次,考虑模型需要的RAM大致分三个部分:

•模型参数

•梯度

•优化器参数

•模型参数:等于参数量*每个参数所需内存。

•对于fp32,LLaMA-6B需要6B*4bytes=24GB内存

•对于int8,LLaMA-6B需要6B*1byte=6GB

•梯度:同上,等于参数量*每个梯度参数所需内存。

•优化器参数:不同的优化器所储存的参数量不同。

对于常用的AdamW来说,需要储存两倍的模型参数(用来储存一阶和二阶momentum)。

•fp32的LLaMA-6B,AdamW需要6B*8bytes=48GB

•int8的LLaMA-6B,AdamW需要6B*2bytes=12GB

除此之外,CUDAkernel也会占据一些RAM,大概1.3GB左右,查看方式如下。

torch.ones((1,1)).to(cuda)

print_gpu_utilization()

GPUmemoryoccupied:1343MB

综上,int8精度的LLaMA-6B模型部分大致需要6GB+6GB+12GB+1.3GB=25.3GB左右。

再根据LLaMA的架构(hidden_size=4096,intermediate_size=11008,num_hidden_layers=32,

context_length=2048)计算中间变量内存。

每个instance需要:

(4096+11008)*2048*32*1byte=990MB

所以一张A100(80GBRAM)大概可以在int8精度;batc

文档评论(0)

189****7098 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档