一句话定义:稀疏性(Sparsity)指一个向量、矩阵或张量里绝大多数元素取值为零,真正有用的信息集中在少数非零位置上。
一个 1000×1000 的矩阵有一百万个格子。如果只有一万个格子有值,其余全是零,我们就说它的稀疏度(sparsity ratio)约为 99%。听起来很浪费,其实正好相反:零既不需要存储,也不需要计算。
生活化的比方:把矩阵想成一本厚厚的通讯录,绝大多数格子都空着。稠密(dense)的存法是复印整本书,一页不落;稀疏的存法是只记下“第 3 页第 5 行是张三”这样的坐标清单。前者的体积固定,后者的体积随真实条目数增长,条目越少越省。
| 对比项 | 稠密(Dense) | 稀疏(Sparse) |
|---|---|---|
| 存储 | 存下全部数值 | 只存非零值加索引 |
| 计算 | 每个数都参与乘加 | 跳过零,只算非零 |
| 硬件 | 通用芯片天生擅长 | 要专门的格式和内核才快 |
在 AI 里,稀疏性常见于三处:权重稀疏(pruning,剪枝,把训练后接近零的参数删掉)、激活稀疏(ReLU 这类激活函数让大量神经元的输出恰好为零)、结构化稀疏(稀疏注意力,或者稀疏专家混合 MoE,每次只激活一部分通路)。三者动机不同,但都靠“大部分是零”来换取空间和算力。
和相邻概念的区别:稀疏不等于量化(quantization)。量化是把每个数变短,比如从 32 位压到 8 位,但一个数都不少;稀疏是把很多数直接变成零,并且不去计算它们。稀疏也不等于低秩(low-rank):低秩用少数几个向量的组合来近似整个矩阵,压缩的是“结构”;稀疏压缩的是“非零元素的个数”。还要分清非结构化稀疏(零散地删掉单个参数,压缩率高但硬件难以加速)和结构化稀疏(成块、成行地删,例如 2:4 模式,压缩率受限,但真能跑快)。具体哪些芯片和推理框架原生支持哪种稀疏格式,以官方页面为准。
实际意义:对从业者,稀疏是“用更少的算力换相近效果”的主要路线之一,但前提是存储格式和计算内核互相配合;如果把稀疏矩阵塞进稠密内核,照样每个零都要参与计算,白白浪费算力。对普通职场人,这也是个通用思维:绝大多数信息和流程是零,抓住少数非零的部分就够了。
