零权重语言模型 MSE-GLM:用图遍历替代概率采样
无学习权重、完全确定性、仅需 CPU 的图结构语言模型,专为受限生成与可审计场景设计。
一款名为 MSE-GLM(Graph Language Model)的语言模型近日在 Hacker News 引发讨论。它完全不使用学习得到的神经网络权重,而是把语料建模成有向图,通过显式规则完成推理;整个过程确定、可追溯,且无需 GPU,可在纯 CPU 环境下运行。
核心思路:把语言当成图
传统语言模型通过在海量文本上训练,调整数十亿浮点权重来预测下一个词,并在推理时从概率分布中采样。MSE-GLM 走的是另一条路线:token 是节点,观察到的 token 转移是边,推理则是按一组可检查的规则做图遍历。由于没有学习权重、没有梯度、没有概率采样,每一步生成决策都能追溯到具体的规则和候选集。
作者明确指出,该模型并非 Transformer 的通用替代品,而是面向以下场景:
- 受语法约束的生成(如 SQL、JSON Schema、汇编助记符)
- 嵌入式 AI 与端侧部署
- 需要审计追踪(audit trail)的工具链
- 对可复现性有严格要求的流水线
三矩阵架构
训练过程只需对语料做一次 O(N) 扫描,不涉及反向传播、epoch 或 GPU。最终模型以一组自包含的 JSON 文件保存(词表、边、桥、关系、元数据),可在任意安装了 Python 的机器上加载运行。
模型的核心数据结构是三个紧凑的 CSR 索引数组:
- 边矩阵 E:存储语料中所有去重后的相邻 token 对(bigram),按源 token 排序,支持 O(1) 后继查找。
- 桥矩阵 B:扩展到三元上下文(trigram),并额外增加 cluster_id 一列,用于无监督的分布聚类。
- 关系矩阵 R:只存储 (triple_id, relationship_id) 二元组,把桥三元组映射回它出现过的训练句子,从而在推理阶段实现基于「谱系」的歧义消解。R 不复制三元组本身内容,同一三元组出现在多个句子中时各占一行。
存储全部使用 Python 的 array.array('i'),每个整数 4 字节,比等价的 Python list 节省约 7 倍空间。
歧义消解与分布聚类
当图结构出现真正的歧义——同一上下文下多个候选 token 都同等合理——MSE-GLM 用一套可检查的规则而非概率采样来打破平局。核心机制是「双轴聚类」:
- 桥轴:共享相同 (source, target) 的三元组获得同一 cluster_id,把可互换的中间 token 归为一组。
- 目标轴:共享相同 (source, bridge) 但尚未被桥轴覆盖的三元组归为一组。
这种方式被视为 word2vec 分布假设的「无权重、符号化」类比:出现在同一结构槽位中的 token 在功能上彼此相关,但并不声称它们共享语义。推理引擎在此之上叠加四阶段流水线与 infer_shared_role() 等机制完成最终生成。
分词与训练流程
分词器是作者从零实现的 Byte Pair Encoding(BPE),与 GPT-2 同源,但无任何外部依赖。系统预留四个特殊 token:<PAD>(0)、<UNK>(1)、<BOS>(2)、<EOS>(3)。训练时保留 . ! ? \n 等句子边界,让图学会序列的合法终止位置;并支持文件流式训练,语料规模不再受限于可用内存。
现状与局限
项目当前版本为 v2.1,自报 56/56 单元测试通过,可在纯 CPU 环境下运行。对它感兴趣的读者需要注意的是:
- 通用开放域生成与推理仍属于 Transformer 阵营;
- 该架构的优势集中在「输出空间有限且可枚举」的受限任务;
- 评测主要来自作者自身的测试用例,缺少独立基准对比。
对于需要在嵌入式设备或审计敏感场景下做确定性文本生成的工程师而言,零权重 + 图遍历 + CPU 可运行的组合具备现实吸引力;但要在更广泛的任务上替代现有方案,仍需更多外部验证与第三方基准支撑。
