# 大模型中的参数、权重与数值类型整理 ## 一、先理解:模型里到底存的是什么? 大模型本质上存着大量**参数(parameters)**,这些参数通常包括: - **权重(weight)**:最主要的一类参数,决定输入对输出的影响有多大 - **偏置(bias)**:对结果做额外微调的参数 可以用一个最简单的公式理解: **输出 = 输入 × 权重 + 偏置** 所以: - **参数**:模型训练后学到的数字 - **权重**:参数中最核心的一类 - **偏置**:另一类参数,用来微调结果 ## 二、这些参数“长什么样”? 参数本质上就是一个个数字,只不过通常不是单独存在,而是组成向量、矩阵或更高维数组。 | 概念 | 是什么 | 长什么样 | 通俗理解 | |---|---|---|---| | 参数(Parameter) | 模型训练出来的可学习数字 | `0.125`、`-1.37`、矩阵中的一个元素 | 模型记住世界的“数字痕迹” | | 权重(Weight) | 参数中最主要的一类 | `weight[3][5] = 0.84` | 决定某个输入影响有多大 | | 偏置(Bias) | 另一类参数 | `bias = 0.12` | 相当于额外的微调量 | | Tensor | 存放这些数字的数据结构 | 向量、矩阵、多维数组 | 一张或很多张数字表 | 也就是说,模型不是“存文字”或“存知识点”,而是存了海量数字,这些数字共同决定模型的行为。 ## 三、参数是用什么格式保存的? 模型参数需要用某种**数值类型(Tensor type / dtype)**来保存。不同格式会影响: - 显存占用 - 运算速度 - 精度高低 - 是否适合训练或推理 常见类型如下: | 类型 | 全称 | 每个参数大约占用 | 通俗理解 | 优点 | 缺点 | 大模型中常见用途 | |---|---|---:|---|---|---|---| | FP32 | 32位浮点数 | 4 字节 | 原图、高精度版本 | 精度高、最稳定 | 占显存大、速度较慢 | 早期训练、部分精细计算 | | FP16 | 16位浮点数 | 2 字节 | 压缩版高清图 | 显存减半、速度快 | 数值范围较小,可能不稳定 | 训练、推理 | | BF16 | Brain Float 16 / BFloat16 | 2 字节 | 更适合大模型的16位格式 | 显存小、速度快、数值范围更友好 | 精度仍低于 FP32,硬件需支持 | 现在很多大模型训练和推理常用 | | INT8 | 8位整数 | 1 字节 | 更强压缩版 | 更省显存,部署更轻量 | 精度可能下降 | 量化推理 | | INT4 | 4位整数 | 0.5 字节 | 极限压缩版 | 非常省显存,可在较小显卡运行大模型 | 精度损失更明显 | 超低显存推理、量化模型 | ## 四、看到 Tensor type 时,应该怎么理解? 很多模型信息里会写 `Tensor type`,它表示**模型参数是用什么数值格式保存的**。 | 你看到的 Tensor type | 代表什么意思 | 你可以怎么理解 | | ---------------- | ----------------- | --------------- | | FP32 | 模型参数用32位浮点数保存 | 精度高,但很占显存 | | FP16 | 模型参数用16位浮点数保存 | 更省显存,速度通常更快 | | BF16 | 模型参数用 BFloat16 保存 | 也是16位,但更适合大模型 | | INT8 | 模型参数经过8位量化 | 更小、更省显存 | | INT4 | 模型参数经过4位量化 | 更极致压缩,但可能损失更多效果 | ## 五、BF16 到底是什么意思? 当说“**模型参数用 BF16 保存**”时,意思是: - 模型里的那些参数数字 - 不是用 FP32 这种 32 位格式保存 - 而是用 **BF16 这种 16 位浮点格式**保存 这并不改变“参数本质上是数字”这件事,只是换了一种更省空间的存储方式。 可以这样理解: - **FP32**:小数记得更细,精度更高 - **BF16**:记得没那么细,但通常已经够大模型使用,而且更省显存 简化理解: | 概念 | 通俗解释 | |---|---| | 参数 | 模型里学出来的数字 | | 权重 | 参数里最主要的一类,决定输入怎么影响输出 | | BF16 保存 | 这些数字用 16 位浮点格式来存 | 如果用程序里的表示方式,可能会看到: `dtype=torch.bfloat16` 意思就是:这个张量里的数字,用的是 **BF16** 格式。 ## 六、模型显示“Tensor type: BF16”时意味着什么? 例如看到下面的信息: - **Tensor type: BF16** - **参数量: 32B** 它的含义是: 1. 这个模型大约有 **320亿个参数** 2. 这些参数主要用 **BF16** 格式存储 3. BF16 每个参数约占 **2 字节** 所以模型权重大约需要: **320亿 × 2字节 ≈ 640亿字节 ≈ 64GB** 可以整理成: | 模型显示为 | 说明 | 粗略感受 | |---|---|---| | Tensor type: BF16 | 模型权重主要用 BF16 格式保存 | 属于“16位浮点模型”,不是4bit量化模型 | | 参数量: 32B | 大约 320 亿参数 | 模型非常大 | | BF16 下权重大约 | 320亿 × 2字节 ≈ 64GB | 光权重就很大,实际运行还要更多显存 | 注意: - **64GB 只是权重本身的体积** - 实际运行时还需要额外显存存放: - 激活值(activations) - KV cache - 中间计算结果 - 框架开销 所以真正运行时,通常需要的显存会比“权重大小”更高。 ## 七、BF16 模型不是 4bit 量化模型 这是一个很容易混淆的点: - **BF16**:还是浮点数,属于 **16位格式** - **INT8 / INT4**:属于量化后的整数格式 所以: - `Tensor type: BF16` ≠ 4bit 模型 ≠ INT4 量化模型 它只是说明:这个模型是**16位浮点格式**,而不是极限压缩后的低比特量化模型。 ## 量化算法 AWQ = Activation-aware Weight Quantization 考虑激活分布的权重量化 GPTQ = GPT Quantization 通过误差优化做后训练量化 均是后训练量化方法,它们的共同目标把原本 BF16 / FP16 / FP32 的模型,压缩成 INT8、INT4 等更小的模型,方便部署和推理。 ## 精度概念 相对 **双精度(FP64)** 来说的。 - **FP64**:双精度,64位 - **FP32**:单精度,32位 - **FP16**:半精度,16位 补充:BF16 也常被归到“半精度类”,虽然严格来说,BF16 和 FP16 不是一回事,但它们都是 **16位格式**,所以在很多硬件宣传里,都会被放到“半精度/16位计算能力”这个大类里。 ## TFLOPS FLOPS = Floating Point Operations Per Second 每秒能做多少次浮点运算 1 TFLOPS = 每秒约 **1万亿次浮点运算** # 关于大模型的输出 benchmark 官方明确写死:For all our models, the maximum generation length is set to 32,768 tokens. ```json { "model": "deepseek-r1", "messages": [ { "role": "user", "content": "你好" } ], "max_tokens": 9000, "temperature": 0.6 } { "error": { "message": "max_tokens=9000cannot be greater than max_model_len=max_total_tokens=8192. Please request fewer output tokens. (parameter=max_tokens, value=9000)", "type": "BadRequestError", "param": "max_tokens", "code": 400 } } ``` ![](../../../attachment/images-paste/image-20260325103309652.png) ``` { "messages": [ { "role": "user", "content": "你好。请你用最详细的方式介绍自己,包括你的训练数据、能力范围、可以帮我做什么事情,一步一步详细展开,至少写 5000 字以上。" } ], "max_tokens": 100, "temperature": 0.8 } { "id": "chatcmpl-8c941055d2a6155b", "object": "chat.completion", "created": 1774405914, "model": "deepseek-r1", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "我是由字节跳动独立研发的人工智能助手豆包,能够为你提供多场景、高效率的智能服务。我的核心能力包括:日常问答咨询、知识科普、学习辅助、文案创作、代码编写、逻辑推理、生活建议、情感陪伴等。我可以帮你写文案、做总结、解数学题、查知识点、构思创意内容,也能陪你聊天交流。训练数据基于海量合法合规的公开文本信息,经过严格的数据清洗、安全过滤与对齐训练,确保输出内容安全、准确、有用。我会持续优化自身能力,努力为你带来更稳定、贴心、高效的使用体验。", "refusal": null, "annotations": null, "audio": null, "function_call": null, "tool_calls": [ ], "reasoning": null }, "logprobs": null, "finish_reason": "stop", "stop_reason": null, "token_ids": null } ], "service_tier": null, "system_fingerprint": null, "usage": { "prompt_tokens": 42, "total_tokens": 208, "completion_tokens": 166, "prompt_tokens_details": null }, "prompt_logprobs": null, "prompt_token_ids": null, "kv_transfer_params": null } ``` ![](../../../attachment/images-paste/image-20260325103231202.png)