2009年,尼日利亚奥韦里,一位地质学教授在黑板上写了句话,让台下学生抄在本子上。没人想到,这句话会在15年后,被用来解释为什么硅谷的AI系统到了拉各斯就频繁翻车。
「Your geology will always govern your geophysics.」
你的地质条件永远支配着你的地球物理探测。说人话:再精密的仪器,也读不懂它假定的地层结构里不存在的东西。
这位教授当时讲的是垂直电测深(VES)——一种不用钻孔就能探测地下结构的技术。原理很干净:往地下通电,测电阻率曲线,反推地层分布。公式是精确的,教科书用了几十年,现场验证过无数次。
但VES有个隐藏前提:它假设地层是水平的、均质的、听话的。尼日利亚的基底杂岩偏偏不是。断裂带、横向变异、结构惊喜——这些东西不会出现在你的数据里,却能让一口按模型打的井彻底干涸。
公式没错。假设错了。结果 confidently wrong——自信地错误,这是最致命的。
作者现在哈科特港建生产系统。Cloudflare Workers、RAG管道、MCP服务器——技术栈很新,面向的用户却很旧:带宽按请求计费、电网不稳定、网络时快时慢。
他观察到一个反复出现的故障模式:开发者拿到AI生成的代码,看起来对,测试通过,上线。然后慢慢出错——不是崩溃,是错得微妙, tracing 要花好几天。
模型没坏。公式没事。地质不一样。
AI的训练数据来自一个特定环境:算力充裕、连接快速、基础设施容错、用户住在电网稳定的城市。这是它的「假定地质」。大多数时候,没人声明这个前提,没人质疑它。输出自信地抵达,被当作 ground truth(地面真相)。
作者建过一个面向尼日利亚用户的VPN服务。AI推荐的架构技术上正确,实际上完全错误。正确是针对假定地质的,错误是针对真实地质的。这不是 linter 能抓的 bug,是模型对世界的假设与世界本身之间的裂缝。
那个裂缝,就是生产事故的栖息地。
垂直电测深差点在1960年代被淘汰。计算机来了,数据处理能力暴涨,地球物理学家以为可以靠纯数学拟合解决一切。输入数据,输出模型,中间过程黑箱化。
结果一塌糊涂。拟合曲线完美匹配,打下去全是干井。行业被迫回退:重新把地质调查前置,让地球物理学家先理解地层,再让算法辅助解释。
这个回退救了整个方法。
AI行业正在走一条相似的路,只是方向相反。我们还在「拟合曲线完美匹配」的阶段,对「地层结构」的忽视比1960年代的地球物理界更严重。
作者提到一个具体案例:用AI生成边缘计算架构,模型默认全球可用区(global availability zones)是常态。但对尼日利亚用户来说,最近的AWS区域在南非,延迟200ms起步。AI没报错,它只是沉默地假设了一个不存在的网络拓扑。
这种错误不会触发异常。它会通过所有测试,然后在真实用户那里缓慢失血。
作者的做法是把VES的逻辑翻译成工程检查单。不是问「这代码对吗」,而是问「这代码对哪种地质条件对」。
具体操作上,他在RAG管道里加了一层「地质校验」:每次AI生成配置,强制标注其隐含假设——带宽下限、延迟上限、电力稳定性、用户设备规格。然后与目标环境的实测数据比对,不匹配就触发人工复核。
这套流程多消耗15%的开发时间,少了约70%的线上诡异故障。不是消灭错误,是把错误从「自信地错误」变成「明显地错误」。
他有个更狠的做法:定期把系统部署到「最坏地质」环境——用2G网络、低端安卓机、间歇性断电的测试场跑全量测试。AI生成的代码在这里存活了,才敢往生产环境推。
这相当于地球物理里的「已知异常点验证」:故意在有钻井数据的地方跑VES,看模型预测和实际地层差多远。差得远,说明假设有问题,回去调地质解释,不是调公式。
作者的原话:「我在尼日利亚地质调查局花了六个月看这套流程怎么工作,现在我在哈科特港的机房里复刻它。」
文章的核心论点在这里收束:AI没有创造新的失败类型,它只是把「假设与现实不匹配」这个古老问题,以更快的速度、更大的规模、更隐蔽的形式释放出来。
1960年代的地球物理学家学会了先问「地层什么样」再问「数据怎么说」。2020年代的AI工程师还在学习这个顺序。
作者最后提到一个细节:他现在的团队每季度做一次「地质审计」——不是审代码,是审假设。列出所有AI生成模块的隐含前提,逐条验证在目标市场是否成立。上个月他们发现,一个推荐算法默认「用户有稳定的下午时段用于深度使用」,这在拉各斯不成立,因为下午是停电高峰期。
这个假设没写在任何文档里,是团队从用户行为异常里反推出来的。