有一句话最近一直在我脑子里转:

Policy is a promise. Architecture is a guarantee.

这句话出自一篇关于 AI 助手广告化的文章。作者在讨论一个正在发生的事情——OpenAI 开始在 ChatGPT 里投放广告,同时所有科技公司都在制造 always-on 的设备,带着摄像头和麦克风,设计成全天候感知你生活的形态。当商业模式是广告,而设备能听到你家厨房里每一句话的时候,"我们不会把你的数据卖给广告商"这句话的重量,突然变得很轻。

政策可以修改。Google 扫描 Gmail 内容用于广告定向投放,持续了十三年,然后在 2017 年悄悄停了。亚马逊取消了 Alexa 的本地语音处理选项,计划把对话数据接入广告系统。这些都曾经是"我们不会这样做"的领域。

架构不一样。如果推理在本地设备上运行,数据物理上无法离开你的网络,那就不存在"政策变更"的空间。没有 API 端点可以调用,没有遥测管道,没有可以在三月份的软件更新里悄悄移除的隐私设置。这不是一个选择,而是一个物理事实。

烧进硅片的承诺

这周看到一家叫 Taalas 的公司做了一件有趣的事:他们把 Llama 3.1 8B 模型直接烧进了定制芯片。不是在通用 GPU 上跑推理,而是把模型的权重和计算逻辑物理地固化在硅片里,存储和计算合为一体,消除了传统架构中内存和算力之间的那道墙。

结果是每用户 17000 tokens/秒的推理速度,比当前最快的方案快了近十倍。24 个人的团队,花了 3000 万美元,在两亿美元融资中只用了这么一小部分。

这个做法本身很激进——一旦模型被烧进芯片,就不能远程更新、不能偷偷替换、不能在推理过程中插入广告。芯片就是芯片,它的行为在制造的那一刻就被永久决定了。这几乎是"架构即保证"的物理极限:你把承诺刻进了原子排列里。

当然,它也有代价。固化意味着无法迭代,3-bit 量化意味着质量损失,硬连线的模型终将被更好的模型超越。但它证明了一件事:当你愿意为确定性付出灵活性的代价时,能获得数量级的效率提升。这种取舍本身就值得认真思考。

当架构本身是破的

反过来看,当架构有根本缺陷的时候,再多的政策都救不了。

一个潜水教练在哥斯达黎加科科斯岛的潜水旅途中,发现了自己投保的潜水保险公司的会员系统有一个荒谬的漏洞:用户 ID 是递增的数字,所有账户共享同一个默认密码,而且系统从不强制用户修改密码。没有速率限制,没有账户锁定,没有多因素认证。也就是说,任何人只需要猜一个数字,输入那个公开的默认密码,就有很大概率能登录别人的账户,看到完整的个人信息——包括未成年学生的姓名、地址、电话和出生日期。

他按照马耳他的国家漏洞协调披露政策,先联系了 CSIRT,再通知了公司,给了 30 天的修复窗口。两天后收到的不是技术团队的回复,而是公司数据隐私官的律师事务所发来的信——先是暗示他不该通知政府,然后威胁他的行为"很可能构成马耳他法律下的刑事犯罪",最后要求他签保密协议并提供护照号码。

这个故事里最讽刺的地方在于:公司的隐私政策大概写得滴水不漏,符合 GDPR 的每一条要求。但当认证架构本身就是"递增整数加固定密码"的时候,隐私政策就只是一张纸。而当有人指出架构的问题时,公司的反应是用更多的政策工具——律师信、保密协议、法律威胁——来处理一个本质上是工程问题的东西。

噪音与精确

同样的区别也出现在一个看起来不那么戏剧性的领域:依赖管理。

Filippo Valsorda——Go 语言安全团队的前负责人——写了一篇文章劝大家关掉 Dependabot。原因很简单:Dependabot 的工作方式是看到依赖的版本号变了就开 PR 提醒你更新,附带一个安全警告和一个看起来很吓人的 CVSS 评分。但它不关心你的代码是否真的调用了那个有漏洞的函数。

他举了自己维护的 edwards25519 库的例子。他发布了一个安全修复,影响的是 MultiScalarMult 这个方法——整个 Go 生态里几乎没人用它。但 Dependabot 对着几千个完全不受影响的仓库开了 PR,其中有一个甚至根本没有导入受影响的包。

与之对比的是 govulncheck,Go 官方的漏洞扫描工具。它不只看版本号,而是用静态分析追踪实际的调用链,一直追踪到符号级别。如果你的代码没有调用那个有漏洞的函数,它就不会打扰你。

Dependabot 提供的是政策级别的安全感——"我们检查了所有依赖的版本号"。govulncheck 提供的是架构级别的精确性——"我们验证了你的代码是否真正触及了危险路径"。前者制造噪音和警报疲劳,后者给你真正可以行动的信息。

两种形态

这些故事看起来不相关,但它们指向同一个观察:承诺有两种形态。一种是文字写成的,可以被修改、被重新解释、被悄悄撤回。另一种是结构决定的,嵌入在物理定律、数学证明或代码逻辑里,不以任何人的意志为转移。

本地推理的设备不是因为公司善良才不泄露你的数据,而是因为数据物理上出不去。烧进芯片的模型不是因为工程师承诺不改才不会变,而是因为硅片无法被远程重写。govulncheck 不是因为维护者细心才不误报,而是因为静态分析在数学上排除了不可达的路径。

我见过太多人把信任放在第一种承诺上。也许是因为文字比结构更容易理解,政策比架构更容易获得,"我们承诺"比"在物理上不可能"更让人感到被尊重。但文字是给人看的,结构是给现实用的。当两者冲突的时候,现实总是赢。

这不是说政策没有价值——法律、合同、社会规范都是必要的。但它们是用来约束那些在架构上有能力做坏事的人的。如果你能在架构层面就消除做坏事的可能性,那你连约束都不需要了。

最好的系统是那些不需要你信任任何人的系统。不是因为人不值得信任,而是因为不需要信任本身就是最高形式的信任。


参考来源