碱基互补语言模型 用 DNA 配对规则从无标注文本中发现语法“如果语言也有一条双螺旋——我们只是还没有找到它”引子一个从来没有人问过的问题有一个事实如此明显以至于没有人想到去质疑它。DNA 用四个碱基存储生命的全部信息。它们两两配对A–T、G–C。从这一条规则——互补性——诞生了复制、转录、蛋白质折叠、遗传……生命的全部复杂性都从碱基配对开始。现在看语言。词语排列成序列。有些相邻的词组合自然“那只猫”有些则别扭“猫那只”。语言中存在一套看不见的规则——句法——决定哪些词可以做邻居。我们花几年学习它们。企业花数十亿美元标注语料库好让机器也能学会它们。但如果句法不过是另一套互补配对系统呢如果每一个词都携带一个潜在的碱基类型组合自然的词对碱基恰好互补——就像 A 配 T锁配钥匙这就是碱基互补语言模型的出发点一个只有48 万参数的模型从原始无标注文本中自动发现词性、捕获局部句法兼容性、将 3 万词的词表压缩到约 4500 个候选——不需要任何标注不需要预训练词向量不需要注意力机制。只需要离散碱基配对。第一幕 困境为什么语言模型需要结构现代 LLM 的悖论当代语言模型强大得令人惊叹。它们生成流畅的文本回答问题编写代码。但这种能力来自暴力堆叠模型参数量训练数据GPT-215 亿40GB 文本GPT-31750 亿570GB 文本GPT-4~1.7 万亿估计~13 万亿 token每一句流畅的句子背后都是一片连续、无差别的概率海洋。模型知道猫经常出现在那只后面但它不知道为什么。它没有名词或冠词的概念。句法结构被溶解在光滑的向量空间中不可恢复。这带来三个实际问题不可解释。你无法打开一个 Transformer 问“你把这个词归为什么句法类别”无法组合泛化。如果模型见过一只红色的猫但从未见过一只蓝色的猫它没有原则性的理由知道后者合法——除非它见过足够多的相似样本来插值。无法压缩。每一步模型都要评估全部 V 个 token。V30000 意味着每个位置 30000 次比较。没有内在机制说这里只需要看名词。缺失的要素离散结构我们需要的不是更多参数而是结构——具体来说一种机制能够为每个词分配离散的、可解释的类别在相邻词之间强制执行兼容性约束不需要任何标注数据可以扩展到任意词表大小生物学在这里给出了一个意想不到的答案。第二幕 方法当碱基互补遇上语言核心洞察在分子生物学中互补碱基配对是最简单的兼容性规则A 配 T G 配 C两个符号。一个配对矩阵。由此万物生长。我们提出同样的原则可以用于语言。具体来说每个词 w 被分配一个左碱基和一个右碱基——从 B 种碱基类型中抽取的离散潜在类型。相邻词兼容当且仅当 w_t 的右碱基与 w_{t1} 的左碱基配对。配对由一个固定的互补矩阵 C ∈ {0,1}^{B×B} 控制其中 C[i,j]1 表示碱基 i 与碱基 j 配对。C 是一个对称对合完美匹配与 DNA 碱基配对完全一致。从离散到可微Gumbel-Softmax挑战在于 argmax选择单个碱基类型不可微分。我们使用Gumbel-Softmax 技巧产生连续的可微近似对于每个词 w 左碱基(w) GumbelSoftmax(logits_左[w], τ) ∈ ℝ^B 右碱基(w) GumbelSoftmax(logits_右[w], τ) ∈ ℝ^B温度 τ → 0 时分布趋向 one-hot单个碱基类型。τ → ∞ 时分布趋向均匀。训练过程中退火 τ从高温探索到低温承诺。亲和力分数相邻 token 的兼容性计算如下亲和力(w_t, w_{t1}) 右碱基(w_t)^T · C · 左碱基(w_{t1})这是w_t 的右碱基在寻找什么通过互补矩阵变换与w_{t1} 的左碱基实际是什么之间的点积。配对则高≈1不配对则低≈0。训练对比学习模型使用简单目标训练真实句子的亲和力应高于被破坏的句子。计算真实序列的亲和力分数 →pos_scores破坏序列替换随机 token→ 计算亲和力 →neg_scores间隔排序损失pos_scores应至少比neg_scores高出间隔 m为防止坍塌所有 token 获得相同碱基添加熵正则化鼓励每个 token 承诺到特定碱基单 token 低熵全局熵奖励鼓励所有 B 种碱基类型均匀使用全局高熵完整架构┌─────────────────────────────────────────────────┐ │ 输入token_ids │ │ [batch, seq_len] │ └──────────────────┬──────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────┐ │ GumbelSoftmaxBase │ │ left_logits [vocab_size, B] → 左碱基分布 │ │ right_logits [vocab_size, B] → 右碱基分布 │ │ 唯一的可学习参数 │ └──────────┬───────────────────────┬──────────────┘ │ │ left[b,s,B] right[b,s,B] │ │ │ ┌──────────┐ │ │ │ 矩阵 C │ │ │ │ 固定 │ │ │ └────┬─────┘ │ │ │ │ ▼ ▼ ▼ left[t1] right[t]C │ │ └────┬────┘ │ 点积 ▼ 亲和力分数 [batch, seq_len-1] │ ▼ log(亲和力) → 对比损失总参数量2 × 词表大小 × B。V30000、B8 时仅 48 万——比 GPT-2 少五个数量级。第三幕 结果模型发现了什么实验设置在中文对话数据集30000 词表jieba 分词上评估扫描碱基类型数 B ∈ {8, 12, 16, 24}。主要结果B匹配率随机基线倍数PPL候选集大小词表覆盖率80.80780.12506.46×11.474,571 / 30,00015.2%120.79180.08339.50×20.193,964 / 30,00013.2%160.78210.062512.51×32.533,567 / 30,00011.9%240.77520.041718.61×56.943,378 / 30,00011.3%解读这张表匹配率 0.8078B8给定一个词的右碱基模型能正确预测下一个词的左碱基准确率80.78%。随机基线只有 12.5%。比随机好了6.46 倍。候选集 4,571 / 30,000碱基约束将下一个词的搜索空间从 30000 缩小到约 4571。候选词减少了84.8%。PPL 11.47B8模型的互补困惑度与一个训练好的 LSTM 语言模型相当——而它只用了查找表。更深的发现碱基类型 ≈ 词性在英语受控数据集80 句4 种词性DT、JJ、NN、VB上我们测量了学习到的碱基类型与黄金词性标签的对齐程度指标数值随机基线NMI标准化互信息0.4740.0ARI调整兰德指数0.2490.0NMI 0.474 意味着模型的碱基分配与真实词性标签共享了近一半的信息量——完全从无标注文本中发现没有任何句法监督。模型不知道什么是名词。它从未见过词性标签。但它自发地将词汇聚类为与语言句法对齐的类别。权衡格局结果揭示了一个由单一超参数 B 控制的清晰而优雅的权衡B ↑ → 匹配率 ↓略降 但 ×随机 ↑剧升 B ↑ → PPL ↑不确定性增 但 候选集 ↓压缩更强B8是原始预测的甜点最高匹配率最低 PPLB24是压缩的甜点18.61× 随机词表仅覆盖 11.3%B 的选择是精度与效率之间的旋钮第四幕 对比为什么这很重要vs. Bigram 模型一个自然的问题这不就是 bigram 模型多了几步吗不是。碱基互补的瓶颈改变了一切特性普通 Bigram碱基互补参数量V²V30K 时 9 亿2VBB8 时 48 万未见组合泛化❌ 零泛化✅ 通过碱基聚类泛化候选压缩❌ 必须评估全部 V✅ 过滤到 ~15%发现潜在类别❌ 无✅ NMI0.47 与词性对齐可解释性❌ 查找表✅ 碱基类型 句法角色核心差异是信息瓶颈。通过强制所有 token 经过 B 种碱基类型模型必须学会将扮演相似句法角色的词归为一类。这不是缺陷——这正是它的设计。具体例子假设训练数据包含一只红色的猫但从未出现一只蓝色的猫。BigramP(蓝色 | 一只) ≈ 0。无法预测。碱基互补红色和蓝色被分配了相同的碱基类型都是形容词。一只的右碱基与该类型配对。因此一只蓝色的猫获得高亲和力。无需插值的泛化。vs. 神经语言模型LSTM、Transformer特性LSTM / Transformer碱基互补上下文窗口无限LSTM/ 固定Transformer仅 bigram当前句法可解释性❌ 连续隐状态✅ 离散碱基类型参数效率百万–万亿级48 万需要预训练是否发现词性隐式需探测直接可观碱基互补模型不是在流畅性上与 Transformer 竞争。它占据一个不同的定位用最少参数做结构发现。它的定位碱基互补模型是一个句法探针无监督发现词性一个候选过滤器将下一词搜索压缩 85%一个结构先验可以前置到任何语言模型注入离散句法约束一个研究方向语言的离散潜在结构的最简实例第五幕 未来从 Bigram 到无限上下文当前模型有一个明确的局限只对相邻 token 配对。用 DNA 的话说它只建模了一级结构——碱基的线性序列。但 DNA 的力量在于其二级结构线性序列中相距很远的碱基可以配对形成环、发夹和复杂的三维形状。RNA 核酶通过长程碱基配对催化化学反应。三条通往无限上下文的路径1. 递归碱基状态将碱基信息注入递归隐状态state[t] GRU(state[t-1], base_embedding(token[t])) 亲和力(t, t1) state[t]^T · C · state[t1]状态携带整个左上文的信息碱基配对提供离散约束。架构改动最小。2. 栈式配对RNA 二级结构每个 token 选择三种动作之一PUSH将右碱基压入栈等待未来匹配POP左碱基与栈顶配对长程配对PASS标准相邻配对那只 我 昨天 看到 的 猫 坐在 那里 那只 → PUSH等待主语动词 猫 → PUSH等待定语从句动词 的 → PASS 看到 → POP与猫配对 ✓ 坐在 → POP与那只配对 ✓跨越 7 个 token 的主谓一致这是一个可微分下推自动机——能表示任意嵌套结构。3. 多尺度膨胀配对借鉴膨胀卷积层级 0token_i ↔ token_{i1} 距离 1当前已有 层级 1token_i ↔ token_{i2} 距离 2 层级 2token_i ↔ token_{i4} 距离 4 层级 ktoken_i ↔ token_{i2^k} 距离 2^k仅需 O(log L) 个层级即可覆盖长度为 L 的序列。每个层级学习自己的碱基类型和互补矩阵。终章以下是我们已经证明的一个48 万参数的模型GPT-2 的 0.03%从原始文本中发现了词性一个超参数 B 像旋钮一样在精度与压缩之间切换在 3 万词表的中文数据集上匹配率达到80.78%——随机基线的6.46 倍候选词从 30000 压缩到4571减少 85%与 DNA 碱基配对的直接类比开启了长程结构的路径以下是我们尚未证明的超越 bigram 的长程依赖扩展到数十亿 token作为结构先验集成到现有语言模型中碱基互补是语言的基本属性还是有用近似剩下的问题是如果 48 万参数和一条配对规则能在 30 个 epoch 中挖出潜在句法那么加上递归状态、栈式配对和一亿条句子会发生什么DNA 的类比暗示了答案从碱基配对开始万物生长。技术摘要架构BaseComplementModel ├── GumbelSoftmaxBase2 × V × B 可学习参数 │ ├── left_logits [V, B] — 我在左侧寻找什么碱基 │ └── right_logits [V, B] — 我在右侧提供什么碱基 └── 互补矩阵 C [B, B] — 固定对称配对对合置换 损失 对比间隔损失 λ₁ × 熵正则化承诺到特定碱基 - λ₂ × 全局熵奖励均匀使用所有碱基类型核心公式亲和力 a(t) right(w_t)^T · C · left(w_{t1}) 匹配率 P[left(w_{t1}) 与 C · right(w_t) 匹配] 候选集 {w : left(w) ∈ support(C · right(w_t))}超参数参数符号默认值作用碱基类型数B8控制精度-压缩权衡温度τ2.0 → 0.5Gumbel-Softmax 退火间隔m1.0对比损失间隔熵正则权重λ₁0.01鼓励碱基承诺全局熵权重λ₂0.005防止碱基坍塌项目结构base_complement_lm/ ├── config.py 超参数配置dataclass ├── data.py 数据加载器toy/custom/wikitext/jsonl ├── model.py 碱基互补模型 Gumbel-Softmax 损失 ├── train.py 训练循环 τ 退火 早停 ├── evaluate.py 评估匹配率、PPL、候选生成、POS NMI ├── baselines.py LSTM 基线模型 ├── toy_data.py 玩具文法数据生成器 ├── run.py CLI 主入口 └── run_jsonl_fast.py 中文 JSONL 快速实验脚本引用article{base_complement_lm_2026, title{碱基互补语言模型离散碱基配对约束用于无监督句法发现}, author{碱基互补语言模型研究}, year{2026}, note{一个用 DNA 碱基互补配对从无标注文本中发现潜在句法的最小模型。} }本项目开放合作。如果语言作为互补配对系统的想法与你的研究产生共鸣欢迎联系。