LLM模型资源占用优化
模型加载流程
模型加载时, 做这些事情:
加载配置信息
模型结构、层数、注意力头数、参数精度等元信息
加载模型权重
下载或使用已经缓存的模型权重文件
如果模型使用
bin
格式,需要PyTorch版本大于等于2.6若PyTorch版本低于2.6,则需要使用safetensors格式
初始化张量(tensor)结构
根据第一步加载的配置信息构造张量,准备内存映射
将第二步下载的模型权重,以第一步设定的参数精度加载进第三步初始化的张量结构
分配计算设备,通常为 GPU(CUDA),支持 CPU 回退
参数精度
所谓『参数精度』,指的是模型的每个参数(权重)会使用多少bit存储
而常用的精度有四个级别:
内存占用
以4b模型为例,它在不同精度下加载,内存占用如下:
但是模型不是加载完就可以的,它还需要运算,运算也需要内存,通常是模型本身占用内存的60%,也就是说,以4b模型为例,fp16精度加载,它需要的内存是这样的:8 + 8 * 0.6 = 8 * 1.6 = 12.8G
选择策略
通常来说,模型的选择和优化有两个方向:小模型,高精度;大模型,低精度。
如何选择?
模型大小决定了模型能做什么,加载精度决定了模型能做到什么程度
因此,有如下选择建议:
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果