When Quantization Breaks Memory: Recurrent-State Write-Back in Low-Precision Temporal Inference
Ismail Erbas, Xavier Intes, Vikas Pandey
cs.AI, cs.LG, physics.optics, q-bio.QM
2026-09-04
RPI 在固定 GRU 上只改循环状态的存储规则,4-bit 确定性写回把 τ1/τ2 RMSE 从 0.36/0.35 ns 拉到 25.4/106.6 ns。误差反馈和方向记忆能在不重训的情况下救回来。
量化通常被当成「少几 bit 会掉多少点」。循环网络里,量化后的状态会在下一步原样喂回来,存储规则本身就是时间计算的一部分。部署时把已经训好的网络映射到更粗的格子,等于让网络走一条它没见过的状态轨迹。荧光寿命成像(FLI)要把高噪声的时间分辨荧光拟成短寿命 τ1 和长寿命 τ2,时间形状稍偏,积分出来的寿命就会飞,正好用来盯这件事。
对象是 Seq2SeqLite:单层 32 单元 GRU 编解码器,6627 个参数,编码器吃 135 个时间 bin。任务来自 160 万条模拟衰减,16 万条留作测试。
作者把「第 t 步算出的状态如何变成第 t+1 步看到的值」命名为 recurrent-state write-back。确定性 B-bit 写回把状态收到最近的可表示电平;提议更新落在半步死区里,存下去的值就不变。Recurrent write margin 拿提议更新和量化半步比,小于 1 就是写不进去。
为了把存储和训练拆开,checkpoint 冻住,只换写回规则。对照包括连续传播、随机舍入、误差反馈、k-bit 残差记忆,以及新加的方向记忆:用一个小计数器累加死区内同号提议,满阈值就跳一格。另外用独立训练的 4-bit / 8-bit GRU 做精度扫描,再在 LSTM 上重复干预,并分开动 cell state 和 hidden state。
QMem 把状态量化接到 P2F 时,τ1/τ2 RMSE 从 P2E 的 1.40/3.03 ns 跳到 25.37/106.59 ns;P3 再训回到 0.48/0.55 ns。冻住 P2F,只把写回改成恒等传播,误差是 0.36/0.35 ns;改回确定性 4-bit,回到 25.37/106.59 ns,大约 70 倍和 300 倍。序列 MAE 仍是 0.09,点误差看不出来,寿命已经坏了。
失败时解码器 99.59% 的更新落在 4-bit 死区,每步平均只有 0.08 个单元改电平,97.25% 的步一个单元都不改。同号死区run 的中位数长达 132/134 步。原生 4-bit 模型每步仍改 12.47% 的状态,中位 run 只有 2 步,所以粗量化本身不是死因,长时间写不进去才是。
同一套冻住的权重上,误差反馈把 P2F 救到 0.36/0.37 ns,2-bit 残差记忆 0.34/0.40 ns,3-bit 方向记忆 0.34/0.34 ns。8-bit 参考 GRU 原生 0.20/0.22 ns,硬改 4-bit 变成 1.89/2.60 ns,误差反馈再拉回 0.34/0.46 ns。4-bit 参考模型把状态加宽到 8-bit,占用电平中位数从 12 升到 176.5,RMSE 反而从 0.35/0.40 ns 升到 0.43/0.57 ns。
LSTM 上整状态改 4-bit,从 0.239/0.254 ns 升到 3.857/1.327 ns;只动 cell state 到 8.158/1.292 ns,只动 hidden 到 0.296/0.354 ns。Cell 对写回更敏感,尽管 hidden 的死区比例更高。
低精度循环推理要问的是轨迹兼容,不是单个状态值有多细。训好的解绑在它见过的写回接口上,部署时改接口等于换动力学。方向记忆说明,有时只要把「一直想往哪边走」记住,不必把幅度原样存下来。做片上 RNN、传感器或成像前端的人,应该把状态存储规则写进规格,而不是只写 bit 宽。
故事建立在一个 32 单元、面向 FLI 的小编解码器上,没有做到大语言模型里的循环或 SSM 状态。匹配训练只比较了四种记忆分配,没有给出跨任务的算子排名。连续传播救不回 LSTM 的原生 8-bit 解,说明「更细」和「回到训练过的接口」不是一回事,这篇也没提供迁移到任意架构的处方。寿命从重建序列积出来,对时间形状极敏感,别的循环任务会不会同样放大,还没有直接证据。