AI Infra:Transformer 模型转换为 SNN 模型的工具调研
将 Transformer 模型(一种基于注意力机制的连续激活人工神经网络,ANN)转换为脉冲神经网络(SNN),本质上是桥接连续计算与离散脉冲编码的范式转变
一、脉冲神经网络(SNN)的优缺点
1.1 SNN的优点
- 事件驱动、低功耗:仅在有脉冲时进行计算,适合处理稀疏、异步数据,显著降低能耗,在上下文长度上有天然优势
- 天然处理时序信息:利用脉冲的时间编码,擅长处理动态、时序相关的任务(如视频、语音)
- 低算力硬件友好:适合边缘计算和实时应用
1.2 SNN的缺点
- 性能尚未超越ANN:在多数标准任务上,准确率和收敛速度仍落后于人工神经网络(ANN)
- 工具与生态不成熟:缺乏成熟的框架、库和大规模预训练模型,开发门槛高
- 硬件支持有限:虽适配神经形态芯片,但此类硬件尚未普及,通用GPU加速效率低
二、转换工具分类
2.1 通用 ANN-SNN 框架(可扩展支持 Transformer):
SpikingJelly:
- PyTorch 开源框架,提供端到端 ANN-SNN 转换接口,支持前馈网络到 SNN 的直接映射,包括激活量化与阈值校准
- 适用于 Transformer 通过自定义层替换(e.g., 将 Linear 层转为 IF 神经元)
- 特征:快速转换(无需重训)、 neuromorphic 数据集预处理、部署到 Loihi 等硬件
- 局限:Transformer 的 Softmax 需手动模拟为 spiking 近似,否则精度降 5-10%
GitHub: https://github.com/fangwei123456/spikingjelly
SNN Toolbox:
- 自动化 ANN 到 SNN 转换,支持 Keras/PyTorch 模型,但原生针对 CNN(如 MNIST),Transformer 需 hack(如线性化注意力)
- 特征:模拟 spiking 神经元(LIF/IF),测试工具链完整
- 局限:不支持非卷积架构,Transformer 转换易过拟合时序噪声
GitHub: https://github.com/NeuromorphicProcessorProject/snn_toolbox。
2.2 Transformer 专用转换方法(针对注意力机制优化):
SpikeZIP-TF:
- 全等价 ANN-SNN 转换,专为 Transformer 设计,通过激活量化构建精确映射,避免精度退化(ImageNet 83.82%,SST-2 93.79%)
- 工作原理:ZIP 量化(零点偏移)+ 时序展开,确保 spike 率等价于 ReLU 输出
- 开源,易集成 Hugging Face Transformer
GitHub: https://github.com/Intelligent-Computing-Research-Group/SpikeZIP_transformer
Transformer-to-SNN-ECMT(Expectation Compensation Multi-Threshold):
- 首个高精度、低延迟 Transformer 转换,引入期望补偿模块(用前 T-1 步信息预测 T 步输出)+ 多阈值神经元,精度损失仅 1%,4 时步下功耗降 65%
- 非线性模块 → 补偿残差 → 平行归一化 → spiking 输出
- 适用于 ViT/BERT 等
GitHub: https://github.com/h-z-h-cell/Transformer-to-SNN-ECMT
SpikedAttention:
- 无训练全 spiking Transformer 转换,输出端到端 spike-based 架构,模拟 Softmax 为 spiking 注意力
- 特征:零精度损失,适用于 NLP/CV
- 局限:依赖预训练 ANN 质量。NeurIPS 2024 发布
https://neurips.cc/virtual/2024/poster/94181
SIT-Conversion:
- 首个完整 Softmax 模拟的 Transformer 到 SNN 实现,通过 spiking 迭代阈值实现注意力。预印本 2024,适用于序列任务
https://www.preprints.org/manuscript/202410.2403/v1
2.3 辅助校准/优化工具(提升转换鲁棒性):
ANN2SNN_COS(Calibrating Offset Spikes):
- 偏移 spike 校准,桥接 ANN-SNN 间隙,适用于 Transformer 的残差连接
GitHub: https://github.com/hzc1208/ANN2SNN_COS
ANN2SNN_SRP(Residual Membrane Potential):
- 优化 Transformer 的深层时序
GitHub: https://github.com/hzc1208/ANN2SNN_SRP
SNN-conversion-QCFS:
- 高精度低延迟转换,量化阈值 + 曲线拟合
GitHub: https://github.com/putshua/SNN-conversion-QCFS。
三、转换后的 SNN 模型作为 sidecar,与 Transformer 模型协同方式
- 序列式 sidecar(SNN 前/后置,数据单向流)
- 并行式 sidecar(SNN 与 Transformer 分支并行,融合层合并)
- 硬件方式(neuromorphic 芯片上 SNN 加速特定模块)
在有训练 Transformer 模型原始数据的情况下,厂商更有机会训练一个效果接近的 SNN 模型,专门用于处理实际使用过程中超长上下文的case,以降低成本
标签:ai