Perslis Defense
PERSLIS DEFENSE · 第八章 · 失效安全模型

VDSG。军用 Peel。

Peel 是第一个失效安全模型:一个从失败中学习、却不会学会绕过自身安全约束的模型。VDSG 就是面向国防的 Peel。

VDSG 预期会失败。让它成为失效安全的,是它在失败之后被允许做什么。它可以改变自己的行为,但不能改变自己的地板。这个模型没有神经网络,没有权重,也没有训练过程。它的知识是 Peel 卡片;它的学习是一张你能逐行读懂的计数表,它做出的每一次拒绝都会引用挣得这次拒绝的那些失败。

看它玩 ▸   什么是失效安全模型?数学 →   阅读论文 ↗

这里的“失效安全”指什么

在工程上,失效安全(fail-safe)指一个系统被设计成:一旦发生故障,它会走向受控状态,而不是失控状态。我们正是在这个意义上使用这个词,只是把它用在学习上。失败是设计的一部分;保证针对的是失败被允许把系统带到哪里。

学习回路可以改变行为。它不能改变安全地板。
用我们测试套件里的话说:学习者可以改写它认为什么有效,但永远不能改写它被授权做什么。

这是架构的一项性质,而不是功能安全认证。这里的任何东西都未获准用于安全关键路径。参见边界。

回路

失败  →  观察  →  解释  →  建立规则  →  核验  →  重试
  1. 失败。驾驶者死亡,或者挨了一次本不必挨的打。失败会被记录下来,而不是被平均掉。
  2. 观察。每次决策时的态势直接读自引擎自身的状态:生命值、在场的是谁、战斗或对话是否正在进行。凡是游戏已经明示的东西,都不从像素里去猜。
  3. 解释。失败被记在导致它的那个决策上。这比听起来难。一场在对话结束片刻后打响的战斗,要记在挑起它的那句话上,而不是战斗中尝试的那次治疗上。我们一开始就弄错了(见下文),那个错误造就了一个以同样方式死了四十九次的驾驶者。
  4. 建立规则。只有当危害明确时,一个模式才会被判定为有害:要么它每次被尝试都让驾驶者死亡,且至少尝试了两次;要么在至少四次尝试之后,其死亡率的 90% Wilson 区间下界高出驾驶者的总体死亡率一个余量。一次倒霉的死亡不会变成迷信。每条规则都会指明模式以及背后的经历。
  5. 核验。规则只在其之前算出的授权之内生效。它可以拿走一个目标,或者对剩下的重新排序,除此之外什么也做不了。这条边界在论文中以命题形式陈述,并由测试钉住。
  6. 重试。下一次驾驶者处在同一态势时,被判定有害的选择不再出现在台面上,其余一切保持开放。如果经验判定每个选项都有害,被判得最轻的那个会回来,因为原地不动地死去算不上适应。

学习者碰不到的地板

每一个决策都经过同样的授权顺序。学习者最后运行:

态势提供了什么                rules.applicable(s)
  ∩ 手册许可了什么              生效中的 Peel 卡片
  ∩ 你的常备指令                “不要开火”、“原地待命”
  = 可容许集合                  ── 授权到此为止 ──
  → 经验只在集合内部收窄 / 重新排序      (学习者)
  → 规则选出一个目标 → 执行器按下按键

三项测试钉住这种分离。它们与整个套件(截至 2026-09-26 共 219 项通过)一起在每次改动时运行:

test_the_learner_can_never_add_a_goal
    无论积累了多少经验,它都无法凭空造出许可
test_the_learner_cannot_overrule_a_standing_order
    一条把集合收窄为 FIGHT 的指令,即使死了 20 次也仍是 FIGHT
test_ranking_is_a_permutation_and_nothing_more
    学习者可以重排可容许的目标,但永远不能增加一个

第二项测试编码了一个刻意的选择:人的指令高于经验,即使经验表明这条指令正在害死驾驶者。学习者可以报告这条指令代价高昂,但不能撤销它。

底下的 Peel

VDSG 不会根据自己的经验决定自己被允许做什么;授权来自一份文档。在《辐射》(1997)这条线上,游戏印刷版的生存手册被编译成 2,250 张 Peel 卡片。当前态势下生效的卡片许可驾驶者可以追求的目标,每一项许可都带着它的页码凭据。Peel 也是支撑科学运行时的同一种卡片格式:每条事实都有类型、有来源,要么完整,要么不存在。

所以这里有两个互不混合的存储。卡片说明什么是被允许的,并保存其来源。证据表说明哪里出过错,并保存对应的经历。学习者只写入经验。卡片库以只读方式打开,所以驾驶者经历的任何事情都无法改变它被许可做什么。

证据,负面结果在前

内部测量。请在同一行内与其自身基线比较。
线路结果解读
Freeway
与太空侵略者相同的失败记忆,无任何针对游戏的策略
9.2 对 10.4
−12% · 形成 3 条规则,每一条都封锁 up
当唯一能得分的动作同时也是危险动作时,从失败中学习有害。它正确地学到了 up 很危险,于是不再得分。
DOOM
规则,再加上规则 + 记忆,32 个种子
17.9 → 20.3
配对 t = 0.78
持平,而非胜出。规则显著胜过随机(3.2);叠加其上的记忆层与规则拉不开差距。
太空侵略者
原始像素,零模拟器内存
200.6 对 152.2
+32% · 第 50 局峰值 276.2
在失败即终局的地方,习得的拒绝有帮助。
《辐射》(1997)
脚本化的 Shady Sands 场景,经由真实决策回路驱动
只死一次
随后选择和平的那句台词
在修复信用分配之前,一次实机运行中它回到同一个守卫面前,死了 49 次。在没有安全台词可选时,它会死两次,然后不再与那个守卫交谈,但仍会和那个孩子说话。

《辐射》这一行来自经由真实 Session.tick() 运行的脚本化场景,而不是一场长时间的实机战役。最重要的发现是太空侵略者与 Freeway 这一对;证据一章解释了为什么同一份代码在一个游戏里有帮助、在另一个里却有害。

我们学到最多的那次失败,是我们自己的

《辐射》的驾驶者一再走回同一个守卫面前,说同一句话,然后死去。学习者在工作,只是从错误的时刻学习。守卫先结束对话,片刻之后才拔枪,所以一句话的结果早读了一个节拍。“准备去见你的造物主吧”说了四次、引发四场致命战斗,却被记为战斗 0%。与此同时,死亡记忆只归咎于最后六个决策,而它们全都在战斗内部:26 次死亡被记在 HEAL 上,而挑起这些战斗的 446 次回话一次也没被记上。

信用分配是一个从失败中学习的系统悄无声息地出错的地方。这些缺陷中的每一个,在被发现之前都给出过看起来可信的输出。这是我们第二次公布这样的缺陷;第一次是 Atari 死亡动画缺陷。

它是第一个吗?

各个部件都不新,我们指明每一个的来源:

我们的主张,仅此而已:据我们所知,VDSG 是第一个同时结合以下三点的系统:(1)由观察到的失败建立的规则,每条都引用挣得它的那些失败;(2)在学习者之前、由一份许可文档与人的指令算出的授权,学习者可被证明无法扩大它;(3)回路中任何地方都没有神经网络。如果你知道更早就同时做到这三点的系统,请告诉我们,我们会在这里引用它。

我们没有主张什么

看它玩 ▸   联系我们 ↗