AI/ML 详解:AI for Science

Day 46 · 2026-07-03 · 难度:中高级 · 前沿
面向:有编程经验的非 AI 方向工程师

前几天讲的都是「AI 怎么运转」。今天换个角度:AI 怎么帮人类做出真正的新科学发现——不是写代码、答问题,而是折叠出实验测不出的蛋白、找到人没想到的新材料、给数学家提示新定理。共同的机制是一个后端人熟悉的模式:把昂贵的「真实验证」换成廉价的「模型预测」,再用预测去引导有限的验证资源

蛋白质结构预测AlphaFold

结构生物学共进化信号
一句话类比

蛋白质就是一条一维氨基酸序列,会确定性地折叠成一个三维形状——但这个「序列→形状」的映射人类解不出闭式解。类比后端:像拿到一段序列化的字节流(没有 schema),要反推出它在内存里的对象图布局。传统实验测结构(X 射线晶体学、冷冻电镜)像「跑一次几个月、几十万美元的全量物理扫描」;AlphaFold 像「训好的模型几分钟直接预测」。

它解决什么问题 + 工作机制

蛋白质的功能由 3D 形状决定(酶的活性口袋、抗体的结合位点)。但实验测结构极慢——五十年只解出约 10 万个,而已知序列有上亿个,这就是所谓「序列-结构鸿沟」。AlphaFold2(Jumper et al. 2021)的机制核心是两点:

(1)MSA(多序列比对,Multiple Sequence Alignment)——把同一个蛋白在不同物种里的同源序列排在一起,当成「进化留下的分布式副本」。关键洞见:如果两个氨基酸位点在 3D 里相邻(接触),它们往往会共同演化——一个位点突变,另一个跟着补偿突变来维持结构稳定。这就像代码里「总是一起改动的两个模块」暗示它们在架构上耦合。AlphaFold 就从这种共变(co-evolution)信号反推出哪些氨基酸在空间上挨着。

(2)Evoformer——一个基于 attention 的模块,在「序列表示」和「配对表示(谁和谁接触)」两张表之间反复交换信息,最后由 structure module 直接吐出每个原子的三维坐标。2024 年的 AlphaFold3 进一步扩展到蛋白-DNA-小分子的复合体。

核心机制:从进化信号到三维结构

同源序列 (MSA)找共变位点接触图 2D3D 坐标
↑「两个位点总一起变」= 它们在空间里接触 = 折叠的约束条件
代码示例
# 用 ESM Atlas 的 ESMFold 公共 API 折叠一条序列(无需 GPU)
import requests

seq = "MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQAPILSRVGDGTQDNLSGAEK"  # 你的氨基酸序列
r = requests.post(
    "https://api.esmatlas.com/foldSequence/v1/pdb/",
    data=seq, timeout=120,
)
with open("predicted.pdb", "w") as f:
    f.write(r.text)   # 返回标准 PDB 文件,可直接丢进 PyMOL / py3Dmol 看

# PDB 里每个 ATOM 行末尾的 B-factor 列,ESMFold 用它存 pLDDT 置信度
# pLDDT > 90 高可信;< 50 通常是柔性/无序区域,别当真
print("结构已保存,用置信度过滤后再下结论")
常见误区 + 实践场景
⚠️ 误区:把 AlphaFold 输出当「实验测得的真结构」。它给的是单一静态构象的预测,且每个残基都带 pLDDT 置信度——低置信区域(尤其无序蛋白、突变效应、结合后的构象变化)常常不可靠。它是「高质量假设生成器」,不是「湿实验替代品」。
🎯 BigCat 场景(识别 AI 重构模式):AlphaFold 的本质是把一个领域从「昂贵慢实验」变成「廉价快预测」。这个模式本身是一把决策尺子——你可以拿它去扫描任何行业:哪里存在「验证一次很贵、但有海量历史数据」的环节,那里就可能是下一个被 AI 重构的点。
一句话 takeaway + 思考题
💡 AlphaFold 没在「模拟物理」,它在从进化的统计规律里读结构——共变信号是它真正的信息来源。
🤔 思考:为什么「进化」这个和物理无关的历史过程,反而成了预测物理结构最强的信号?

AI 材料发现GNoME · Materials Discovery

图神经网络主动学习
一句话类比

在巨大的晶体组合空间里找「稳定的新材料」,就像在庞大的配置空间里搜一个有效配置。判断一个候选材料稳不稳,传统要算DFT(密度泛函理论)——像「实际跑一遍昂贵的集成测试」,一个材料要几小时到几天 CPU。GNoME 用 GNN 把晶体建成图(原子是节点、化学键是边),直接预测能量——像用「静态分析器」秒判这段配置能不能过,省掉绝大部分昂贵验证。

它解决什么问题 + 工作机制

新材料(电池、超导、催化剂)的瓶颈是搜索空间爆炸——元素怎么组合、原子怎么排布,组合数天文级,逐个 DFT 算不完。GNoME(Merchant et al. 2023,Google DeepMind)不是一次性预测,而是一个主动学习闭环(active learning loop)

GNN 先对海量候选预测稳定性 → 只把「最有希望稳定」的一小批送去做真 DFT 验证 → 验证结果(无论对错)回填训练集 → GNN 变得更准 → 再预测下一批。这个循环本质就是后端人熟悉的「便宜粗筛 + 贵资源精验 + 反馈回填」CI 闭环,也和强化学习的探索-利用同构。论文报告用它找到约 38 万个新的稳定晶体结构

主动学习闭环:让昂贵的验证只花在刀刃上

GNN 预测稳定性筛出高潜候选DFT 真验证(贵)
↑___________________ 回填训练集,模型变强 ___________________|
代码示例
# 用 Materials Project API 查一个材料的 DFT 形成能(判断稳定性的基准量)
from mp_api.client import MPRester

with MPRester("YOUR_MP_API_KEY") as mpr:   # materialsproject.org 免费申请
    docs = mpr.materials.summary.search(
        formula="Li3PO4",                       # 一种固态电解质
        fields=["material_id", "formation_energy_per_atom",
                "energy_above_hull"],
    )
for d in docs:
    # energy_above_hull == 0 → 位于凸包上 → 热力学稳定
    stable = "稳定" if d.energy_above_hull < 1e-6 else "亚稳/不稳"
    print(d.material_id, round(d.formation_energy_per_atom, 3), stable)
常见误区 + 实践场景
⚠️ 误区:把「预测稳定的 38 万个」当成「38 万个可用的新材料」。热力学稳定 ≠ 能被合成出来 ≠ 有实用价值。GNoME 发表后确有独立研究质疑其中一部分的新颖性与可合成性——预测只是漏斗的顶端,湿实验合成才是真正的瓶颈。
🎯 BigCat 场景(超级个体工作流模板):这个「便宜模型粗筛 → 人/贵资源精验 → 结果回填」闭环,可以直接搬到你的信息工作流:用 LLM 对上百篇论文/资料做廉价初筛打分,只精读 top 少数,把精读结论回填成更好的筛选 prompt。这就是个人版的 active learning。
一句话 takeaway + 思考题
💡 GNoME 的价值不在「模型多准」,而在它把有限的昂贵验证资源引导到了最可能有回报的地方
🤔 思考:如果模型的粗筛有系统性偏差(总偏爱某类材料),主动学习闭环会自我纠正,还是把偏差越滚越大?

AI 辅助数学发现FunSearch · Guided Intuition

进化搜索直觉放大器
一句话类比

这里 AI 不直接吐答案,而是「生成假设,让人(或自动器)去验证」——像 AI 帮你生成一堆候选查询计划/索引方案,你再 benchmark 哪个真的快。数学发现有两条截然不同的 AI 路线,都是这个套路。

它解决什么问题 + 工作机制

路线 A — 引导人类直觉(Davies et al. 2021,DeepMind × 数学家):在大量数学对象(如纽结)的数据上训 GNN,让它找出「哪些不变量之间存在意料之外的相关性」,把这个模式当提示喂给数学家,人再去证明成严格定理。成果之一是纽结理论的一条新定理。这里 AI 是直觉放大器,不是证明机——最后的证明仍由人完成。

路线 B — 进化式程序搜索(FunSearch,Romera-Paredes et al. 2024):关键洞见是搜「程序」而非「答案」——不去存「解长什么样」,而去进化出「怎么构造解的函数」(有点像 procedural vs declarative)。机制:LLM 当变异算子(对已有程序做改写、生成候选),一个自动 evaluator 当适应度函数(给每个程序打分),保留高分的、再迭代——就是遗传算法,但用 LLM 生成「后代」。它在 cap set(极值组合学)上找到超越已知的构造,在装箱问题上找到更好的启发式。

FunSearch:把 LLM 当变异算子的进化循环

程序种群LLM 变异生成候选evaluator 自动打分留高分
↑______________________ 循环,逐代逼近更优构造 ______________________|
前提:解难找、但「好不好」能被廉价自动验证(NP 味道的问题)
代码示例
# FunSearch 骨架:LLM 变异一个启发式函数,evaluator 打分,保留最优
from anthropic import Anthropic
client = Anthropic()  # 需要 ANTHROPIC_API_KEY

def evaluate(code):        # 适应度函数:真正跑候选程序、量化好坏
    ns = {}; exec(code, ns)
    return score_on_benchmark(ns["heuristic"])   # 你的评分逻辑

best = ("def heuristic(x): return x", evaluate("def heuristic(x): return x"))
for _ in range(50):                                 # 进化 50 代
    msg = client.messages.create(model="claude-opus-4-8", max_tokens=512,
        messages=[{"role": "user",
            "content": f"改进这个启发式使评分更高,只回代码:\n{best[0]}"}])
    cand = extract_code(msg.content[0].text)
    try:
        s = evaluate(cand)
        if s > best[1]: best = (cand, s)   # 只保留严格更优的
    except Exception: pass              # 变异可能语法错,跳过
常见误区 + 实践场景
⚠️ 误区:以为 AI 能「自动证明」任意数学猜想。FunSearch 的前提是「解难找、但好坏能被自动、廉价地验证」——一旦某个开放猜想无法自动验证(需要人类严格证明),这套进化搜索就用不上。它扩展的是「搜索」,不是「证明」。
🎯 BigCat 场景(人机协同做跨学科连接):你做佛学 × 分布式 × 复杂性科学的跨学科连接时,可以套 Davies 的模式——让 LLM 大量生成「这两个领域可能存在的同构」候选(直觉放大器),你自己充当 evaluator,验证哪些是真洞见、哪些是表面类比。AI 拓宽假设空间,判断权仍在你。
一句话 takeaway + 思考题
💡 数学 AI 的突破点不是「更会算」,而是重新分工:AI 负责在广阔空间里生成候选,人(或 evaluator)负责严格验证
🤔 思考:「搜程序而非搜答案」为什么让搜索更高效?(提示:一个好程序能一次性覆盖无穷多实例)

科学基础模型Scientific Foundation Models

GraphCastESM-2数据驱动
一句话类比

把大模型的「预训练一次,处处微调」范式搬进自然科学。核心反直觉:数据驱动的模型,在很多问题上比第一性原理的物理求解更准,还快几个数量级——因为真实数据里藏着模型没显式写进方程的规律。

它解决什么问题 + 工作机制

例一 — GraphCast(Lam et al. 2023,Science):传统天气预报要在超算上数值求解大气偏微分方程,像「每次预报都从头全量计算」。GraphCast 用 GNN 在 40 年再分析数据上学出一个「从当前状态直接映射到未来状态」的函数——像一张预计算好的物化视图,一分钟出 10 天预报,在约 90% 的验证指标上超过顶级数值系统。

例二 — ESM-2 / ESMFold(Lin et al. 2023,Science):把蛋白序列当「语言」,用掩码预测(masked prediction)做自监督预训练——和 BERT 训练一模一样。当模型规模推到 150 亿参数时,结构信息「涌现」:它不看 MSA 也能折叠蛋白,比 AlphaFold 快约一个数量级(代价是精度略降)。这说明「序列的统计规律」里本就编码了结构。

共性机制:大数据自监督预训练 → 学到领域的通用「表示」→ 下游任务微调,与 LLM 的路子完全同构。

代码示例
# 用小号 ESM-2 (8M 参数, 可 CPU 跑) 提取蛋白序列的表示向量
import torch
from transformers import AutoTokenizer, AutoModel

name = "facebook/esm2_t6_8M_UR50D"          # 最小的 ESM-2
tok = AutoTokenizer.from_pretrained(name)
model = AutoModel.from_pretrained(name).eval()

seq = "MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQ"
inp = tok(seq, return_tensors="pt")
with torch.no_grad():
    out = model(**inp)
# 每个氨基酸一个向量;平均池化得到整条序列的「指纹」,可做下游分类/检索
emb = out.last_hidden_state.mean(dim=1)
print(emb.shape)   # torch.Size([1, 320]) —— 拿去接你自己的任务头微调
常见误区 + 实践场景
⚠️ 误区:以为数据驱动模型「学会了物理」。它学的是高级插值——在训练分布内极强,但外推到分布外(史无前例的极端天气、全新蛋白家族)就不可靠。它没有物理定律的保证,只有数据里出现过的规律。别拿它当第一性原理去外推。
🎯 BigCat 场景(投资/商业决策):这条「何时数据驱动打败第一性原理」的判断线,是识别机会的利器——哪里有海量高质量历史数据、且不需要极端外推,哪里的传统「精确求解/专家经验」就可能被 foundation model 便宜地吃掉。反过来,强外推、数据稀缺的领域,AI 短期难撼动。
一句话 takeaway + 思考题
💡 科学基础模型证明了一件深刻的事:很多「需要求解方程」的问题,其实可以「从数据里直接学出来」——前提是数据够多够好。
🤔 思考:一个从不「理解」物理、只做插值的模型,能算「做出了科学发现」吗?发现和理解是一回事吗?

深入资源Further Reading

深入思考Deep Questions

1. 今天四个案例(AlphaFold、GNoME、FunSearch、GraphCast)背后有没有一个统一的「AI for Science」范式?
有一个共同骨架:用廉价的模型预测,替换或引导昂贵的真实验证。AlphaFold 用共变信号预测结构,替换了几个月的晶体学实验;GNoME 用 GNN 预测稳定性,把有限的 DFT 算力引导到高潜候选上;FunSearch 用 LLM 生成候选程序,把稀缺的「人类验证/自动评分」用在筛选上;GraphCast 用学出来的映射替换了超算求解 PDE。抽象出来是同一个漏斗:庞大搜索空间 → 便宜模型粗筛/预测 → 昂贵资源精验 → 结果回填提升模型。这正是后端人熟悉的「缓存 + 静态分析 + CI 反馈闭环」在科学发现上的同构。差异只在「昂贵验证」是什么——湿实验、DFT、人类证明、还是超算。理解这个骨架,你就能预判 AI 会先攻下哪些科学领域:凡是「验证贵 + 数据多 + 搜索空间大」的地方。
2. AlphaFold 靠共进化,ESMFold 只靠单序列的语言模型——为什么后者不看进化信息也能折叠?两者矛盾吗?
不矛盾,是同一信息的两种读法。共变信号本质是「哪些位点的变化互相约束」,这个约束本来就分布在海量已知序列里。AlphaFold 显式地做 MSA、把同源序列排好再读共变;ESM-2 则是把上亿条序列直接喂给语言模型做掩码预测——模型在「预测被遮住的氨基酸」这个任务里,隐式地内化了整个序列宇宙的统计规律,包括共变。所以当 ESM-2 规模够大(150 亿参数),结构信息就「涌现」了:它把 MSA 的信息压进了权重。代价是精度略低于显式用 MSA 的 AlphaFold,但换来一个数量级的速度(不用为每条序列现搜同源库)。这对应一个通用权衡:显式检索(RAG 味道)精度高但慢,隐式参数化(塞进权重)快但可能丢细节——和 LLM 里「检索 vs 参数记忆」的取舍完全同构。
3. GNoME「发现 38 万材料」、AlphaFold「预测 2 亿结构」——这些惊人数字里,「发现」这个词被稀释了多少?
被稀释得很厉害,值得警惕。传统语境里「发现一个新材料/新结构」意味着被验证、可复现、有实际意义;而这些数字大多是计算预测,处在漏斗最顶端。GNoME 的 38 万是「预测热力学稳定」,其中真正被独立合成验证的是很小一部分,且发表后有研究质疑部分候选的新颖性与可合成性。AlphaFold 的 2 亿是「预测结构」,其中相当比例是低置信度或本就柔性无序的区域。这不是说工作不重要——把候选池从「无从下手」缩到「38 万个值得一试」是巨大的价值。但「预测规模」和「已验证发现」是两个量级,媒体标题常把二者混为一谈。作为决策者,看到这类数字要本能地问:这是「模型说的」还是「实验证的」?漏斗的哪一层?这个分辨力,在 AI 时代评估任何「AI 发现了 X」的新闻时都用得上。
4. 如果 AI 能又快又准地预测结果,却不给出「为什么」,长期看会削弱人类的科学理解力吗?
这是 AI for Science 最深的张力。一方面,可预测性本身推动科学——AlphaFold 让结构生物学家把精力从「解结构」转向「用结构」,是解放。另一方面,一个只会插值、不给机理的黑箱,可能让领域陷入「能预测但不理解」的状态:模型准,但没人知道它抓住了什么规律,也就无法从中提炼新的第一性原理。历史上科学的力量恰恰来自「理解带来的外推能力」——牛顿定律不止拟合了苹果,还预言了从没见过的天体。纯数据模型给不了这种外推保证。但也有乐观路线:Davies 的工作正是反例——AI 不替代理解,而是把人类直觉引到该看的地方,最后由人完成理解。所以关键不在 AI 能不能理解,而在我们把它定位成「答案机」还是「直觉放大器」。对 BigCat 追求的「AI 超级个体」,这条界线同样成立:让 AI 扩展你的探索半径,但把「理解与判断」这个不可外包的内核留给自己。
5. 为什么这波「AI 做科学」的突破,几乎全靠深度学习 / GNN,而不是符号 AI 或传统数值方法?
因为这些问题有一个共同结构:高维、非线性、规律隐含在数据里而非写在方程里。蛋白折叠、材料稳定性、大气演化——第一性原理方程存在(薛定谔方程、流体力学方程),但直接求解在计算上不可行(维度诅咒),且很多有效规律是「涌现」的、难以从底层方程解析推出。深度学习的强项恰是从数据里逼近任意高维非线性映射,GNN 又天然匹配「原子-键」「格点-邻居」这种图/网格结构。符号 AI 擅长离散、可组合、逻辑清晰的问题(所以在数学证明里仍有一席,如定理证明器),但面对连续高维的物理系统就吃力。传统数值方法准但慢、且每个问题要重新求解,不像神经网络「训练一次、推理极快」。所以真正的前沿其实是混合:用神经网络做快速预测/生成候选,用数值方法或符号验证器做严格把关——FunSearch(LLM + 自动 evaluator)、GNoME(GNN + DFT)都是这个模式。纯 AI 或纯传统方法都不是终局,各取所长的闭环才是