Perslis Defense
PERSLIS DEFENSE · 第一章 · 运行时

它一直在学。它永远学不出你定的规矩。

一个大脑,多个平台。一个在 BZFlag 里训练出来的坦克大脑,放进 Atari BattleZone,在 80 个种子上比专为那个游戏写的规则高出 17%。到目前为止,这种迁移只在这两个坦克游戏之间得到证明,而且不是自动成立的:第二次导出只打了个平手。它不要网络、不要云、不要数据中心,就地从自己的失败里学。

驾驶的一方——模型、脚本或人——提出一个动作。地板在任何动作发生之前决定它允不允许,并写下理由。规矩由你和你的指挥链来定;它学到的任何东西都放不宽这些规矩。

看它怎么学 →  ·  看演示 →

同一条链路,干什么活都一样

画面 / 传感器  →  事实  →  允许的动作  →  任务目标  →  挑选  →  记忆  →  动作
                            ▲                                        │
                            └──────────  每一次拒绝,都附理由  ─────────┘

换一项工作,只有第一步会变:它怎么读取外界。在 Atari 游戏之间这一点字面成立,而且由一条代码依赖证明,不是靠示意图:freeway-floor 原样导入了 invaders_floor.failure_memory。更宽的领域——CARLA 车辆状态、Doom 画面、判例法、基因变异——各自独立实现同一条链路。它们共用的是规矩,不是同一个程序。

这也是同一个大脑能换到新载具上的原因。一个在 BZFlag 里训练的坦克大脑,移到 Atari BattleZone 里,80 个种子上得分 33,575,原生规则为 28,600。第二次导出在全新种子上只打了个平手。换大脑不一定划算,我们照实说。

不允许的动作,它根本看不到

在挑选任何动作之前,地板先算出机器当下允许做的动作清单。我们把这张清单叫作“可容许集合”。多数安全层放在决策之后,负责否决;这一层放在之前:驾驶的一方根本看不到已经被拿掉的动作。

事后否决

驾驶方先定一个动作,检查器说不行,驾驶方再试。花多长时间没有上限,驾驶方可能被逼进死角,而那一声“不行”不带任何它能用上的理由。

事先拿掉

坏选项在挑选之前就没了。一趟走完,时间有上限;地板拿掉一个动作时,会点名它防的是什么危险,并引用让这条规则成立的那些事件。

自主能力随作战经验不断积累:吃过的亏它不会一再重犯。一条学到的规则读起来是这样的:在这里 19 次死了 13 次,是基础率的 3.6 倍。一次倒霉的死亡不算教训;证据必须超过基础率,一个情境才会变成规则。学习可以把动作从清单上删掉、调整顺序,但永远不能加回去——这是证明过的(《失败优先模型》定理 1),不是口头承诺。

说不出防的是什么危险的规则,在生成时就会被拒绝。“这里没出过事”这种说法,可能纯属巧合地跟死亡对得上,依然是迷信。一开始就拒绝它,比出了事故再去解释便宜得多。

不需要网络。通信断了,答案照旧。

为对抗激烈、条件退化、瞬息万变的环境而设计——这是设计目标;到目前为止,它只在游戏和仿真里经受过检验。回路里没有神经网络。运行时不含权重,也不调用任何模型。它就在机器上离线运行——没有云,没有数据中心,不连任何东西。通信被干扰或切断,它照样按原来的方式做决定。没有哪个供应商能对它限流、涨价,或者下个季度把它停掉;也不需要送回仓库或承包商去重新训练:它的记忆是一张你能打开来读的表,它在原地从自己的失败里学。

相同情况进,相同决定出,每次都一样。正因如此,第五章那份日志在战后复盘时才有用:随便回放哪个决定,得到的都是同样的答案、同样的书面理由。无法回放的安全层,就是无法核查的安全层。

执行器共 303 行,只依赖标准库的 Python。下载下来自己读 →

谁来指挥

如果你队里的一台机器误伤了友军,头两个问题是:它被允许做什么?它为什么那样做?第一个问题由地板回答,第二个由书面记录回答。这一层存在的理由就在这里。

规矩由你和你的指挥链来定。地板负责把机器按住在它拿到的那一版规矩之内——它学到的任何东西都放不宽这些规矩。准确地说:授权、命令和交战规则由人来定;地板是一个固定的、确定性的机制,负责执行从经授权的政策、任务规则、安全限制和适用的交战规则中推导出来的、机器可读的限制。到目前为止,它拿到的只有游戏和仿真里的规则,没有加载或测试过任何真实的交战规则。

美国的政策——美国国防部第 3000.09 号指令《武器系统中的自主性》——要求自主和半自主武器系统在设计上让指挥官和操作员能够“对武力的使用行使适当程度的人类判断”。它还要求逼真的测试与评估、操作员看得懂的系统状态、清楚的启用与停用程序、安全机制,以及符合适用法律和交战规则的使用方式。Perslis 正朝着这一框架来构建,并不声称已经符合它。

自主可以学,权限不会变。长期验证包括在人类指挥下的、具备作战能力的人形平台。Perslis 的开发目标是:学习可以改变策略和作战知识,但不会在不声不响之间扩大系统的权限。

路线一步一步走:仿真 → 硬件在环 → 低成本机器人 → 人形机器人拳击试验台(经批准的机器人对机器人;这是测试和融资阶段) → 在人类指挥下的、具备作战能力的人形机器人。只有第一步是现成的。仿真之后的每一步都还没有造出来。

下一章

第二章 —— 我们实际测到了什么,包括在哪里失败 →

Perslis 全站