第四章:材料数据库与数据源

做AI材料设计,最头疼的问题是什么?

我个人觉得,不是算法不够强,也不是算力不够快——而是数据从哪来。你想想看,没有高质量的数据,再牛的模型也是空中楼阁。今天这一章,我就带你捋一捋材料科学领域那些靠谱的数据源。

4.1 公共数据库:材料科学的三驾马车

先说公共数据库。这玩意儿就像材料界的维基百科,但比维基百科靠谱多了。目前最主流的三个,我习惯叫它们「三驾马车」。

4.1.1 Materials Project

这个数据库我用了快十年了。它由MIT的Gerbrand Ceder团队发起,现在归LBNL管。说白了,它就是通过高通量计算,把已知和未知材料的性质算了个遍。

核心特点:

  • 数据规模:超过15万种无机化合物,还在持续增长
  • 计算级别:主要基于DFT(密度泛函理论),用的是PBE泛函
  • 可查询属性:形成能、带隙、弹性常数、压电系数、锂离子迁移势垒……你能想到的基本都有
  • API支持:有Python接口(pymatgen),可以直接在代码里调数据

重要提醒:Materials Project的数据都是计算值,不是实验值。我见过不少新手直接拿计算带隙去拟合实验性质,结果模型一塌糊涂。记住:计算值和实验值之间往往有系统偏差,需要做校正。

举个例子,你想找一种新的正极材料。在Materials Project上,你可以这样筛选:

# 伪代码示意
from pymatgen.ext.matproj import MPRester

with MPRester("YOUR_API_KEY") as mpr:
    # 筛选含锂、钴、镍的氧化物
    criteria = {
        "elements": ["Li", "Co", "Ni", "O"],
        "nelements": 4,
        "band_gap": {"$lt": 3.0}
    }
    materials = mpr.query(criteria, ["material_id", "formula_pretty", "band_gap", "energy_per_atom"])

4.1.2 OQMD(Open Quantum Materials Database)

OQMD是西北大学Chris Wolverton团队的成果。它和Materials Project最大的区别是什么?

嗯,简单说:OQMD更「野」一些。它收录了大量亚稳相和实验上还没合成出来的结构。我在做高熵合金项目时,就经常去OQMD扒数据——因为很多亚稳相在Materials Project上查不到。

对比项 Materials Project OQMD
数据量 ~15万 ~80万(含大量亚稳相)
计算精度 PBE+U PBE
特色 API完善,社区活跃 亚稳相丰富,适合探索新材料
适合场景 常规材料筛选 亚稳相、高熵体系

我的经验:如果你做的是传统陶瓷或半导体,优先用Materials Project。如果你搞的是高熵合金、非晶、或者想找一些「不寻常」的结构,OQMD是更好的选择。

4.1.3 AFLOW

AFLOW是杜克大学Stefano Curtarolo团队的产物。这个数据库有个特点——它把计算流程标准化了。什么意思呢?就是所有材料的计算参数、赝势、截断能都是统一的。

为什么这很重要?因为做机器学习时,最怕的就是数据不一致。AFLOW的数据一致性在三个库里是最好的。我曾经做过一个对比实验:用AFLOW的数据训练模型,预测精度比用混合数据源高了将近10%。

4.2 实验数据:金标准,但不好拿

公共数据库再好,终究是计算值。真正做材料设计,最终还是要落到实验数据上。但实验数据有个问题——太散了。

目前比较靠谱的实验数据源:

  • ICSD(无机晶体结构数据库):收录了20多万种已知无机化合物的晶体结构。这是实验测定的,不是算出来的。但注意,ICSD只给结构,不给性质。
  • Pearson's Crystal Data:和ICSD类似,但更偏金属间化合物。我做合金设计时经常用这个。
  • NIST Materials Data Repository:美国国家标准与技术研究院搞的,数据质量很高,但量不大。

避坑指南:我曾经花了两周时间,从一篇论文里手动提取了200多组实验数据。结果发现,同一篇论文里不同表格的数据居然对不上——因为作者用了不同的单位制。所以,用实验数据时一定要做数据清洗,别偷懒。

4.3 文献数据挖掘:从论文里「淘金」

公共数据库和实验数据库加起来,能覆盖的材料种类其实很有限。大量有价值的数据还「沉睡」在论文里。怎么把它们挖出来?

我常用的方法:

  1. 规则匹配:用正则表达式从PDF里提取数值。比如找带隙,就搜"band gap"、"eV"这些关键词。这个方法简单粗暴,但精度还行。
  2. 表格解析:用Tabula或Camelot这类工具,把论文里的表格转成CSV。注意,很多论文的表格是图片格式,得先用OCR。
  3. NLP方法:用BERT或GPT类的模型,从文本中抽取材料-性质关系。这个我还在摸索,但效果已经比规则匹配好不少了。

下面是我自己写的一个简易文献数据挖掘流程:

# 文献数据挖掘简易流程
1. PDF解析 → 提取文本和表格
2. 实体识别 → 找出材料名称(如"LiFePO4")
3. 属性抽取 → 找出对应的性质值(如"capacity: 170 mAh/g")
4. 单位归一化 → 统一单位制(如mAh/g, Wh/kg)
5. 数据清洗 → 去重、异常值处理
6. 结构化存储 → 存入数据库或CSV

小技巧:做文献挖掘时,别只盯着正文。论文的支撑信息(Supporting Information)里往往藏着大量表格数据。我有个项目,80%的数据都是从支撑信息里挖出来的。

4.4 数据融合:把不同来源的数据「拧」在一起

实际项目中,你很少只用单一数据源。更多时候,你需要把计算数据、实验数据、文献数据融合起来。但这里有个坑——不同来源的数据,误差范围完全不同。

我的做法是:

  • 给每个数据源打一个「置信度标签」:实验数据权重最高,文献数据次之,计算数据最低
  • 做多任务学习:把不同数据源当作不同的任务,共享底层特征,上层各自预测
  • 或者更简单:用计算数据做预训练,用少量实验数据做微调

举个例子,我在做热电材料设计时,用了Materials Project的能带结构数据做预训练,然后用文献中挖出来的实验ZT值做微调。最终模型的预测精度,比只用单一数据源提高了30%以上。

核心观点:数据不是越多越好,而是越「对齐」越好。不同来源的数据,如果不能对齐误差和单位,堆在一起只会让模型学偏。

4.5 本章知识体系

下面这张图,是我自己梳理的本章知识结构。你可以把它当作一个「数据地图」:

材料数据库与数据源知识体系 公共计算数据库 实验数据库 文献数据挖掘 Materials Project 15万+化合物,API完善 OQMD:80万+,亚稳相丰富 AFLOW:数据一致性最佳 ICSD / Pearson's / NIST 实验测定结构,金标准 数据量有限,需清洗 单位制不统一是常见坑 规则匹配 / 表格解析 / NLP 从PDF中提取数值 支撑信息是数据宝库 BERT/GPT辅助抽取 数据融合与对齐 AI材料设计模型

这张图的核心逻辑是:三个数据源各有优劣,最终要通过数据融合,才能喂给AI模型。别想着一个数据源打天下——我试过,行不通。


好了,这一章的内容就到这里。数据是AI材料设计的「燃料」,但燃料的质量决定了你能跑多远。下一章,我们会聊怎么把这些数据变成模型能吃的「特征」——也就是特征工程。到时候见。

专注资料整理