> 副题:以”压缩即智能”为镜,照 SiFu 信号流之颈,并论其可改之道
> 研究对象:C:GitHubBriLLM0.5(BriLLM 0.5,arXiv:2503.11299,Zhao/Wu/Yang/Zou/Hong,v8)
> 研究日期:2026-08-23
—
〇、结论先行(TL;DR)
有瓶颈,且就在你眼前那一行。
BriLLM 的”信号全连通流动(SiFu)”在每一个解码步,都把整段历史 energy_cache(一堆 32 维能量向量)用一句
energy_tensor = (energy_cache * self.positions[:, :i, :].softmax(1)).sum(1, keepdim=True)
压缩成一个 32 维向量。这一行就是它的信息瓶颈:上下文所有信息,须由此 32 个数承载。
问题在于:它用的压缩法是位置加权的”凸组合/求平均”,而非压缩感知(CS)主张的随机投影 / RIP sketch。求平均会抹掉能量云的”正交方向”,对稀疏的语言信号而言是劣压缩器。
压缩感知给的正路:把这一步换成固定随机投影的流式 sketch(Count-Sketch / AMS)——以固定、极小的内存,保住语言的”重击者(heavy hitter)”结构(高频 n 元共现)。这恰是把”压缩即智能”从口号落成算子:模型被迫用最少的维度记住最该记住的,正是 Schmidhuber 所谓”压缩进度即智能”。
但须诚实:CS 只在”预测信号稀疏”处见效——而这正是 BriLLM 的本命(它是 bigram/路径模型)。长程语义若不稀疏,纯 sketch 会丢信息,须配显式记忆(混合式,见第五式)。
—
一、BriLLM 信息流之实(解剖)
1.1 三个基本元件
源自 model.py 与论文:
– 节点(node) = 词表 token(中文/英文各 4000)。每节点有偏置 node_bias ∈ R^{d},d = 32。
– 边(edge) = 有序对 (u→v),参数化为矩阵 W_{u,v} ∈ R^{32×32} 与偏置 b_{u,v} ∈ R^{32}。双向全连通,故参数量级为 V²·(32²+32)(V=词表)。
– 信号能量(energy) e_i ∈ R^{32}:沿路径流动的状态向量。
1.2 信号如何流动
初始能量 e_0 = [1,…,1]/32(经 node_bias 与位置编码 PE_0 调制,GeLU 激活)。逐跳传播:
e_{i+1} = GeLU( W_{x_i, x_{i+1}} · z_i + b_{x_i, x_{i+1}} + PE_{i+1} )
注意 z_i 不是 e_i 本身,而是整段历史的压缩摘要(见下节)。
1.3 如何选下一个词
对候选后继节点 v,算出候选能量 E_{x,v},以 L2 范数(能量) 为分数:
score(v) = ‖ E_{x,v} ‖₂ → v* = argmax_v score(v)
论文与代码(output_tensor.norm(2, (-2,-1)))一致:选”能量最大”的邻居。
1.4 论文的豪言与实情
论文宣称”context-length independent scaling””unbounded contextual capacity””支持无限长 n-gram 建模”。技术上说权重不随上下文变长而增长,这是真的;但信息容量被 32 维摘要死死锁住,这是假不了的。 下面这节,正是那把锁。
—
二、瓶颈何在——被忽视的”压缩点”
关键在 model.py 的 forward 与 decode 中反复出现的聚合步(以 decode 第 189 行为例):
energy_cache: (1, i+1, 32) —— 历步能量向量之堆叠
self.positions: 可学习参数, shape (1, 512, 1)
energy_tensor = (energy_cache * self.positions[:, :i, :].softmax(1)).sum(1, keepdim=True)
→ (1, 1, 32)
逐字拆解:
1. self.positions[:, :i, :].softmax(1):对位置维做 softmax,得权重 α_j ≥ 0, Σα_j = 1。positions 是可学习的标量序列(每个位置一个权重)。
2. energy_cache * α:历史每个 32 维向量乘以其位置权重。
3. .sum(1):求和 → 合一 32 维向量 z_i。
故:
> z_i = Σ_{j=0}^{i} α_j · e_j——整段历史被压成单一 32 维向量,方法是”按位置软加权求平均”。
此 z_i 随后经边矩阵 W 算出下一跳。换言之:上下文对下一个词的全部影响,唯由此 32 个数中介。 这就是 BriLLM 的”信息瓶颈”,也是它”模型大小与上下文解耦”的真正代价——大小没涨,信息被压扁了。
> 顺带:这其实是一种可学习的”位置注意力读出”。但它是单一凸组合——只能表达历史能量云的一个线性方向,丢掉了能量云的”散布”(各方向方差)。这恰是 CS 要病症之所在。
—
三、压缩感知透镜:理论框架
为论改造,先立 CS 之尺(据 ScienceDirect “Compressed Sensing” 词条、Donoho 2006、Candès、Baraniuk,及 Fabisch “Learning in Compressed Space” 2013):
– 两支柱:稀疏性(sparsity)+ 非相干性(incoherence)。
– 随机投影保距(Johnson–Lindenstrauss / RIP):对高维但可压缩信号 x,用随机测量矩阵 Φ(高斯 / 拉德马赫 / 亚采样哈达玛)得 y = Φx ∈ R^{m},m ≪ n;只要 x 是 k-稀疏,约需 m ~ O(k·log(n/k)) 次测量即可高概率保距恢复。
– 流 sketch(Count-Sketch / AMS):无需存全历史,仅凭 s ← s + Φ·x_t 的累积,即可在 O(k log V) 维内固定保住”重击者”(高频项)——正合语言之 Zipf 长尾。
– “压缩即智能”:Schmidhuber 压缩进度理论——智能 = 把历史编成更短程序之进度;能从小维度恢复正确预测者,即已”压缩”。Fabisch 更证:压缩输入层 ≡ 压缩该层权重,随机投影可直接压特征且不必重建(在压缩空间即可分类)。
> 先例锚点:Compressive Transformer(Rae et al., 2019)——把旧激活压入第二级”压缩内存”,用卷积/池化做压缩函数,PG-19 困惑度 33.6 vs Transformer-XL 36.3。BriLLM 的 energy_cache 即其”内存”,而位置加权平均即其”压缩函数”——只是这函数远差于卷积。
—
四、CS 诊断:现有瓶颈为何是”劣压缩器”
| 维度 | 现有(位置加权平均) | CS 理想(随机投影 sketch) |
|---|---|---|
| 几何 | 沿位置轴塌缩为 1 个线性方向 | 多随机方向同时采样,保距(RIP) |
| 对稀疏结构 | 把所有历史按位置等权混合,重击者被冲淡 | 重击者(高频 n 元)被保住,误差有界 |
| 内存 | 需存满 energy_cache(随步增长,上限 512×32) | 固定 O(M),流式更新,不随步长 |
| 可证性 | 无理论保证 | RIP 保证:够少测量即可恢复 |
| 训练 | positions 可学(但只学"位置权重") | Φ 固定(非学),边 W 自适应 |
要害三病:
1. 求平均 = 丢正交方向。两异史若能量均值相近,则不可辨。CS 之随机投影专治此病。 2. 位置门控 ≠ 内容门控。权重只赖位置,不赖内容;长文中远端关键信息若被 softmax 压到近 0,则永失。CS 的”重击者保距”不论远近,只论频次/幅度。 3. 32 维是真上限,却用错法。维度本就极小,更该用”保信息”的投影而非”毁信息”的平均。
—
五、CS 改造方案(五式)
> 总切口:替换 energy_tensor = (energy_cache * positions.softmax(1)).sum(...) 这一行。
式 A — RIP 流式 Sketch 瓶颈(首选,落地最易)
– 注册固定缓冲 s ∈ R^{M}(M 可取 32 或 64,仍远小于词表)。
– Φ ∈ R^{M×32} 为固定随机拉德马赫/哈达玛矩阵(满足 RIP,不训练)。
– 每步:s_i = s_{i-1} + Φ · GeLU(W_{x_i,x_{i+1}}·z_{i-1} + b + PE)(即把每跳输出累积进 sketch)。
– 读出:z_i = readout(s_i)(一小组线性头),或直接 score(v) = ‖A_v · s_i‖₂,A_v 可复用边矩阵。
– 本质 = Count-Sketch / AMS 累积。固定内存、不随步长、M~O(k log V) 保重击者。
式 B — JL 随机投影(理论最优,需流式化)
z_i = Φ · flatten([e_0,…,e_i]),Φ ∈ R^{M×(i+1)·32} 固定随机。保距最优;但需存全历史方可投影,故仅作理论基准,实务归约到式 A。
式 C — 把 positions 改为”低秩 + RIP 约束”(最小改动)
保留可学投影,但将其初始化为亚采样哈达玛,并加正则 ‖ΦᵀΦ − I‖ 逼其近正交。既留可学性,又治”几何失明”。
式 D — L1 稀疏能量(正则项,非结构改造)
选词评分由 L2(能量)改辅以 L1 稀疏促显:令流出能量向量稀疏,仅留少数显著方向存活——”压缩即智能”之内部体现。属软约束,可与 A/C 并用。
式 E — 混合式(最稳,对准”无限长上下文”豪言)
近期 k 步留 energy_cache(稠密信息在近处重要);更远的 tail 改用式 A 的 sketch 压缩保存。等效于把 Compressive Transformer 的”二级压缩内存”搬进 SiFu。此举方使”无限长上下文”名副其实,且压缩有 RIP 担保。
—
六、model.py 落地切口(示意)
聚焦于 decode(及 forward)第 118/158/189 行。以式 A 为例,最小侵入改法:
在 __init__ / prepare_network 中注册(固定,不进优化器):
self.M = 64 self.phi = nn.Buffer(self._rip_matrix(self.M, self.hidden_size)) # 固定随机投影 self.sketch = nn.Buffer(torch.zeros(1, self.M)) # 流式 sketch
替换聚合行:
旧: energy_tensor = (energy_cache * self.positions[:, :i, :].softmax(1)).sum(1, keepdim=True)
新: 以 sketch 作全局压缩记忆 + 近期 cache 作局部记忆
energy_tensor = self._compressive_readout(energy_cache, self.sketch, i)
def _rip_matrix(self, m, d): # 亚采样随机哈达玛 / 拉德马赫;固定种子,保证可复现与 RIP g = torch.randn(m, d) g /= math.sqrt(d) return g
def _compressive_readout(self, cache, sketch, i): # 近期窗口(稠密)+ 全局 sketch(稀疏重击者) local = cache[:, max(0, i-self.win):i] # (1, win, 32) local = local.mean(1) # 局部均值 z = torch.cat([local, self.readout_head(sketch)], dim=-1) # 拼接后过一小头 → 32 # 每步把新能量累加进 sketch: self.sketch += self.phi @ cache[:, i-1].reshape(-1, 32).T … # 流式更新 return z
> 注意:sketch 须做成跨步持久缓冲(如模块属性或显式传参),而非每次重算;phi 与 sketch 都应 requires_grad=False(固定投影),让边 W 去自适应——此即 Fabisch “在压缩空间学习,不必重建”之要。
—
七、风险与张力(诚实的边界)
1. 稀疏假设是双刃。CS 仅在”预测信号稀疏于某基”时奏效。BriLLM 是 bigram/路径模型,局部共现确稀疏 → 式 A 正当其时。但长程语义依赖(指代、话题)在 token 基下并不稀疏,纯 sketch 必丢之。故式 E(混合)为安全解;纯 A 用于”短程预测增强”最稳。
2. 维度硬上限。即便最优随机投影,m 亦须 ≥ O(k log V)。若 k(所需显著模式数)超 32,则 32 维本身即瓶颈——此时应增大 M,而非怨压缩。论文用 32 是为小模型,CS 不替你突破维度物理。
3. 训练漂移。固定 Φ 保证 RIP 对其自身成立;边 W 经 SGD 适应后,组合映射未必仍 RIP。实务中固定随机特征映射久经验证可用,但宜监控 sketch 与全缓存的一致性(类比 Compressive Transformer 的 attention-reconstruction loss)。
4. “能量 L2 选词”非 CS 恢复。真 CS 恢复需解 L1(基追踪),代价高。务实取”压缩空间分类”路线:把 sketch 当特征喂读出头,不反解。这与”压缩即智能”并不悖——智能在”压得巧”,不在”解得回”。
—
八、余论:压缩即智能如何兑现
BriLLM 自诩”脑启发””信号动力学”。然其信号流之颈,恰在把历史平均而非压缩。压缩感知点破一事:
> 若以 RIP sketch 代平均,则模型被迫把上下文存进一个最小的、保距的摘要里,仍以正确下一个词为目标训练——此即”在最小维度内保住最多判别信息”,正是 Tishby 信息瓶颈之最优解,亦正是 Schmidhuber”压缩进度即智能”之算子化。
更妙者:BriLLM 本就是”路径/bigram”模型,其有效信息天然稀疏(Zipf)。CS 与 BriLLM,本是一路人——只是 BriLLM 误用了平均当压缩。改此一行,或可使其”无限长上下文”之豪言,由虚转实,由损转保。
此即答步子哥之问:颈在聚合,法在投影;压缩有 RIP 为凭,智能因压缩而生。
—
附:本文所据
– 代码:C:GitHubBriLLM0.5model.py(L76–120, L122–186)、train.py(L104–148, L150–214)、README.md
– 论文:arXiv:2503.11299 BriLLM: Brain-inspired Large Language Model(v8, 2025-09-08)
– 先例:Rae et al. 2019 Compressive Transformer;Donoho 2006 Compressed Sensing;Candès Restricted Isometry Property;Fabisch 2013 Learning in Compressed Space;Schmidhuber Driven by Compression Progress
