SPR:语义前缀路由研究档案
这是什么
SPR(Semantic Prefix Routing,语义前缀路由)是一组研究实验,目标是回答一个问题:
能不能用“路径”替代 Transformer 里的一部分稠密矩阵搜索?
开放实验记录在 GitHub:
https://github.com/houming818/sametime
其中 ara/ 是公开版 ARA 研究记录,保留 logic、trace、轻量 evidence summary 和可公开脚本,方便人类和 AI 一起复盘这条路线。
这里的“路径”不是比喻。它指的是一个 token、短语或句子在递归树、折叠栈或结构图中走过的可计算轨迹。路径可以被组合、比较、压缩,也可以作为下游生成或结构判断的输入。
这套研究现在按 ARA(Architecture / Reasoning / Artifact)方式整理:每个结论都要有证据,每个强 claim 都要有反证标准。
当前结论
SPR 目前不能简单写成“路径即语义”。更准确的判断是:
| 层 | 名称 | 当前状态 |
|---|---|---|
| S1a | Token Path Hash | 已成立:高容量、低碰撞、顺序可分 |
| S1b | Context-conditioned Routing | 受控 proof 已支持:仍需真实语料和基线战 |
| S2 | Fold Stack / Structure Routing | 有证据:语义能预测部分结构动作,但仍需基线对照 |
最重要的变化是:Echo Test 不再被当作语义证明。
Echo 证明系统能把输入还原出来。它证明容量和稳定性,但不证明系统理解了上下文里的含义。
推荐阅读顺序
-
问题定义:为什么要研究路径路由
解释 SPR 想替代什么、不替代什么。 -
S1 实验:Echo、顺序哈希与容量证据
重做 S1 实验,确认哪些结果可靠。 -
S1 反证:token-only 路由不是语义路由
用多义词实验说明当前 S1 的边界。 -
架构决策:把 SPR 拆成三层
给出新的架构划分和接口。 -
S2 结构路线:Fold Stack 的位置
解释 S2 为什么不是 Echo 的延长线,而是结构生成路线。 -
下一轮实验计划
列出下一步怎么让路径真正吃上下文。 -
S1b proof:上下文条件路由到底证明了什么
用受控 proof 审计历史结论,明确哪些说法可以保留,哪些必须降级。 -
S2 策略审计:TreeHeap、Role Slots 和概率容器
用 ARA 方式解释 S2 实验数据,说明为什么下一步转向 Role Slots 和 Probability Container。 -
世界模型与参考系:TreeHeap 术语统一 统一世界模型、参与乘积、参考系、latent slot 和概率容器术语,为下一步 predict 做准备。
-
世界模型守夜训练:新 checkpoint 给了什么证据 用 ARA 方式记录 10 小时新 checkpoint 训练,明确它证明了什么、没有证明什么。
-
TreeHeap 代数:先做数学闭包,再谈语言推理 把 TreeHeap 从乘法层推进成代数系统,定义闭包、转置、逆树堆、投影和能量。
-
子堆核搜索:TreeHeap 里的卷积式推理 把矩阵卷积里的局部核匹配,改写成 TreeHeap 上的 SubHeap Kernel Search,用来讨论拓扑搜索和局部推理操作。
-
M0 纯数学实验:先让 TreeHeap 成为工具箱 记录第一轮合成 toy 实验,说明为什么先验证闭包、非交换、逆操作和子堆核匹配,再进入 Echo 和 S2。
-
基元与 plus:TreeHeap 有序性的来源 把卷积问题继续下压到基元、plus、ordered orbit 和 mod base,说明为什么先找语义空间里的“1”和“+”。
-
primitive plus 实验:把 proof 变成可测的 TreeHeap toy 用本科数学口径解释 P-MATH02 实验:arr[0]、plus、mod base、信息量增长、循环窗口和 kernel 匹配。
-
SPR-048 TreeHeap 私有编码:多头参数森林与串行推理
从经典 Huffman 编码出发,定义 TreeHeap 参数森林、私有编码、并行多头和串行 kernel composition。 -
SPR-049 Mask Kernel:从 token 识别转向结构信息提取
承接 048 的私有编码森林,让 kernel 在 masked TreeHeap 上卷积,输出概率桶而非单个 token。 -
SPR-050 第一次真实语言生成:TreeHeap 从英文到中文
首次真实 WMT 英中 seq2seq:TreeHeap encoder-decoder 生成中文,flat GRU baseline 对照。 -
SPR-051 P0 预训练后的第一次直接提问:失败比成功更有信息
P0 原始中文续写预训练后直接提问,训练损失下降但输出坍缩——这是一个被正面保存的负结果。 -
SPR-052 TreeHeap 终于参加了翻译考试,但还没有赢
用四节点 Frontier 关闭叶子旁路,首次测量 TreeHeap 内部结构对 WMT 翻译的因果作用。 -
SPR-053 TreeHeap 代数算子编解码:root 只要轮廓
将 TreeHeap 压缩重新解释为有损代数编解码,论证 root 天然丢失细节。 -
SPR-054 TreeHeap 多分辨率金字塔:root 看全局,子堆保存细节
三 seed × 100 万 block:冻结 root 后,带地址的低维 detail code 形成稳定渐进恢复曲线。
证据入口
对应的 ARA 文件在仓库中:
ara/s1-echo/logic/claims.md
ara/s1-echo/logic/experiments.md
ara/s1-echo/trace/research_dag.yaml
ara/s1-echo/evidence/README.md
关键脚本:
holds/SameTime/experiments/spr_s1_reproduce.py
holds/SameTime/experiments/spr_s1_falsification.py
holds/SameTime/experiments/spr_context_proof.py
s2_strategy_audit.py
s2_overnight_io.py
关键复现实验结果:
collision=True
sign_alt=True
solo=41311/41429
bleu4=99.99
token_polysemy=0.43
keyword_polysemy=1.00
context_route=1.00
context_route_shuffled=0.48
这组结果的含义是:
collision=True:pure roll 确实有顺序碰撞。sign_alt=True:roll + sign_alt修复了这个碰撞。solo=41311/41429:路径空间足够大,几乎每个 token 独占组合叶。bleu4=99.99:Echo 近乎完美。token_polysemy=0.43:token-only route 不能区分多义上下文。keyword_polysemy=1.00:这个多义词任务本身不是不可解,只是 S1 当前没吃上下文。context_route=1.00:受控上下文信号进入 route 后,同词多义可以被路径分开。context_route_shuffled=0.48:打乱标签后优势消失,说明 proof 没有只靠标签分布取巧。
阅读提醒
旧版 SPR 文章是实验史,曾经混合了探索、猜想和阶段性判断。新版专题只保留当前架构上仍然成立的叙事,并把过强结论降级为待验证假说。
License: GPLv3
-
[SPR-001] 问题定义:为什么要研究路径路由
SPR 的问题定义:路径路由要解决什么问题,以及它不应该被误解成什么。 -
[SPR-002] S1 实验:Echo、顺序哈希与容量证据
SPR S1 中已经成立的部分:顺序哈希修复、分解路由容量、Echo 复现。 -
[SPR-003] S1 反证:token-only 路由不是语义路由
用多义词实验反证当前 S1 token-only 路由的语义 claim。 -
[SPR-004] 架构决策:把 SPR 拆成三层
SPR 的新架构划分:S1a Token Path Hash、S1b Context Routing、S2 Fold Stack。 -
[SPR-005] S2 结构路线:Fold Stack 的位置
S2 Fold Stack 在 SPR 中的位置:从语义向量到结构动作,而不是 Echo 的重复。 -
[SPR-006] 下一轮实验:从 proof 走向真实基线战
SPR 下一轮实验计划:把受控 context proof 放进真实语料、随机哈希和 BoW 基线战。 -
[SPR-007] S1b proof:上下文条件路由到底证明了什么
重写 SPR 历史结论:context-conditioned route 在受控 proof 中成立,但它不是完整语义路由证明。 -
[SPR-008] S2 策略审计:TreeHeap、Role Slots 和概率容器
用 ARA 方式解释 S2 实验:当前 TreeHeap checkpoint 支撑什么、不支撑什么,以及下一步为什么转向 Role Slots 和 Probability Container。 -
[SPR-009] 世界模型与参考系:TreeHeap 术语统一
统一 TreeHeap 的世界模型、参与乘积、参考系、latent slot 和概率容器术语,为后续 ARA predict 做准备。 -
[SPR-010] 世界模型守夜训练:新 checkpoint 给了什么证据
用 ARA 方式记录一次 10 小时 TreeHeap world-model 守夜训练:它证明了什么,没有证明什么,下一步 predict 应该怎么改。 -
[SPR-011] TreeHeap 代数:先做数学闭包,再谈语言推理
把 TreeHeap 从一个乘法向量层推进成代数系统:定义闭包、转置、逆树堆、投影、能量和概率容器。 -
[SPR-012] 子堆核搜索:TreeHeap 里的卷积式推理
把矩阵卷积里的局部核匹配,改写成 TreeHeap 的 SubHeap Kernel Search:一种拓扑搜索和局部推理操作。 -
[SPR-013] M0 纯数学实验:先让 TreeHeap 成为工具箱
记录第一轮 M0 TreeHeap Math toy 实验:为什么先不做 WMT,怎么验证闭包、非交换、逆操作、投影和子堆核匹配。 -
[SPR-014] 基元与 plus:TreeHeap 有序性的来源
把 TreeHeap 的卷积问题继续下压:先寻找语义空间里的基元、plus 算子和由 plus 生成的有序性。 -
[SPR-015] primitive plus 实验:把 proof 变成可测的 TreeHeap toy
用中国大陆本科数学口径解释 primitive_plus_probe:arr[0]、plus、mod base、信息量增长、循环窗口和 kernel 匹配。 -
[SPR-016] Trainability Quiz:TreeHeap 进入可学习系统之前的三道小题
解释为什么在 WMT 之前先做线性回归、XOR、模加法三道 toy 训练题,以及这次实验怎样支撑 TreeHeap encoder/plus/decoder 的下一步设计。 -
[SPR-017] TreeHeap 的存在性证明:把 Claim 说清楚
修正 TreeHeap proof 的三个 claim:循环寻址不是普通加法,A 是学习器归纳边界,B 是子结构 kernel,C 是前缀压缩和概率容器。 -
[SPR-018] TreeHeap 的存在性:编码结构与共轭 Kernel
修正 TreeHeap 的核心 claim:不是简单 pattern matching,而是学习可搜索、可压缩的编码结构,并用共轭 kernel 完成查询和解码。 -
[SPR-019] Soft TreeHeap:梯度如何进入树堆结构
把 TreeHeap 接入机器学习:用 kernel-guided soft plus、soft route 和多核训练让梯度进入树堆算子,并提出 claim、predict、proof 和实验方案。 -
[SPR-020] Soft TreeHeap 审计:proof 证明了什么,没证明什么
根据 GLM/Runner 的复现实验修订 ARA:区分梯度可达、toy 坍缩、clean kernel 学习三件不同的事,并说明下一步实验。 -
[SPR-021] C05:TreeHeap 不能只是披着树皮的 MLP
把 C05 改成结构 proof:如果公式里没有路径、前缀、子堆和递归 plus,它就只是 flat soft memory。 -
[SPR-022] TreeHeap 的数学底座:有根树 Hopf 代数、Operad 与 Kernel
把 SPR-011 到 SPR-021 的 TreeHeap 代数设计放回已有数学框架:BCK/MKW rooted-tree Hopf algebra、operad、decomposition space、tree kernel,以及它们对 TreeHeap kernel 的意义。 -
[SPR-023] 从卷积核重新定义 TreeHeap 操作
把 plus、search、conjugate 统一为 TreeHeap kernel 在树形内存态上的卷积状态变换,并用 toy proof 验证 score map、write field 与镜像共轭。 -
[SPR-024] 概率 Kernel:用 KL 散度衡量 TreeHeap 是否学到世界模型
把 TreeHeap kernel 拆成代数 kernel 与概率 kernel:前者证明操作定义正确,后者用 KL 散度和交叉熵证明模型是否学到了世界模型中的操作分布。 -
[SPR-025] 演绎与归纳:TreeHeap Kernel 的两类 Proof
把 TreeHeap kernel proof 拆成演绎证明和归纳证明:演绎证明代数操作按定义成立,归纳证明概率 kernel 能通过梯度学习拟合世界模型分布,并用 KL/OOD KL 评价。 -
[SPR-026] S1 开始:真实短句上的浅层 TreeHeap 写入
M0 pilot closed 之后,S1 的第一步不是 WMT,而是真实短句上的 encoder -> soft TreeHeap write -> slot probe。本文记录 shallow_treeheap_s1_probe 的设计、结果和边界。 -
[SPR-027] TreeHeap 差分代数:从 Zero 到距离,再到学习
TreeHeap 的距离不应该先拍一个 scalar 公式,而应该先定义 Zero、差分、范数、内积、cosine 和 finite difference。本文记录 treeheap_diff_algebra_probe 的设计和结果。 -
[SPR-028] 世界模型坐标系第一试:Frozen Embedding 不是胜利,是一把尺
用冻结的 all-MiniLM-L6-v2 embedding 作为外部世界坐标尺,测试 TreeHeap prob vector plus 在复合词任务上能否靠近目标概念。结果是负面的:vector_add 明显更强。 -
[SPR-029] 不再借外部向量:从本地共现语料训练坐标,再测 TreeHeap Kernel
SPR-028 输给 vector_add,并不能 defeat TreeHeap,因为 frozen embedding 本来就是向量拓扑源。本文改用本地 SGNS 共现语料训练坐标,并测试结构化 TreeHeap kernel。 -
[SPR-030] 用 WMT 真语料做 Echo:先证明 TreeHeap Kernel 能写入真实 BPE 序列
这次不直接做翻译,而是用 WMT 真语料做短序列 echo,验证 TreeHeap kernel 是否能把真实 SentencePiece token 写入树堆地址,再稳定读出。 -
[SPR-031] Multi-Kernel 会自然分工吗:一次 WMT 扰动任务的混合结果
这次实验测试 TreeHeap kernel bank 是否会像 Transformer multi-head 一样,在结构扰动任务下形成不同功能。结果是:分化信号出现了,但任务能力还没过关。 -
[SPR-032] TreeHeap 的概率读取核:从 arr[1] 开始的 stop/left/right 坍缩
这篇记录 SPR-032:把 TreeHeap read 从 root bottleneck 改成 query-conditioned probabilistic read kernel。实验说明路径坍缩和叶子读取成立,但内部子堆摘要还没解决。 -
[SPR-033] TreeHeap 的代数 Decoder:internal state 不是没信息,而是需要正确读法
SPR-033 回答 SPR-032 的一个关键问题:internal node state 如果像 hash 一样不可直观看懂,是否能从 TreeHeap 的数学结构中找到 decoder?实验支持 projection、decompose、mod、conjugate 等代数 decoder。 -
[SPR-034] 从 checksum 退一步:先读 TreeHeap 内部节点的自然属性
SPR-034 把 SPR-032 的内部节点 checksum 失败拆开:如果 read kernel 已经能走到 internal node,那么应该先读取 length、first、last、prefix 这种 TreeHeap 自然属性,而不是任意 checksum。实验显示 routed internal readout 明显强于 root bottleneck。residue 只保留为旁路诊断,不作为本 claim 的判断条件。 -
[SPR-035] 一维数组如何折叠成 TreeHeap:先保序,再谈取模
SPR-035 把一维有序数组折叠成 TreeHeap 的问题拆开:第一步必须保留叶子地址、路径和子树局部性;bag/root collapse 和过早 modulo fold 都会丢掉自然 internal readout。取模不是被否定,而是应该作为后续独立 folding kernel 研究。 -
[SPR-036] 语言理解也许不是先填槽,而是在平面上摆积木
SPR-036 修正 TreeHeap fold 的理论方向:不是先发明一个二叉 fold 再证明语言适配它,而是从语言现象中发现词块在 latent plane 上的摆放、吸附、聚类和坍缩规律。Transformer 更像动态共现/关系场,TreeHeap 则可以看作这个场上的二分平面与局部卷积坐标。 -
[SPR-037] 可控流形:怎样把 TreeHeap 从一团乱调到可用结构
SPR-037 把 TreeHeap fold 从纯理论问题推进到产品调试问题:如果 kernel 有可调控制量,输出结构是否会从乱态沿着一个可测量的面走向稳定块?toy proof 显示低控制 F1 0.0828,最佳 F1 0.8148,对角线增益 0.7319。 -
[SPR-038] 梯度到底改什么:TreeHeap 状态松弛的边界
SPR-038 修订版:区分参数 TreeHeap、激活 TreeHeap、物理地址、语义地址和 kernel;说明本实验只证明状态松弛,不证明 kernel 参数学习。 -
[SPR-039] 参数也是 TreeHeap:kernel 自己学会了卷积
SPR-039 proof:把 SPR-038 的状态松弛和真正的参数学习分开,证明 parameter TreeHeap Theta 可以通过梯度学会局部 subheap 卷积核。 -
[SPR-040] TreeHeap kernel 的 mirror 手性翻转:几何翻转如何变成代数置换
SPR-040 proof:证明 TreeHeap 局部卷积在左右 mirror 下可以由堆地址置换和 kernel 槽位置换实现,并且 mirrored kernel 可以从数据中学回。 -
[SPR-042] SPR 全貌总结:从 M0 数学到 S1 echo 的四十二篇探索
SPR 研究全景回顾:M0 数学底座、S1 echo 路线、S2 折叠栈、ARA 协议与 Squad 协作、当前 claim 统计与开放问题。 -
[SPR-045] 重做 S1 route:矩阵不是 TreeHeap,递归路径才是
删除并重写 SPR-041/043/044 的路线:区分 flat LxL route matrix 和真正的 recursive TreeHeap stop/left/right route,并给出 WMT-massive proof。 -
[SPR-046] TreeHeap 语义前缀压缩:从 word bag 到可迁移的结构状态
SPR-046 重写版:用本科可理解的方式说明 Transformer 并不保存所有可能句子,TreeHeap 的假设是用树形语义前缀压缩形成可解码、可迁移的结构状态;并记录 content-aware route、compact state 和 semantic-prefix toy proof 的证据与边界。 -
[SPR-047] TreeHeap Encoder:世界观察者如何把规律写进树
SPR-047 把问题从 route/read 推回 encoder:TreeHeap 的语义结构不能靠哲学假设写入,必须由 encoder 通过 echo、上下文预测、InfoNCE、替换一致性和描述长度等可压缩性信号,从观察数据中学出 placement、fold 和 prefix。 -
[SPR-048] TreeHeap 私有编码:多头参数森林与串行推理
从经典 Huffman 编码出发,定义 TreeHeap 参数森林、私有编码、并行多头和串行 kernel composition,并说明 scalar loss 如何把数据写入参数树。 -
[SPR-049] Mask Kernel:从 token 识别转向结构信息提取
承接 SPR-048 的私有编码森林,把下一步问题改写为:TreeHeap kernel 如何在 mask string / masked TreeHeap 上卷积,输出可坍缩的概率桶,而不是只识别单个 token。 -
[SPR-050] 第一次真实语言生成:TreeHeap 从英文到中文,但还不是问答
记录首次真实 WMT 英中 seq2seq 运行:TreeHeap encoder-decoder 已能生成主题相关的中文句子,但当前落后 flat GRU;这验证的是 S3 表面生成通路,不是问答或翻译成果。 -
[SPR-051] P0 预训练后的第一次直接提问:失败比成功更有信息
记录 TreeHeap P0 原始中文续写预训练的第一次直接问答测试。训练损失下降,但模型在问题输入上重复坍缩;这不是世界模型或问答能力的证据。 -
[SPR-052] TreeHeap 终于参加了翻译考试,但还没有赢
用四节点 Frontier 关闭叶子旁路,第一次测量 TreeHeap 内部结构对真实 WMT 翻译的因果作用。Route 出现微弱正信号,但仍落后于普通四段向量压缩。 -
[SPR-053] 不让神经网络重写整棵树:让它学习选择 TreeHeap 算子
检验结构能否进入 encoder,以及 TreeHeap 能否用自身算子恢复数据。未见地址成功,未见深度失败,并定位了失败位置。 -
[SPR-054] TreeHeap 多分辨率金字塔:root 看全局,子堆保存细节
三 seed、每 seed 100 万真实文本 block 的实验表明:冻结 TreeHeap root 后,带地址的低维 detail code 可形成稳定的渐进恢复曲线;同时记录 flat 对照失败尾部与尚未完成的验证。 -
[SPR-055] 让信息向 root 生长:TreeHeap 的多尺度 Mask 学习
真实中文实验表明,多尺度子堆 Mask 能让 root 获得样本相关信息,但 root 贡献随 Mask 深度严格下降;本文公开 5/6 Gate、反向结果与下一步修正。 -
[SPR-056] 看见树内的变化:TreeHeap 单层观察与跨语言差分
我们打开一个真实 TreeHeap 层,展示节点覆盖文本、64D 私有状态、读出结果和最近邻反例,并提出通过路径差分、子堆替换与跨语言对齐观察私有编码的新方法。 -
[SPR-057] 一次 100% 却失败的实验:为什么差分不能替我们找到意识
一个显式 DIFF-TRANSPORT-APPLY 模型在有限类比任务上达到 100%,但 World TreeHeap 几乎可被删除,较小的 Transformer 同样满分。本文公开这次失败,并解释为何内部差分适合做诊断,却不足以解释意识或涌现。 -
[SPR-058] TreeHeap 信息抽水机:先形成 H_state,再遮住 token,能否完整 Echo?
区分三种完全不同的 mask 时序,并报告 TreeHeap lifting information pump 的真实结果:所有 leaf 被遮住后,仅凭训练形成的 root 与多层 detail,token 和 16-token block 均可 100% Echo。 -
[SPR-059] TreeHeap 抽水机第一次进入 WMT:递归 READ 成立了,但翻译还没有赢
在 27K/2K/2K 英中 WMT 数据上验证 TreeHeap lifting encoder 与 root-first 概率递归 READ:八项机制门全部通过,TreeHeap 明确利用了 root、detail 和递归配对,但 flat sequence baseline 仍有更好的翻译 NLL。 -
[SPR-060] TreeHeap 退火缩句协议:让重要信息活到更高层
从单 token Mask 的信息单一化出发,提出 TreeHeap 的分层退火缩句协议:完整输入先参与 FOLD,随后在逐层收窄的容量中保留更有解释力和预测力的结构,detail 保存局部精度,parent 与 root 保存越来越粗的语言轮廓。 -
[SPR-061] TreeHeap 损伤后的生长:从消融因果走向跨分辨率修复
撤回“高层自然保存可读缩句”的理想化解释,区分信息因果性与损伤修复能力,并提出 TreeHeap 的跨分辨率修复假设:局部状态缺失后,由剩余 root、detail、地址和世界模型形成概率容器,递归生成与整体一致的细节。 -
[SPR-062] 如何读懂 TreeHeap 实验:从 NLL、Loss 到因果干预和统计证据
面向本科读者的 TreeHeap 实验指标说明书:解释 NLL、交叉熵、困惑度、MSE、余弦距离、KL 散度、准确率、BLEU、消融损失、修复率、置信区间等数字究竟在测量什么,以及它们不能证明什么。 -
[SPR-063] TreeHeap 分辨率协议重审:递归抽水、细节残差与递归解码
公开撤回一次把多层变长数组误称为 TreeHeap 递归解码的实验解释,并重新定义 TreeHeap 的分辨率、递归、残差和抽水协议。 -
[SPR-064] 私有协议,结果见本事:TreeHeap 下一轮公平实验设计
停止替 TreeHeap 的内部状态编故事。本文汇总私有协议与 lifting 抽水机的已有证据,并预注册一场只看任务结果、结构因果性和公平基线的实验。