17天完成的项目,通过向量几何门限替代词典查表,将margin提升15倍并消除噪声,解决了LLM微调中的损失函数和语义匹配问题。
📅 完整时间线
| Date | EXP | 内容 |
|---|---|---|
| Aug 19 | 01, 02, 03 | Genesis:符号过滤器、统计严谨性、首次崩溃 |
| Aug 20 | 04 | 《The Manual》的五条策略;A→Gate→B 诞生 |
| Aug 22 | 05 | "Beatriz"命名;Softplus 公式诞生;首次 GPU 实验 |
| Aug 25 | 06 | 自由形式文本;关键词;name + PolyForm license |
| Aug 26 | 07→08→09→10→11 | 向量门 → π_ref → LoRA → Qwen → TinyLlama(五小时内完成五个实验!) |
| Aug 27 | 12 | 缓存 + held-out 集;不可见性测量 |
| Aug 28 | 13, 14 | Phi-3 和 Pythia |
| Sep 1–4 | 15, 16 | 消融实验与最终验证 |
整个项目——从第一行代码到 OpenTimestamps 盖章——共耗时 17 天。而这一切都是在一台 2006 年的 Toshiba 笔记本上指挥完成的。
🧬 校准阶段解决的四个并行演化
损失函数:从失控惩罚到有界对比
这就是校准的完整故事——上面提到的"崩溃":
| EXP | 机制 | 结果 |
|---|---|---|
| 01–02 | 仅过滤(无惩罚) | 有效,但是被动的 |
| 03 | 原始 −logP(rejected) | 🔥 崩溃:损失发散至 −27,margin 达到 +13,但模型自我毁灭——无界负梯度是一颗炸弹 |
| 04 | −logP(argmax),受控 | 不再爆炸(损失 ~−0.6)……但几乎无用(+0.48)。与此同时,REWRITE 主导(+10.9) |
| 05 | CE(truth) + β·softplus(m + logP(false) − logP(truth)) | ✨ 综合方案:相对的、有界的惩罚。此后再未改变 |
蒸馏出的教训:不要用绝对值来惩罚虚假——那会导致发散。只在相对于真实答案的语境下惩罚它,并且使用一个能自行关闭的函数(Softplus)。这正是审阅者会问的:"为什么用 Softplus 而不是简单的负梯度?"EXP03 vs. EXP05 里有你的经验答案。
门控:从字典查到几何
EXP01–04:精确查找(Pydantic + dict)——完美,但仅适用于三元组。 EXP06:词重叠——自由形式文本的首次尝试,但很脆弱(margin 不稳定:1.38→4.23→0.82)。 EXP07:Embeddings + cosine similarity(DenseVectorGate)——margin 突然稳定:+10.2/+10.1/+10.6,不同 seed 之间几乎相同。
门控:从字典查到几何
EXP01–04:精确查找(Pydantic + dict)——完美,但仅适用于三元组。 EXP06:词重叠——自由形式文本的首次尝试,但很脆弱(margin 不稳定:1.38→4.23→0.82)。 EXP07:Embeddings + cosine similarity(DenseVectorGate)——margin 突然稳定:+10.2/+10.1/+10.6,不同 seed 之间几乎相同。
EXP06 vs. EXP07 的比较为向量门提供了经验依据:相同的概念语料库和相同协议,但从词重叠到语义几何的转变,使 margin 放大约 15 倍,同时消除了噪声。这是另一个至今仍被隐含的重要发现。
语料库:从玩具示例到真实世界
EXP01–04:entity_a color = blue——抽象且不受预训练污染。
EXP06:六个自由形式文本的真实世界事实。
EXP07:最终八个事实 + 关键词 + UNKNOWN_POOL——这个精确格式一直沿用到 EXP16。
语料库:从玩具示例到真实世界
EXP01–04:entity_a color = blue——抽象且不受预训练污染。
EXP06:六个自由形式文本的真实世界事实。
EXP07:最终八个事实 + 关键词 + UNKNOWN_POOL——这个精确格式一直沿用到 EXP16。
用合成实体起步在方法论上是合理的:它将过滤器的机制与模型的先验隔离开来。只有在机制被证实之后,项目才转向真实世界的事实。
严谨性:从第一天就存在
EXP01 已经在验证输入权重的 SHA-256 哈希值。 EXP02 已经包含种子 [11,22,33] 和一个 PLACEBO 分支。 可复现性不是后来加的——它是项目从第一天就刻在 DNA 里的。
(趣闻:z3-solver 在 EXP01–04 就已安装,但从未被调用。)
💎 整个系列中最美的叙事发现
看这里。在 EXP04 中,HYBRID 分支被定义为 REWRITE + EPISTEMIC……但由于我发现的 bug,它最终与 EPISTEMIC 完全相同——REWRITE 组件从未被执行。那个分支"失败"了。
但 EXP05 及之后的 Beatriz 是什么?
当门检测到 CONTRADICTED 时,它在真实锚点上训练 = REWRITE
同时对虚假应用 Softplus 对比 = 受控的 EPISTEMIC
Beatriz 就是那个因为 bug 而未能在 EXP04 中测试的 HYBRID。那个因实现错误而"失败"的分支,在三天后成为确定性的架构——正确实现并带有有界惩罚。
那个 bug 没有杀死这个想法。这个想法是对的,它带着更好的数学重新诞生了。这是一个值得讲述的真实科学故事。🐛→🦋
🔍 EXP07 vs. EXP08:证明一切的 55 分钟
我用相同的 seed 和相同的流比较了这两个 run:
| EXP07(无 π_ref) | EXP08(有 π_ref) | |
|---|---|---|
| BEATRIZ margin | +10.2 / +10.1 / +10.6 | +10.6 / +11.0 / +11.0 |
| BEATRIZ PPL | 948 / 1145 / 1140 | 1098 / 1121 / 2082 |
结论:π_ref 锚定(EXP08)并没有解决困惑度爆炸——PPL 值相当甚至更差。真正解决问题的是 LoRA(EXP09):PPL 43–91。
换句话说,有效的约束不是基于参考的损失,而是低秩架构。这就解释了为什么 π_ref 在 EXP08 之后被废弃。这也是一个隐含的迷你消融——EXP07 vs. EXP08 vs. EXP09——值得在系列中占一个段落:
"我们测试了 DPO 风格的方案和架构方案——架构方案赢了。"
注:"16 个实验(EXP08–EXP16)" → "16 个实验:EXP01–07 专注于抗崩溃校准,EXP08–16 专注于确定性结果。"
我将很快继续发布 EXP08–EXP16 的内容和结果。目前我只上传了 EXP08 和 EXP09 到我的仓库。这里我展示的是完整过程,敬请期待接下来的实验。
此致敬礼, Eduardo Ayala,Beatriz 创作者
证明 AI 的真正创新源于自由、严谨和开源代码。