Language Models Without a Trainable Input Embedding Table: Learning from Fixed Minimal Binary Token Codes¶
- 作者:Andrey Bochkov(独立研究者,无 affiliation,邮箱 [email protected])
- arXiv:2605.09751v1 (2026-05-10, cs.CL)
- License:CC BY 4.0
- 代码与配置:https://huggingface.co/E6E831728
一、研究动机与背景¶
现代语言模型几乎无一例外都从一张可训练的输入嵌入表(input embedding table)$E_{\text{in}} \in \mathbb{R}^{V \times d_{\text{model}}}$ 开始:token ID $t \in \{0, \dots, V-1\}$ 通过一次 lookup 被映射到一个 $d_{\text{model}}$ 维连续向量,作为后续所有计算的起点。这个设计如此标准,以至于它常被当作"架构不可或缺的组件"——既要承担token identity 的载体,又要承担初始语义几何的角色。
但作者从信息论角度提出了一个简单但被忽视的事实:对一个大小为 $V$ 的词表,token identity 仅需要 $K = \lceil \log_2 V \rceil$ 比特就可以唯一表达。当 $V = 65{,}536$ 时,$K = 16$ 已足够注入身份信息。然而一张标准嵌入表却使用了 $V \times d_{\text{model}} = 65{,}536 \times 1{,}024 \approx 67.1\text{M}$ 个可训练参数——相对于"身份"这一最小需求,存在严重的过参数化。
由此作者提出了核心问题:
Does a Transformer language model need a trainable input embedding table, or is exact token identity enough? (Transformer 语言模型真的需要一张可训练的输入嵌入表吗,还是 token identity 本身就足够?)
值得强调的是,这个问题与 ALBERT、Adaptive Inputs、DeFINE、LightRNN、Hash Embeddings、Compositional Code Learning 等"嵌入压缩 / 共享"工作根本不同:那些方法仍然在学一个连续可训练的输入表达,只是结构上更紧凑;本文则要彻底移除输入侧的可训练参数。
输出端(output projection / language-model head)保持标准的可训练大矩阵,论文有意将"输入接口的必要性"与"输出层的可微"完全解耦,只问输入端的问题。
作者的结论是一句很谨慎的充分性陈述(sufficiency statement):在他们所测的 regime 下,一个固定、最小、单射的 binary token-identity code,已经足以让 Transformer stack 学到有用的语言模型——可训练输入嵌入表不是架构必要项。
二、核心方法¶
整体上,本文用一条确定性的二元编码接口替换了 $t \mapsto E_{\text{in}}[t]$:
$$ t \;\longmapsto\; x(t) = R\,\tilde{c}(t) \in \mathbb{R}^{d_{\text{model}}} \tag{1} $$
其中:
- $\tilde{c}(t) \in \{0,1\}^K$ 是赋给 token $t$ 的固定二元码;
- $R \in \mathbb{R}^{d_{\text{model}} \times K}$ 是一个零参数 fixed lift,把 $K$ 维码升到模型宽度。
整个输入接口里不包含任何可训练参数,输出端 head 仍可训练。
2.1 Canonical minimal binary code¶
给定 token ID $t \in \{0, \dots, V-1\}$,最直接的最小码就是它的 $K$ 比特二进制展开:
$$ c(t) = \mathrm{bin}_K(t) \in \{0,1\}^K, \qquad c(t)_j = \left\lfloor \frac{t}{2^j} \right\rfloor \bmod 2 \tag{2} $$
其中 $j = 0$ 对应最低位。当 $V = 2^K$(恰好是 2 的幂)时,这是 token ID 空间到完整 binary hypercube $\{0,1\}^K$ 的双射;当 $V \lt 2^K$ 时仍是单射,仅有 $2^K - V$ 个码空缺。
2.2 Affine-recoded table-free variant¶
为了检验"模型表现是否依赖于 canonical 二进制排序",作者引入第二个变体——一个完全无表(table-free)的实现:
$$ \tilde{c}(t) = A\,c(t) \oplus b, \qquad A \in GL(K, 2),\; b \in \{0,1\}^K \tag{3} $$
其中 $\oplus$ 是模 2 加法,$A$ 是 $\mathbb{F}_2$ 上的可逆 $K \times K$ 矩阵。这是一种严格强于简单坐标置换的变换:稠密可逆 $A$ 把多个输入比特混合进每个输出比特,同时保持可逆性。当 $A = I$ 且 $b = 0$ 时退化为 canonical code。
关键性质:在 $V = 2^K$ 时,仿射重编码仍是 $\{0,1\}^K$ 上的双射,因而 codebook 仍然完整覆盖整个 hypercube;它改变了 token 到 code 的对应关系,但没有改变 codebook 的统计平衡。Appendix D 中的 Corollary 1 证明:在每一位上各自有 $2^{K-1}$ 个 token 取 0 和 $2^{K-1}$ 个 token 取 1;在任意两位上,四种 pattern $(0,0), (0,1), (1,0), (1,1)$ 各出现 $2^{K-2}$ 次。换言之,不存在 trivial 全局频率偏置。
2.3 Zero-parameter tiled lift¶
$K$ 维二元码必须被提升到模型宽度 $d_{\text{model}}$。作者选择 $d_{\text{model}}$ 可被 $K$ 整除,记 $d_{\text{model}} = sK$,然后用vertical-tile identity:
$$ R = \begin{bmatrix} I_K \\ I_K \\ \vdots \\ I_K \end{bmatrix} \in \{0,1\}^{d_{\text{model}} \times K} \tag{4} $$
也就是说 $x(t) = [\tilde{c}(t); \tilde{c}(t); \dots; \tilde{c}(t)]^\top$,把 $K$ 维码沿宽度方向重复 $s$ 遍。在主实验中 $V = 65{,}536$、$K = 16$、$d_{\text{model}} = 1024$,因此每个 token 的输入向量是一个16 维二元码沿宽度铺 64 次得到的 1024 维向量。
该 lift 满足:
- 零可训练参数;
- 列满秩 $\mathrm{rank}(R) = K$,保证 $x(\cdot)$ 仍是单射;
- 每一段连续 $K$ 维 hidden block 都保留完整的 token 码——这对自注意力的多头机制特别友好(每个 head 都看见全部 16 比特)。
2.4 三种 input parameterization 总览¶
最终的对照实验设了三种 input head,其他一切(tokenizer、词表、深度、宽度、训练 recipe)完全相同:
- Learned input table(baseline):标准可训练 $E_{\text{in}} \in \mathbb{R}^{V \times d_{\text{model}}}$,67.1M 可训练参数。
- Fixed minimal binary code:$x(t) = R\,\mathrm{bin}_{16}(t)$,frozen lookup 或 on-the-fly 都可;0 可训练参数。
- Affine-recoded table-free:$x(t) = R(A\,\mathrm{bin}_{16}(t) \oplus b)$;0 可训练参数,连存表都不需要。
由于 $d_{\text{model}} / n_{\text{head}} = 1024 / 32 = 32 = 2K$,每个注意力 head 在 tiled lift 下接收两份完整 16-bit 码。
2.5 Frozen lookup ≡ Table-free(重要)¶
作者特别提醒:canonical fixed-code 既可实现为frozen lookup(precompute $E_{\mathrm{fix}} \in \mathbb{R}^{V \times d}$,存表但禁止更新),也可实现为table-free runtime computation(位运算从 token ID 算 code)。两者函数等价:相同的 $(c, A, b, R)$ 下,每个 token 得到完全相同的 $x(t)$。因此 canonical fixed-code 应被解读为一个 input parameterization 实验,而不是"需要存表"的证据;affine-recoded 变体则直接以 table-free 形式实现,输入端没有任何形式的 lookup table。
2.6 理论结论(Appendix D 摘录)¶
- Proposition 1(最小码长):从 $V$ 个 token 单射到 $\{0,1\}^K$ 需要 $K \ge \lceil \log_2 V \rceil$。证明:$\{0,1\}^K$ 中只有 $2^K$ 个不同向量。
- Proposition 2(仿射+满秩 lift 无碰撞):若 $c$ 单射、$A \in GL(K,2)$、$\mathrm{rank}(R) = K$,则 $x(t) = R(Ac(t) \oplus b)$ 在 $\mathcal{V} \to \mathbb{R}^d$ 上单射。
- Corollary 1(完整覆盖 hypercube):当 $V = 2^K$ 时,affine-recoded 码集合恰好等于完整 hypercube $\{0,1\}^K$。
- Proposition 3(输入有效秩):$\dim(\mathrm{span}\{x(t) : t \in \mathcal{V}\}) \le \mathrm{rank}(R) \le K$;在 $V = 2^K$ 且 $\mathrm{rank}(R) = K$ 时取等。
最后一条 Proposition 在概念上极其关键:1024 维 Transformer 在第一个可训练层之前只接收"有效秩 16"的输入。换言之,模型必须在 Transformer 内部从一个 16 维 affine 子空间里重建出所有连续语义结构,输入端只提供"地址"。
三、实验设置¶
3.1 Architecture¶
所有 base 运行都是 32-layer decoder-only Transformer:
- $d_{\text{model}} = 1024$,$n_{\text{head}} = 32$(head dim = 32 = 2K)
- Context length = 1024
- 旋转位置编码 (RoPE)
- GELU 激活
- Untied trainable output projection(输出 head 不与输入共享,且始终可训练)
- 词表 $V = 65{,}536$(深思熟虑地选 2 的 16 次方)
3.2 Data & training¶
- 数据混合:FineWeb-Edu (0.8) + Cosmopedia (0.2)
- Tokenizer:固定 65,536-词 Unicode-兼容 BPE,跨所有变体复用
- Tokens:learned-input 与 fixed-code 各跑 17.093B tokens / seed,affine-recoded 因调度限制跑 16.276B tokens(略短)
- Optimizer:AdamW,weight decay 0.1,gradient clip 1.0,FP32 精度
- LR schedule:cosine decay + warmup
- Hardware:base 用 2 × H100 80GB,吞吐约 19.8k tokens/s
详细超参(Table 2 / 3):
| Run | Precision | Optimizer | LR | Warmup | WD | Grad clip |
|---|---|---|---|---|---|---|
| Base pretraining | FP32 | AdamW | $4.0\times10^{-4}$ | 150 | 0.1 | 1.0 |
| SFT continuation | FP32 | AdamW | $2.0\times10^{-5}$ | 100 | 0.01 | 1.0 |
| Run | GPUs | Global micro-batch | Grad accum | Effective tokens/update |
|---|---|---|---|---|
| Base pretraining | 2 × H100 80GB | 16 | 200 | 3.28 M |
| SFT continuation | 1 × H100 80GB | 6 | 100 | 0.61 M |
3.3 Seeds & evaluation protocol¶
每个变体跑 3 个独立随机种子(控制初始化和数据 order),报告 across-seeds 算术平均和相对种子区间 $(\max - \min) / \text{mean}$。验证 loss 在 document-level held-out split 上计算;下游 logit-based 评测对每个候选答案取 conditional log-likelihood,选最大者。作者明确不假设正态分布、不把种子区间当作置信区间——只是当作"种子噪声幅度"的描述。
四、主要实验结果¶
4.1 Main result:full-scale 32 层对比(Table 1)¶
| Model variant | Tokens/seed | Val loss | Val PPL (mean) | Rel. seed range |
|---|---|---|---|---|
| Learned input table | 17.1 B | 0.893 | 2.44 | 4.8% |
| Fixed minimal binary code | 17.1 B | 0.859 | 2.36 | 4.6% |
| Affine-recoded minimal code (table-free) | 16.3 B | 0.871 | 2.39 | 4.5% |
分析:
-
Non-degradation:在严格匹配的 tokenizer / 架构 / 训练 recipe 下,把 67.1M 可训练输入参数完全去掉,验证困惑度并没有变差。fixed-code 的均值 PPL 反而更低(2.36 vs 2.44,相对下降 3.3%)。
-
种子噪声足以覆盖差异:观察到 4.8% 的种子相对区间,恰好覆盖 2.36 → 2.44 的差距。作者因此并不主张统计显著的优越性,而是把结果解读为"trainable input table is not necessary"的充分性证据——这是一种比"我们更好"更克制、更严格的科学表述。
-
Table-free 仍然有效:affine-recoded 在略短的训练(16.3B vs 17.1B tokens)下仍达到 2.39,说明这不是依赖于 canonical token-ID 排序的偶然——把整个 codebook 经 affine recoding 打散后,模型依然能 train 出几乎相同的语言模型。
4.2 Robustness to code assignment(§5.2)¶
affine-recoded 实验等价于"换一个完全不同但仍是双射的 codebook 排布"。如果 canonical code 的成功是因为 token-ID 顺序里恰好藏了某种可利用结构,那么仿射重编码应该会显著破坏性能。但作者没有观测到 collapse。这给出一个强结论:关键不是某种 privileged input geometry 或 token-ID ordering,而是有一个稳定的、单射的、collision-free 的 token-identity 接口。
4.3 Matched-depth ablations(Appendix B / Table 4)¶
为了排除"深度效应",作者补充了 9 层和 16 层的对比:
| Depth | Learned input Val PPL | Fixed minimal code Val PPL | Relative change |
|---|---|---|---|
| 9 layers | 3.77 | 3.76 | −0.3% |
| 16 layers | 2.42 | 2.38 | −1.7% |
| 32 layers | 2.44 | 2.36 | −3.3% |
分析:non-degradation 在三个深度上都成立;fixed-code 的相对优势随深度递增。作者没有把这张表当作 depth scaling law——超参没有对每个深度独立调;它只是 sanity check,确认主结论不是 32 层的偶然。但这条曲线本身提示一个值得追问的现象:模型越深,固定输入接口反而越能利用 Transformer stack 内部的表征能力。
4.4 SFT continuations(Appendix C / Table 5)¶
虽然不是主声明的支撑实验,但作者从三个 base checkpoint 各跑了一个 SFT 续训,使用相同的监督混合、LR schedule 和评测协议:
| Model variant | Val PPL | ARC-C | HellaSwag | BoolQ | SQuAD gold PPL |
|---|---|---|---|---|---|
| Learned input table + SFT | 2.42 | 29.77 | 29.40 | 64.06 | 3.48 |
| Fixed minimal binary code + SFT | 2.39 | 28.09 | 26.70 | 61.33 | 3.33 |
| Affine-recoded minimal code + SFT | 2.44 | 31.44 | 26.80 | 64.06 | 3.65 |
分析:
- 没有一边倒:三种 input 在不同下游任务上各有胜负,画面是 task-dependent 而非 uniformly dominant;
- fixed-code 在 Val PPL 和 SQuAD gold PPL 上夺冠,affine-recoded 在 ARC-C 上夺冠(窄差距),learned input 在 HellaSwag 上仍是最强;
- 作者明确把 SFT 结果定位为次要证据:SFT 改变了数据分布和目标函数,引入了主比较中没有的混淆因素;主声明完全靠 Table 1 的 base pretraining 比较来建立。
这种 explicit 的实验分层(哪些表是"主证据"、哪些是"附录中的 sanity check")在 LLM 论文中是比较少见的克制写法。
五、消融与分析¶
5.1 为什么这个非退化结果是有意义的¶
作者在 Discussion 一节做了哲学层面的反思:实验的意义不在于证明 fixed binary code 是最优的输入接口,而在于它是一个针对必要性主张的构造性反例(constructive counterexample to necessity)。
具体地,作者把现代 LLM 中的"input embedding table"区分为两个常被混为一谈的角色:
- 角色 A(载体):作为 token identity 的稳定 address;
- 角色 B(语义初始化器):作为一个为下游 attention 提供初始几何先验的可训练对象。
绝大多数嵌入压缩 / 共享工作(ALBERT, Adaptive Input, DeFINE, LightRNN, Hash Embedding, Compositional Code Learning)都仅是压缩角色 B 的容量,仍然保留了"输入端必须有一个可训练的语义对象"的隐含假设。本文则证明角色 B 本身就不是必要的——只要角色 A 被一个稳定、单射、collision-free 的离散码满足即可。
5.2 Input rank 是否会成为瓶颈?¶
Proposition 3 表明,在所有 token 经过第一个可训练层之前,输入向量都被困在一个 16 维 affine 子空间中(虽然在名义上是 1024 维)。直觉上这应该是个严重的信息瓶颈,但实验显示模型并未崩溃。这意味着 Transformer 的第一层 MLP(实际上是第一组 attention + FFN)本身就承担了"把 16 维离散 identity 投影到富含语义结构的连续表征"的角色。
这与作者在 Discussion 中反复强调的另一观点呼应:
A token representation at the input need not be a semantic vector; it may simply be a stable address. (输入端的 token 表征不一定是一个语义向量,它只需要是一个稳定的地址。)
这一观点显然对长期被 word2vec / GloVe 训练出来的"input embedding = semantic vector"的范式提出挑战——尤其考虑到 modern LLM 输入端面对的大量是 weak / fragmented 的 lexical 单元(大小写、code fragment、字符级片段),其"semantic vector"本身就难以良好定义。
5.3 Limitations(作者自述)¶
作者列了几条诚实的局限:
- 单一 tokenizer 家族 + 单一主词表大小:方法本身可扩展到任意 $V$(通过 $K = \lceil \log_2 V \rceil$),但跨 tokenizer / byte-level / 多语料的 broader experiment 仍待补做;
- 种子区间未消除:3 seeds 不足以宣称统计显著的优越性,因此作者只主张 non-degradation,不主张 strict superiority;
- 共享 recipe,未独立调超参:学习率、warmup 等都没有为每种 input parameterization 单独 sweep,更大范围的 LR sweep 可能改变小的 PPL 边际差异;
- 未做 multilingual / byte-level / character-level 等极端 vocabulary 设定下的测试。
作者特别强调:"Our conclusion therefore relies on non-degradation under a shared recipe, rather than on optimality of the fixed-code parameterization."
六、核心贡献总结¶
- 概念贡献:明确分离 token identity(address)与 input semantic geometry(embedding)两个角色,论证只有前者是必要的;
- 方法贡献:提出"最小二元码 + zero-parameter tiled lift"作为一种零可训练参数的输入接口;以及更激进的 affine-recoded table-free 变体;
- 理论结果:给出最小码长、affine + 满秩 lift 无碰撞、完整 hypercube 覆盖、effective input rank 等命题的形式化证明;
- 实证结果:在 32 层 decoder-only Transformer、17B tokens 训练规模下,证明移除 67.1M 可训练输入参数不会损害 held-out 语言建模质量;
- 方法论贡献:示范了一种"narrow but rigorous"的写作姿态——用 sufficiency statement 与种子区间分析约束自己的 claim,不夸大 marginal 改进。
七、讨论与局限性¶
7.1 与现有工作的根本差异¶
本文与"input embedding 优化"文献的关系是根本不同而非渐进改进:
- ALBERT / Adaptive Input / DeFINE:仍然学习一个连续可训练的输入对象,只是结构上更紧凑;本文完全移除输入端的可训练参数;
- LightRNN / Hash Embedding / Compositional Code Learning:share or hash 学习到的 vector;本文不学任何 input vector;
- Character / Byte-level (ByT5, CANINE, Charformer, MEGABYTE):改变 tokenization 粒度,但仍然在更细粒度上学习 input front-end;本文保持 tokenizer 不变,只改 ID 表达方式。
唯一接近的精神先驱是"random fixed feature map"传统:用一个非训练的输入变换作为下游学习的前置。但本文的码不是连续输入的随机投影,而是离散 token identity 的精确最小注入——它的目的是把"identity 注入"与"continuous representation learning"做严格的关注点分离。
7.2 工业落地价值¶
参数减少 67.1M 听起来不少,但放到现代 LLM 尺度(数十亿到上千亿参数)只是个位数百分比,本身未必是首要的工业卖点。更有价值的也许是几个间接好处:
- Optimizer state 节省:AdamW 的 m, v moments 是参数量的 2 倍,去掉 67.1M 输入参数意味着省下 ~134M 的 optimizer state(FP32 下约 0.5GB),这对 large-scale pretraining 的 memory footprint 是真实可见的好处;
- Embedding 表频繁 cache miss / NUMA 跨节点访问问题消失(这一点作者没强调,但对 inference engine 是隐含好处);
- Tokenizer hot-swap:因为 input encoding 是 deterministic 的,理论上不同 tokenizer 训出来的模型在更换 token-ID 映射时不需要重训 input 表(虽然这跟实际 tokenizer 变更的复杂性还有距离)。
但作者没有报告任何上线 A/B 数据,单作者 + 独立邮箱 + 16-bit vocabulary 的实验规模决定了它仍是一篇 conceptual / scientific 论文,而非工程论文。
7.3 关键开放问题¶
作者自己在 Discussion 末段指出:fixed-code 微弱优势的机制仍未澄清。可能的解释包括:
- 隐式正则化:移除一个大的可训练 input block 减小了模型容量,降低了拟合训练分布特异噪声的能力;
- 输入接口参数漂移更小:固定接口在训练中不会随 optimizer 漂移,可能让下游 attention 层更早收敛到稳定的解;
- 更好的 identity / representation 解耦:模型被迫在 Transformer stack 内部完成所有连续表征学习,可能导致一种更"clean"的层分工。
确认是哪一种机制需要进一步分析,作者把这列为 future work。
7.4 方法论可扩展性的思考¶
按 reading-criteria.md 中 "参数量 scaling 时表征能力与序列建模能力能否一起增长" 的视角看:
- 表征能力:fixed binary code 的容量随 $K = \log_2 V$ 增长。理论上即便 $V$ 增长到 $10^6$,$K$ 也才 20 比特——这恰恰是作者的 claim:"identity 不需要更大的输入容量";
- 序列建模能力:Transformer stack 仍然按标准方式 scale,没有被固定输入接口限制;
- 两个组件没有人为耦合:不像 SIF / IAT 那种"先压缩再建模"的两阶段范式,没有 codebook 固化导致下游表征空间被冻结的隐患——这里"固化"的只有 identity 注入,而下游所有 representation learning 都是可训练的 Transformer 在做。
这是一个没有架构瓶颈的方法路线。但同时也要看到,论文的单作者 + 单一规模 + 单一 tokenizer 的实验体量决定了它的 scaling law 行为还需要更大规模的工作来验证。
7.5 总评¶
这是一篇典型的"narrow but sharp"风格的论文:
- 不追求 leaderboard SOTA,而是攻击一个被长期默认却很少被实证检验的架构假设;
- 实验只够支持一个充分性 / 非必要性陈述,作者也明确把自己的 claim 限制在这个范围内;
- 形式化推理(Appendix D 的 4 个命题)干净直接,提供了"为什么应该 work"的 mathematical underpinning;
- 写作风格异常克制,明确区分主证据和次要证据,明确不主张统计显著的优越性。
它的价值不在于直接提供一个 production-ready 改进,而在于重新打开了"输入端是否必须是可训练连续向量"这一被关闭已久的设计空间。在当下 LLM 架构创新越来越聚焦于 attention / MoE / context length 的氛围中,这种"回到最基本接口设计"的工作是有相当独特价值的。
可以预见的 follow-up 方向:
- 把 binary code 接口扩展到 byte-level / character-level / multilingual 设定,看是否仍然 non-degradation;
- 在更大模型(>10B params)和更长训练(>500B tokens)下验证 scaling 行为;
- 把 input embedding 的隐式正则化机制做受控分析(例如显式给 learned-input baseline 加 weight decay 等是否能逼近 fixed-code 的表现);
- 研究 output projection 端是否也能用类似的 fixed-code 思路(作者明确把输出端排除在本文 claim 之外,这本身就提示了一个对应的未解问题)。