詳細解釋
權重剪枝(Weight Pruning)是移除神經網絡中不重要權重的技術,減少模型存儲和計算,同時盡量保持性能。
與結構化剪枝的區別:
- 權重剪枝(非結構化):移除個別權重(置為0)
- 剪枝(結構化):移除整個神經元/通道
- 非結構化產生稀疏矩陣,需要專用硬體加速
剪枝標準:
- 基於幅度:移除絕對值最小的權重(假設小=不重要)
- 基於重要性:計算權重對損失的影響(二階信息)
- 迭代剪枝:多次迭代移除和微調
剪枝流程:
- 訓練原始模型至收斂
- 評估每個權重的重要性
- 移除一定比例的低重要性權重(如50%)
- 微調(Fine-tuning)恢復性能
- 可迭代進行,逐步增加稀疏度
稀疏度:
- 輕度:50-70%權重移除
- 中度:80-90%權重移除
- 高度:95%+權重移除(彩票假說)
- 極端:99%以上(需特殊技術)
- 大網絡中存在小子網絡(中獎彩票)
- 單獨訓練這個子網絡可達到原始性能
- 找到方法:剪枝後重置權重並重新訓練
硬體考量:
- 稀疏矩陣乘法:需要專用加速器
- 索引開銷:存儲非零元素位置
- 實際加速:非結構化稀疏在通用GPU上加速有限
- 結構化稀疏:更易在通用硬體上加速
與其他壓縮技術結合:
- 量化 (模型量化) (Quantization Aware Training):權重量化到低位元
- 知識蒸餾:知識蒸餾到小模型
- 通常組合使用以達到極致壓縮
權重剪枝是模型壓縮的基礎技術。