【LLM面试题】显存问题/评估微调所需显存

1.显存问题

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

大模型也分为不同的规格,一般模型的规格会体现在模型的名称上,例如 LLaMA2-13b,13b 就是其模型参数量的大小,意思是 130亿的参数量。
大模型的文件大小与其参数量有关,通常大模型是以半精度存储的, Xb 的模型文件大概是 2X GB多一些,例如 13b 的模型文件大小大约是 27GB 左右。

2. 能否用4 * v100 32G训练vicuna 65b?

一般来说推理模型需要的显存约等于模型文件大小,全参训练需要的显存约为推理所需显存的三倍到四倍,正常来说,在不量化的情况下4张 v100 显卡推理 65b 的模型都会有一些吃力,无法进行训练,需要通过 LoRA 或者****QLoRA 采用低秩分解的方式才可以训练。

补充:如何评估微调所需显存

现有的大模型 默认的是16bits精度,当模型的参数量大小为 x B ,推理所需的显存一般是 x 的 2 倍。对于全参数微调所需显存,目前来说普遍的说法是约为推理所需显存的 3-4 倍(包括模型推理(1倍)、梯度(1倍)、优化器状态(AdamW 2倍,SGD 1倍),也就是 x 的 6-8 倍。但是从实际测试来看的话,全参数微调所需显存约为推理所需显存的10 倍左右,也即 x 的20倍左右。
在这里插入图片描述

3.如何评估你的显卡利用率?

  1. flops比值法gpu利用率 = 实测的flops/显卡理论上的峰值flops。deepspeed实测flops 100t flops,而用的是A100卡理论峰值312t flops,可以得到GPU利用率只有 32.05%。
  2. throughout估计法吞吐量 = example数量/秒/GPU * max_lengthgpu利用率 = 实际吞吐量 / 论文中的吞吐量(假设利用率100%),实测训练时处理样本速度为 3 example/s,一共有4卡,max length 2048,则吞吐量为 1536 token/s/gpu,根据llama论文可以得知,他们训练7B模型的吞吐量约为 3300 token/s/gpu,那么GPU利用率只有46.54%
  3. torch profiler分析法:利用torch profiler记录各个函数的时间,将结果在tensorboard上展示,在gpu kenel视图下,可以看到tensor core的利用率,比如30%。

4. 如何查看多机训练时的网速?

iftop -i eth2 -n  -P

iftop 是外置的命令,可以监控发送流量,接收流量,总流量,运行 iftop 到目前时间的总流量,流量峰值,过去 2s 10s 40s 的平均流量。

5. 如何查看服务器上的多卡之间的NVLINK topo?

nvidia-smi topo -m 

6. 如何查看服务器上显卡的具体型号?

cd /usr/local/cuda/samples/1_Utilities/deviceQuery
make
./deviceQuery

7. 如何查看训练时的 flops?(也就是每秒的计算量)

如果基于deepspeed训练,可以通过配置文件很方便地测试。

{
  "flops_profiler": {
    "enabled": true,
    "profile_step": 1,
    "module_depth": -1,
    "top_modules": 1,
    "detailed": true,
    "output_file": null
    }
}

8. 如何查看对 deepspeed 的环境配置是否正确?

ds_report

9. TF32 格式有多长?

TF32(TensorFloat32)是 NVIDIA 在 Ampere 架构推出的时候面世的,现已成为 Tensorflow 和 Pytorch 框架中默认的32位格式。用于近似 FP32 精度下任务的专有格式,实际上约等于 FP19 也就是19位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值