量子速读(第一辑)

chensy 发布于 2025-08-31 122 次阅读


尝试新开一个系列,用于记录短期的论文阅读,包括对论文内容的快速总结和部分细节、发展背景的整理,以及一些个人的思考。如果能够形成一个完整的话题,就再开一篇。

1. Are SNNs Really More Energy-Efficient Than ANNs?

标题:Are SNNs Really More Energy-Efficient Than ANNs? an In-Depth Hardware-Aware Study

概览:考虑全系统功耗,而不是仅仅计算功耗来衡量 SNN 功耗叙事的合理性。也不是第一篇这样干的文章了,质疑 SNN 忽略访存开销大头的文章很早就有了,这篇文章只是更实锤一些。两个核心观点事实上和我在杂谈中指出的类似,即:

  • 访存,包括权重的访存和神经元状态的访存,实际上占据了非常大部分的功耗开销。

  • 用专用硬件上的 SNN 直接对比朴素的 ANN 实现是不合理的,ANN 也存在优化手段。文中提出了三点:一是 ANN 能够通过数据重用很大程度上缓解访存的开销,实际上就是 locality。文中指出 SNN 没有数据重用的手段,这里我理解是因为 SNN 的发放是离散、近似于随机的(文中的表述是“不可预测”),没有很好的局部性。二是利用 ANN 中的稀疏性来进行与 SNN 类似的访存节省,因为文中用的都是 VGG 一类的模型,所以稀疏度是很高的。事实上 Transformer 也有类似的特性。三是通过量化进一步降低访存的开销(这里指的是激活值量化),文中的描述是 data compression。这一步最终没有被考虑,因为作者认为前两步已经足够了。

In an event-based SNN implementation, no data reuse is possible (due to the non-flexible and non-predictable computations) and spike sparsity is leveraged naturally (due to the event-driven computations).

文中给出了考虑访存的情况下,SNN 和朴素 SNN 的功耗估算形式;进一步地,给出考虑最优 locality 情况下的功耗估算。最后是真实硬件上的对比。就结论而言,在 ANN 达到理论上限(最优 locality,且不考虑量化)时,文章认为 SNN 需要平均每个连接上在整个发放过程中只发放 0.15 个脉冲才能与 ANN 的功耗持平。在实际硬件上,不考虑量化,这个数是 0.42。这里指的都是纯 IF 模型,因为 LIF 或者额外维持电流状态的模型一定会引入更多的内存开销,并且实验上性能差距不大。

另外,文中提到了一个视角,即需要维护电流状态的模型(即当前输入电流依赖过去步的脉冲决定,而不是仅根据当前脉冲决定)和依赖时序编码是相当的。

2. Stick-Breaking Attention

标题:Scaling Stick-Breaking Attention: An Efficient Implementation and In-depth Study

概览:MIT 出品,对 positional embedding 的改进。RoPE 会存在长度外推问题,即如果推理长度远远超过了预训练的长度,模型没见过这里的 positional embedding,会出现类似 OOD 的行为。stick-breaking attention 重新定义了 attention map 中的概率分配方式,使用 Dirichlet 过程进行。说人话就是,整份的概率是 1;在计算xtx_t时,由xt1x_{t-1}先决定一个概率(比例),割走这个 1 中的对应比例;然后由xt2x_{t-2}决定一个概率(比例),割走剩下的部分的对应比例,依次类推,每个 token 决定割走“棒子”剩下的部分中的一定比例。计算xix_ixjx_j的 attention 时,分配比例由σ(qikj)\sigma{(q_ik_j)}决定。这样做的特点是:

  • 自带 recency。一个远的 token 和一个近的 token 如果都决定了 0.8 的比例,那么显然是近的 token 最终被分配得更多。

  • 允许无注意。这样分割之后事实上“棒子”总是会剩下一点,不会像 softmax 一样全部分配完。如果所有 token 都决定不分配,那么就什么都不会分走。

另外,文中指出这个模型事实上和线性模型有一定的相似性;以下的方程

oi=(1βi)oi1+βivio_i=(1-\beta_i)o_{i-1}+\beta_iv_i

的通解实际上就是一个 stick-breaking 的形式。attention 的区别之处在于,对于每一个不同的计算目标 ojo_j,它使用的是不同的β\beta系列:βj,1,βj,2,...,βj,i,...\beta_{j, 1},\beta_{j, 2},...,\beta_{j, i},...。即每一步的输出需要根据不同的读取和遗忘率对之前的所有 token 重新进行状态演化。或者说,Transformer 是很多个 RNN。

关于 recency 也是一个很微妙的话题。鉴于语法上的需要(对某一个 token 的预测很大程度上附近的单词带来的语法限制;比如"I ?",仅仅根据前一个 token 就可以排除几乎所有的名词。换言之,附近的 token 占了很大的 attention 比重),attention 需要额外照顾附近的词;另一方面,attention 没有这种天生的能力,必须依靠 positional embedding 才能做到。这种情况对于处理长程依赖似乎是不利的。或许 recent 信息不应该用 attention 来包括,而应该被分离出去?

Allen-Zhu & Li (2023) observe that, in a context-free grammar parsing setting, attention mechanisms attend to the “most adjacent” non-terminal. This suggests an inclination to attend to the most recent entry that matches a given criteria. However, even with relative position information, it is possible to overfit on specific relative positions, resulting in failure to generalise. Kazemnejad et al. (2024) show that decoder-only Transformers with No Positional Embeddings (NoPE) can implicitly recover positional information, experimental results suggest that NoPE Transformers generalise better on length.

Triton 之类暂时就不看了,大体上就是仿照 flash attention 2 以及一些数值稳定的思路。值得一提的是,文中用到了稀疏性相关的加速手段:因为 stick-breaking 总是从近往远计算,如果某一时刻“棒子”已经被分完了,更远的就不用再算了。这其实也是一种带了很强的 locality 的稀疏性。文中的称呼是 conditional computation/early halting,带来了额外的 9.3% 加速。

3. Hardware-aligned Hierarchical Sparse Attention

标题:Random Long-Context Access for Mamba via Hardware-aligned Hierarchical Sparse Attention

概览:标题比较骇人,但本质上还是 hybrid 架构。区别在于是 Mamba2 和 sparse attention 的混合架构,并且有一些针对强外推的设计。大致的架构上,前一半模型是纯的 Mamba2,在一半之后分成两路,一路经过一个“chunk encoder”进行双向编码,一路继续往下,经过 Mamba2 和 sparse attention 交替的结构。sparse attention 使用的仍然是经典的 topk selection,但是 key 来自 chunk encoder 的输出。需要注意的是,后续所有的 sparse attention 的 selection key 都来自同一个 chunk encoder,即共享同一份 kv cache。针对外推有两个额外的设计:

  • 用了上一篇 stick-breaking 位置编码,对 topk 的块内 token 进行 token-level 的 attention,然后使用 stick-breaking 加权不同 block 产生的输出。这是对 attention 部分的外推增强。

  • state passing/truncated BPTT,但似乎是一个变体,看得不是很懂,直接放一段原文。这是对 Mamba2 部分的外推增强。看起来 state passing 好像也不是什么新东西了,GLA 里面就有在用了。

However, even though RAMba demonstrates certain extrapolation capabilities, we still observe an increase in perplexity on longer contexts. We hypothesize that RNNs’ memory state provides certain shortcuts 22 for long-range attention, degrading performance on contexts largely exceeding the pre-trained length. Thus we attempt to introduce appropriate forgetting mechanism into the memory state to disrupt the shortcuts. A straightforward way is memory reset, where sequences are divided into equal segments, and the initial state of each segment is reset to zero. To align with BPTT, we set the initial state as the last hidden state of a random segment in the previous step.

为了维持近似恒定的显存开销,这里的策略是 kv cache offloading,GPU 上只保留用于 selection 的 key,然后在推理时动态加载。虽然 selection key 事实上还是会随着序列线性增长,但是这个常数已经相当小了,因为整个模型只有一层 attention,并且是 chunk level 的。

有点好奇这个 chunk encoder 是怎么做的,但好像没有更多细节。

passkey retrieval 的结果非常逆天,370M 外推到 65M 上下文了。事实证明 hybrid 只要有一层 attention 就够了。

4. Don’t Pay Attention

标题:Don’t Pay Attention

概览:蜜汁文章,实际上就是 sparse attention,并且发明了一堆新的名词,有种 rwkv 的美感。唯一的 theoretical insight 就是 sparse attention 其实是一个固定大小的 sliding window,只不过可以往里面填更远的 block 罢了。

5. Forgetting Transformer

标题:Forgetting Transformer: Softmax Attention with a Forget Gate

概览:很有 MIT 风格但并不是 MIT 出品的作品。核心思路就是,原始的 linear attention 通过解耦 attention map 得到,当时是没有 forget gate 的:

St=St1+vtϕ(kt)TS_t=S_{t-1}+v_t\phi(k_t)^T

后来加上了 forget gate:

St=ftSt1+vtϕ(kt)TS_t=f_tS_{t-1}+v_t\phi(k_t)^T

把这个形式再写回 compact 的并行形式,得到

oi=j=1iFijϕ(qi)Tϕ(kj)vjj=1iFijϕ(qi)Tϕ(kj)o_i=\frac{\sum_{j=1}^iF_{ij}\phi(q_i)^T\phi(k_j)v_j}{\sum_{j=1}^iF_{ij}\phi(q_i)^T\phi(k_j)}

其中FijF_{ij}ftf_t的一系列累乘。我们可以把解耦的东西再耦合回去,得到

oi=j=1iFijexp(qiTkj)vjj=1iFijexp(qiTkj)=j=1iexp(qiTkj+Dij)vjj=1iexp(qiTkj+Dij)o_i=\frac{\sum_{j=1}^iF_{ij}\exp{(q_i^Tk_j)}v_j}{\sum_{j=1}^iF_{ij}\exp{(q_i^Tk_j)}}=\frac{\sum_{j=1}^i\exp{(q_i^Tk_j+D_{ij})}v_j}{\sum_{j=1}^i\exp{(q_i^Tk_j+D_{ij})}}

所以就变成了一个加性的 map。这个地位和 positional embedding 很像,文中也认为这个就是加性 position(ALiBi)的一个可学习变体。这个架构自然就不需要 RoPE 了,这本身就是一种位置编码。所以它和 stick-breaking 应该是有关系的?

架构上是带 output gating 的变种,甚至还用了 rwkv 的 key shift。这玩意到底是干什么用的?

实验就不说了,反正看上去都是很好的样子。

6. DeciMamba

标题:DeciMamba: Exploring the Length Extrapolation Potential of Mamba

概览:

7. LongMamba

标题:LongMamba: Enhancing Mamba’s Long Context Capabilities via Training-Free Receptive Field Enlargement

8. Perforated Backpropagation

标题:Perforated Backpropagation

9. Weight-Dependent Spike-Timing-Dependent Plasticity

标题:Online Supervised Learning for Hardware-Based Multilayer Spiking Neural Networks Through the Modulation of Weight-Dependent Spike-Timing-Dependent Plasticity

10. Memory Mosaics

标题:Memory Mosaics

概览:从联想记忆的角度重新出发,推导类似 Transformer 的形式的文章。最后得到的是一个二次的、类似 Transformer 的模型。联想记忆指的是给定一定数量的(k,v)(k,v)对,在面临一个新的 key 时,从历史中取出一个最像的 value。这篇文章的核心思想是将联想记忆看作概率分布的形式,即一定数量的(k,v)(k,v)对是一个分布中得到的抽样,“最像的 value”应该是E(VK=k)\mathbb{E}(V|K=k),即在给定了kk的情况下,条件分布p(VK=k)p(V|K=k)的期望。于是问题就转换成如何使用抽样(ki,vi)(k_i,v_i)去估计整个分布。这篇文章使用的是核回归方法中的 Nadaraya–Watson 回归,使用 Gaussian 作为核函数,从而得到一个非常近似 attention 的形式:

E(VK=k)=i=1n1Zeβkki2vi,Z=i=1neβkki2\mathbb{E}(V|K=k)=\sum_{i=1}^n \frac{1}{Z}e^{-\beta||k-k_i||^2}v_i,\quad Z=\sum_{i=1}^ne^{-\beta||k-k_i||^2}

如果假定kk的范数恒定,则进一步简化为

E(VK=k)=i=1n1ZeβkTkivi,Z=i=1neβkTki\mathbb{E}(V|K=k)=\sum_{i=1}^n \frac{1}{Z}e^{-\beta k^Tk_i}v_i,\quad Z=\sum_{i=1}^ne^{-\beta k^Tk_i}

机制上,与 attention 的主要区别在于:

  • 没有独立的 query,直接使用 key。

  • key 和 value 之间是错位的,使用的是xix_i对应的 key,xi+1x_{i+1}对应的 value,以完成预测性的联想记忆。均带有局部信息融合(类似短卷积),key 为融合前一位,value 为融合后一位。

架构上,为 in-context memory 和 persistent memory 交替。persistent memory 为推理时固定的 key/value 对,key/value 对为梯度优化得到的。

文中另外用很大的篇幅解释了预测解耦(Predictive Disentanglement),但不是很明白为什么会从联想记忆架构跳到这个部分。这个解释很大程度上是对 multi-head 方式的解释,文中举了“三月”的例子~~(提瓦特科技)~~。假设三个月亮围绕着一个主星独立地周期性运转,主星上的人在不知晓物理规律的前提下需要预测月亮下一步的位置。一种方式是使用一张表,同时记录三个月亮的位置和下一刻的位置;另一种方式是使用三张表(三个 head),每张表独立地记录一个月亮的位置和下一刻的位置。前者需要lcm(T1,T2,T3)lcm(T_1,T_2,T_3)的时间来完成完整的观测,后者需要max(T1,T2,T3)max(T_1,T_2,T_3),即显著更少的数据量和更短的周期。即使后者原始包含了互相独立的假设,仍然可以通过最后 merge 三个 head 的特征实现。换言之,multi-head 的本质能力是学习互相解耦的子任务,并在最终合并所有 head 的信息,从而完成更快速的学习。在max(T1,T2,T3)max(T_1,T_2,T_3)之后,即使联想记忆遇到从未见过的三月位置组合,也能够通过联合不同的 head 获得正确的预测。

Routing 那一块没看懂。实验略。

11. Memory Mosaics at scale

标题:Memory Mosaics at scale

概览:大体上是 memory mosaics 的 scaling up 的工作,但是有一定架构上的改动。一个是 Gaussian kernel bandwidth 的改动,这个先不表。另一个是将 key 和 value 的混合改成了 rwkv 的 token-shift 风格,这个也不表。最后一个是解耦了 local pattern 和 global pattern,理由是他们发现 memory mosaics 中的 attention score 存在明显的 local pattern,所以将 in-context memory 分成了两个层内块,一个使用 local mask,另一个使用一般的 causal mask,但是排除 local 的信息。如下图。这两者之间有一定的 overlap。

12. Stuffed Mamba

标题:Stuffed Mamba: State Collapse and State Capacity of RNN-Based Long-Context Modeling

概览:一篇非常可疑的文章,arxiv 上 v2 版本撤回了 v1 版本中的 passkey retrieval 结果,甚至删除了 abstract 中关于 passkey retrieval 的 declaration,甚至 v2 版本的 github 链接已经删库了(不排除投稿的因素)。但是话又说回来,其中的核心观点还是比较有说服力的。最核心的观点是,Mamba 虽然有遗忘门,但是并没有妥善利用。训练长度过短,导致训练时模型可以将所有的东西都塞到 memory 中,不需要遗忘。文中验证了在 T=512 情况下训练,训练 token 数越高,passkey retrieval 的能力越差。此外,memory 中存在持续走高的遗忘门也是一种证据。文中还提出了一种实现 linear attention 上进行 sliding window 的方法:利用 state 是累加求和的性质,只要同时维护当前的 state 和 r 步之间的 state 的状态,就可以使用差分得到 window size = r 的 sliding window 效果。文中的目标是通过 sliding window 强制地忘掉 window 之外的全部信息,即强制的遗忘门,或者说和 SWA 的效果异曲同工,即通过限制推理窗口匹配训练长度。

13. Landmark Attention

标题:Random-Access Infinite Context Length for Transformers

概览:应该算是早期对于 dynamic sparse 的一种探索,但是机制上的设计很巧妙。基本的思想是在 vocab 中加入一个 landmark token。在输入的序列中,每隔一定数量的 token 就插入一个 landmark token,通过这样的方式将输入序列划分成 chunk。借由 landmark 的划分,landmark attention 在此基础上在计算第ii个 token 的 attention 时对之前的 token 进行组划分:当前 token + 位于同一 chunk 的 token + 所有前置的 landmark token - 当前 chunk 的 landmark 作为一组,其他 chunk 以 chunk 为单位划分成组。landmark attention 使用分组的方式进行 softmax 计算,即 softmax 的分母限定在自身所在的组内,或者说在各自的组内进行归一化。在定义上,这意味着对于一个 token, qK 相乘的操作照常进行,但是 softmax normalization 按组进行。最终的 attention map 分为三类情况:

  • token 对 landmark token 的注意力。强制置 0。

  • token 对于同一个 group 内的 token 的注意力。直接使用按组得到的 softmax 分数。

  • token 对于其他 group 的 token 的注意力。使用按组得到的 softmax 的分数,再通过 token 对对应的组的 landmark token 的 softmax 分数进行门控。

这其实是一个双层的 softmax 操作。第一层 softmax 分数在当前 token 同组的 token + 所有前置的 landmark 之间进行计算。softmax 实际上是一种竞争性的操作,所以模型必须在 local 的信息(当前的组)以及其他更遥远的 block(使用对应的 landmark 进行代表)之间权衡。第二层 softmax 在 landmark 对应的子组中进行。容易看出,双层 softmax 仍然满足加和为 1 的性质,只是一个简单的裂项而已。

当然这样的做法是省不了计算的。在实现上,一个 token 会首先进行第一层 softmax 计算,即与当前块内的 token 以及所有的 landmark token 进行计算。在得到对于所有的 landmark 的 softmax 分数之后,进行 topk selection。这实际上是把上述的第三种情况中大多数的门控值置 0,这样就能够将 kv cache 的访问以及计算量降低到常数(对于一个 token)。文中将这一部分的标题是 inference,所以不知道训练时是使用完整的双层 softmax 还是 topk selection,要看实现。

这实际上和 NSA 大致的思路是一样的,但是有一些不一样的地方:NSA 的 block representation 是一个粗暴的 pooling(实现上,或者说与 MoBA 相同),这里的 block representation 是学出来的。另外,第二层 attention 的计算方式不同,个人感觉这个更优雅一些。注意到,在 topk selection 之后,双层 softmax 的归一性实际上被舍弃了,加起来肯定不到 1。

另外,landmark attention 给出了 positional encoding 重映射的方案,但是稍微有些微妙。简单来说,对于 topk selection,将会当前的 chunk 之前分配 k+1 个 chunk 的逻辑空间。对于选出的 chunk,如果是邻近的 k 个 chunk 范围中,则从右边开始堆起;如果不是,则从左边开始堆起。以是否邻近 k 个 chunk 为界划分,中间还会多出一个空白的 chunk。

在 Appendix D 中,还展示了如何进行二次分层。在序列的最前面添加一个 context miss token,此时当前组中的 token 变化为:token 所在的 chunk 中的 token,所有不受 CMT 控制的 landmark,以及 CMT 本身,并除去当前 chunk 的 landmark。其余的 chunk 各自成为组,另外,所有受控制的 landmark 形成一个组。训练时,受 CMT 控制的 landmark 被随机选择为 50% 的 landmark。第一层 softmax 在当前 chunk + 自由的 landmark + CMT 之间进行。自由的 landmark 下会进行第二层的 softmax,这个同上。在 CMT 下,所有受控制的 landmark 之间进行第二层的 softmax,每个 softmax 下进行第三层的 softmax。此处的选择在于 CMT;实验被设定为如果 CMT 低于某个阈值,就重置所有受控于 CMT 的 landmark 及下属的 chunk。文中似乎只是想要验证分层控制的可行性,所以受到 CMT 控制的范围似乎选择得很随便,比如训练阶段是随机选取,而推理阶段的描述则更加奇怪,原文是

At inference we set LCMTL_{CMT} to be the set of landmarks that are in the memory so the in-context landmarks are not controlled by the CMT.

"landmarks that are in the memory"只能理解为 offloading 过程中仍然保留在 GPU 上的块的 landmark,后半句就更不能理解了。但是从训练策略的随机选择来看,CMT 被要求做到的事情似乎是:随机选择了一些 block,去代表他们的含义。如果这些 block 重要,则保留,如果不重要,则完全删去。所以作者将其描述为 cache miss,即投机地选择一些 block,试图绕过对它们的 retrieval(cache hit);但如果 CMT 判断这些 block 依然是重要的,那么还是得按照原计划进行读取(cache miss)。

另外,关于 CMT 能够发挥作用的原理,实际上也是非常巧妙的。首先,CMT 是序列的第一个 token,因此不会从其他 token 中混合信息,而是作为一个直线传播的信号传递下去。其次,模型在训练中必须在第一次 softmax 上进行选择,即(当前 chunk + 自由的 landmark)与受 CMT 控制的 landmark 之间选择。如果当前的 chunk 与自由的 landmark 并不包含足够的信息,模型就必须提高 CMT 对应的 softmax 分数,同时也是 CMT 对应的 landmark 需要通过的门控,从而增加受控 landmark 的比重,进而完成预测任务。这就导致 CMT 对应的 softmax 分数天然地代表了受其控制的 landmark 是否重要。

14. Brain-Inspired Learning on Neuromorphic Substrates

标题:Brain-Inspired Learning on Neuromorphic Substrates

概览:本身是关于 SNN 训练的讨论,比较重要的是将 RTRL 引入到循环神经网络中来。所谓的 RTRL 实际上就是 forward mode autodifferentiation,如果忘了可以再去看看 dlsys 关于 AD 的那个章节。简单来说,为了求出输出对于一个目标参数的梯度,前向 AD 的做法是维护中间值 yiy_i 对于参数的梯度,即 yi/θ\partial y_i/\partial \theta,并随着网络前向的过程逐渐更新,即 yi/θyi+1/θ...\partial y_i/\partial \theta \rightarrow \partial y_{i+1}/\partial \theta \rightarrow ...,最终获得输出对某个指定参数的梯度。反向 AD 则维护输出对于中间值的梯度,即 L/yi+1L/yi...\partial \mathcal{L}/\partial y_{i+1}\rightarrow \partial \mathcal{L}/\partial y_i\rightarrow ...,在传播到合适的位置时传播到参数 θ\theta 上,从而获得梯度。前向 AD 被现代深度学习框架舍弃的一个重要原因是时间和空间上的开销,即

  • 对于每个参数,都要通过重新遍历一次它之后的计算图才能得到梯度。换言之,只有在输入端(参数)少、输出端多的情形下,前向 AD 才有优势,反之亦然。现代网络显然不适合这种情形。

  • 即使对于同一次对计算图的遍历,前向 AD 的空间和时间占用也更大。比如,在上面写出的梯度更新过程中,由于 L\mathcal{L} 是一个标量,但是 yiy_i 是一个向量,这个维护量本身的大小就有很大的差距。

即使如此,前向 AD 依然具有一些良好的性质:前向 AD 不要求保存网络的激活值,即不存在 BPTT 的过程中需要计算图反向展开的情形。这对于 RNN 而言是非常重要的性质,因为这意味着维护梯度需要的空间与序列长度无关。另外, yiy_i 对于 RNN 而言就是 hidden state,如果每一个时间步能够独立地算出 loss(这是常见的情况),前向 AD 就能够展现出在线学习的性质,即每计算一步就立即获得当前步的梯度。不过这不一定意味着他能够直接使用当前的梯度更新,因为下一步前向可能还是使用旧的权重,即 staleness 问题。

如果要使用 RTRL,就必须解决它的计算和空间开销问题。文中指出的一个方法就是让 RTRL 维护的变量变得稀疏。这里的系数化事实上就意味着 multihead,因为文中讨论的 LIF 实际上就是一个 headsize=1 的循环单元。后面讨论的是 LIF 中是否有必要将输出的脉冲循环地作用回来,文中得到的结论是:循环脉冲能够有效地提高性能,即使在忽略循环引入的梯度流时也是如此(并不是忽略对循环权重的优化过程,而是在传入前一个时间步时进行截断)。不过这是原理性的文章,实验也就是 MNIST 之类,这里就不提了。

15. Context Rot

标题:Context Rot: How Increasing Input Tokens Impacts LLM Performance, https://research.trychroma.com/context-rot

16. Neuromorphic is dead

标题:Neuromorphic is dead. Long live neuromorphic

概览:这是一篇锐评性质的文章,最核心的观点就是:neuromorphic != SNN accelerator。

自引用一下以前给出的划分:

广义上,这些所有能扯得上边的算法都在类脑/脑启发(brain-inspired)的范围内。比如,所谓的 system 1 和 system 2 的区别,各类 CoT,广义上都是对人类智能的行为级模仿;基于 hebb rule 的 linear transformer,甚至于 transformer 本身(softmax attention 本身是 exponential kernel 下 hebb rule 的体现),都可以算是对脑的机制级别模仿。只有将模仿的级别限定在神经元级别,才在神经拟态(neuromorphic)的范围之内。传统意义下,神经元级别的模仿指的就是 SNN,即脉冲神经网络。

这篇文章指出,原教旨的 neuromorphic 指的事实上是:使用 analog 器件直接模仿神经系统的基本操作和组织方式,通过这种硬件组织形式保证所执行的操作具有神经系统的硬件,即低功耗和实时性。这里蕴含了两种思想,其一是算法建立在硬件之上,即逻辑上是先有了 neuromorphic 的硬件,然后才想办法让算法去利用这些硬件来给出有意义的结果。其二是硬件即算法。不好翻译,这里给一段原文的描述:

This approach, analogous to the computer-science ‘‘software-stack’’ way of decoupling algorithms from their underlying digital hardware implementations, is in stark contrast to the original neuromorphic approach, in which the specific physical properties of the analog silicon neuron and synapse circuits, their intrinsic time constants, the topology of their interconnections, the nature of their coupling (excitatory or inhibitory), the degree of recurrent connectivity, and the characteristics of their hardwired learning circuits collectively determine the system’s computational function. This concept of physically implementing the algorithm directly with the hardware, also recently articulated in Laydevant et al., highlights the embodied nature of computation in analog neuromorphic systems: the dynamics of the physical substrate are not merely implementing an abstract algorithm; they are the algorithm.

读完这一段,就可以很清楚地明白为什么作者会在 neuromorphic 与 memristor 器件、TrueNorth 和 SpiNNaker 一类的 SNN 加速器之间划清界限,因为它们的出发点——以及原则——实际上是不同的。memristor 本身只是一种加速器,后者的定位更是 SNN 加速器,它们遵循的原则并不是使用适合的器件去实现神经系统的计算基质,然后在此基础上运行算法,而是遵循 SNN 的约束设计算法,并为此设计通用的加速器。这些加速器很多与神经系统的计算基质并没有关联,它们中的很多都是基于 CMOS 的系统。所以之前给出的划分并不恰当,neuromorphic 与 SNN 在含义上并不相同。尽管 neuromorphic 指导下产生的网络在形态上可能都算是一种 SNN,但是两者的目的与原则差距很远。作者对后者持批判态度,再引用一段:

Arguments are being made that the neuromorphic research field is at a ‘‘critical junction’’ and that it is crucial to develop large-scale neuromorphic systems to outperform deep-network accelerators and address their substantial energy consumption issues. These are hazardous claims, because on one hand, they imply that neuromorphic computing and AI have similar goals, that they are addressing the same problems, and using similar strategies to solve them, and on the other, it ignores the fact that large-scale neural network simulations and hardware implementation of SNNs comprising one or more millions of neurons have already been accomplished over a decade ago, e.g., in the EU flagship Human Brain Project. Arguably, these past developments have not led to significant new insights into natural intelligence and have not demonstrated any significant superiority over conventional computing systems.

另外,关于从神经系统中获取 insight 应用于 AI 架构设计的路线,作者称之为 NeuroAI。作者认为这条路线可能最终与 neuromorphic 路线收敛(如果能够明白脑的认知功能是从何种计算机制中得到的话)。

此作者没有提供个人介绍。
最后更新于 2025-08-31