大模型精度、量化、LLM/VLM/VLA 概念梳理
大模型精度、量化、LLM/VLM/VLA 概念梳理
适合嵌入式机器人、端侧模型部署,博客/学习笔记版本,附带显存计算公式说明。
目录
1. 精度格式与全量/量化
精度格式
- FP32:4字节,精度最高。用于训练过程中的中间计算,不保存模型权重。
- BF16(Brain‑Float16):2字节浮点,指数范围与FP32相同,不容易溢出。现代 LLM/VLM/VLA 训练的主流全量权重存储格式。
- FP16:2字节 IEEE 浮点,小数精度更好,但数值范围窄,容易溢出变成 NaN。老卡(V100)训练产出的全量权重常用。
全量模型:权重为 BF16 / FP16,没有整数量化,推理精度最高。
⚠ BF16权重不能直接强制转 FP16,部分数值会越界,造成推理崩坏。
量化(狭义定义)
部署阶段,将浮点权重映射为整数 INT8 / INT4,附带缩放系数 scale / 零点 zero-point。效果:显存下降、推理提速,但会带来精度损失。
- INT8:显存相比BF16减半,精度损失较小。
- INT4:显存进一步压缩,精度损失更大。
广义口语场景:FP32→BF16/FP8 的降位宽操作,大家也俗称“量化”;但本质只是浮点截断,没有scale、不转换成整数,不属于狭义量化。
重要区分:量化 ≠ 归一化
归一化仅缩放输入数据,不改变存储位宽;量化是改变权重存储位宽,属于有损压缩。
完整链路
训练 → 输出全量权重(BF16/FP16)
- 显存充足硬件:直接 BF16 推理(最优方案)
- 显存紧张 / 边缘设备 / 高并发场景:部署阶段量化为 INT8 / INT4
VLA 特殊点
机器人端侧部署(如 RK3588),VLA 做 INT4/INT8 量化,除节省显存外,还会影响机器人闭环控制延迟。
部分 VLA 实验现象:INT4 任务表现尚可;INT8 有时会出现动作分布偏移,直接降低真机任务成功率。
2. LLM / VLM / VLA 对比总览
| 模型 | 全称 | 输入 | 输出 | 核心定位 | 代表模型 |
|---|---|---|---|---|---|
| LLM | 大语言模型 | 文本 | 文本token | 只理解文字,无视觉能力,不能控制硬件;目标是理解并生成人类语言 | Llama、Qwen‑LLM |
| VLM | 视觉‑语言模型 | 文本+图像/视频 | 文本token | 可以看懂图片,输出文字描述,不会输出动作 | LLaVA、Qwen‑VL、InternVL |
| VLA | 视觉‑语言‑动作模型 | 图像+文本指令+机器人状态 | 关节/轨迹/动作token | 看懂画面、听懂指令,直接输出动作控制机器人硬件 | OpenVLA、RT‑2、π0、GR00T‑N1 |
继承关系
LLM(文本底座) → VLM(增加视觉编码器) → VLA(VLM基座再加动作输出头,把动作当成token生成)
关键概念区分
- Agent 是调度外壳,不是模型;Agent 的大脑可以选用 LLM/VLM;VLA 是执行动作的模块,不能充当Agent的规划大脑。
- VLM 底层基座一定是 LLM(图像编码器 + LLM主干)。
- VLA 存在两条技术路线:一部分基于 LLM-VLM 大模型改造;另一类如 ACT/Diffusion Policy,是独立网络,不依赖LLM。
- RAG 属于 Agent 的工具,用于私有知识库问答,不会修改模型权重。
功能简述
- LLM:只处理文字读写
- VLM:增加视觉输入,看图,但只能输出文字。例如识别画面后输出“拿起杯子”,但不会输出机械臂关节角度。
- VLA:视觉+语言+动作输出,把“拿起杯子”转化为机械臂关节动作,直接驱动硬件。
配套:World Model(世界模型)
不输出动作;输入当前观测 + 假想动作,预测未来环境变化。
作用:给 VLA 做规划、模拟推演、评估候选动作;和VLA互补,不是替代关系。
3. 实操要点
- 训练产出的权重都是 BF16 全量权重,量化操作在部署阶段执行,训练不会产出 INT 整数权重。
- 服务器显卡显存充足,优先使用 BF16;边缘板卡(RK3588)受显存限制,必须做 INT8 / INT4 量化。
- VLA 对量化更敏感:评估不能只看文本指标,需要重点关注动作分布漂移、闭环延迟。量化完成后,必须在仿真环境+真机验证任务成功率。
- BF16权重优先使用硬件原生BF16推理;硬件不支持BF16时,优先选择INT8量化,不要强行转FP16。
4. 显存占用计算说明(Qwen-1.5B示例)
问题:Qwen-1.5B 默认权重是BF16吗?显存加载时占用
1.5 * (16/8) GB?
基础公式
权重显存计算公式:
权重显存(Byte) = 参数数量 × 每个参数占用字节数
BF16 / FP16:每个参数占 2 Byte
INT8:每个参数占 1 Byte
INT4:每个参数占 0.5 Byte
16 bit = 2 Byte,所以 bit/8 就是字节数。
BF16 下:显存 ≈ 参数规模(B) × 2 (GB)
✅ Qwen-1.5B BF16权重:
1.5B × 2 Byte = 3GB。
也就是 1.5 * (16/8) = 3GB,这个计算公式本身是对的。
重要补充两点:
- Qwen-1.5B 开源权重默认分发格式
Qwen2.5-1.5B-Instruct 官方发布的权重,原生是 BF16。
注意:这个 3GB 仅为模型权重本身显存,不包含KV缓存、激活值、推理框架开销。
实际推理时,总显存占用 = 模型权重 + KV Cache + 激活 + 框架开销。上下文越长,KV缓存占用越高。
- 量化后计算
- INT8:1.5B × 1Byte = 1.5GB
- INT4:1.5B × 0.5Byte = 0.75GB
举例:Qwen2.5-1.5B INT4量化,权重仅约0.75GB,RK3588这类边缘芯片可以轻松载入。
5. 一句话速记
训练产出 BF16 全量;显存够直接跑,显存不够部署做 INT8/INT4 量化;LLM 看文字,VLM 看图片说文字,VLM 基础上 VLA 输出动作驱动机器人。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)