在神经网络中,**Total Params(总参数量)和Activated Params(激活参数量)**是两个不同的概念,具体区别如下:
1. Total Params(总参数量)
- 定义:
模型所有可训练参数的总和,即每一层的权重(weights)和偏置(biases)的数量之和。 - 计算方式:
- 全连接层:输入维度 × 输出维度 + 偏置数(通常为输出维度)。
- 卷积层:卷积核尺寸(如
3×3
)× 输入通道数 × 输出通道数 + 偏置数(通常为输出通道数)。 - 其他层(如 LSTM、Transformer)类似,按公式逐层累加。
- 意义:
- 衡量模型的复杂度和存储需求(例如模型文件大小)。
- 常用于比较不同模型的规模(如 ResNet-50 有 2500 万参数,GPT-3 有 1750 亿参数)。
示例:
一个简单的全连接网络:
- 输入层(100维)→ 隐藏层(200维)→ 输出层(10维)
- Total Params = (100×200 + 200) + (200×10 + 10) = 22,210。
2. Activated Params(激活参数量)
- 定义:
在特定输入下,实际参与前向计算的参数数量。
常见于动态网络(如条件计算、稀疏模型),根据输入不同,激活的参数量可能变化。 - 应用场景:
- 稀疏模型:通过剪枝(pruning)将部分参数置零,仅非零参数参与计算。
- 混合专家系统(MoE):每次路由选择少量专家(experts),仅激活选定专家的参数。
- 动态网络结构:如自适应深度/宽度调整,跳过某些层或分支。
- 意义:
- 衡量实际计算成本(如推理速度、显存占用)。
- 优化效率(如减少冗余计算,提升吞吐量)。
示例:
- 稀疏全连接层:
- 总参数量:100×200 = 20,000
- 若 50% 权重被剪枝(置零),Activated Params = 10,000。
- 混合专家模型(MoE):
- 总参数量:4 个专家 × 1 亿参数 = 4 亿
- 每次输入仅激活 2 个专家,Activated Params = 2 亿。
3. 核心区别
维度 | Total Params | Activated Params |
---|---|---|
定义 | 模型全部参数的总和 | 特定输入下实际参与计算的参数 |
是否动态变化 | 固定值(静态) | 可能随输入动态变化 |
用途 | 衡量模型规模与存储需求 | 衡量计算效率与资源消耗 |
典型场景 | 所有模型 | 稀疏模型、MoE、动态网络 |
4. 实际意义
- 模型压缩:通过剪枝或量化减少激活参数量,提升推理速度(如 TinyBERT)。
- 资源分配:在边缘设备(如手机)中,动态调整激活参数量以节省算力。
- 成本优化:MoE 模型(如 Switch Transformer)通过减少激活参数量,实现超大模型的高效训练。
总结
- Total Params 是模型的“理论参数量”,反映整体复杂度;
- Activated Params 是“实际使用的参数量”,反映运行时效率。
在动态网络和稀疏计算场景中,二者差异显著,优化目标是最小化激活参数量,同时保持模型性能。