第1章:材料数据基础设施——从数据到智能的基石

各位同学,大家好。我是你们这门课的主讲人。今天咱们聊聊材料数据基础设施。说实话,这个主题听起来有点枯燥,但它是整个AI驱动材料设计的根基。没有这个基础,后面再牛的算法也是空中楼阁。

我个人习惯把材料数据比作「原油」。原油本身价值有限,但经过炼化、提纯、加工,就能变成汽油、塑料、药品。材料数据也一样——原始数据杂乱无章,但经过标准化、清洗、特征工程,就能成为AI模型的「燃料」。

2.1 三大主流材料数据库:你的数据从哪里来?

做AI材料设计,第一步就是找数据。目前国际上最主流的三个开源数据库,我一个个说。

2.1.1 Materials Project(MP)

这个数据库由MIT的Gerbrand Ceder团队发起,现在由LBNL维护。它收录了超过15万种已知和预测的无机晶体结构,以及对应的电子结构、热力学性质等。说白了,你想查某个材料的带隙、形成能、弹性常数,这里基本都有。

我在做光伏材料筛选时,就大量依赖MP的数据。它的API接口做得很好,可以直接用Python调取数据,省去了手动下载的麻烦。

核心特点:
  • 数据量:约15万+无机晶体结构
  • 数据维度:结构、能量、电子性质、力学性质
  • 访问方式:RESTful API、Web界面、Python客户端(pymatgen)
  • 更新频率:持续更新,约每季度一次

2.1.2 OQMD(Open Quantum Materials Database)

OQMD是西北大学和杜克大学联合开发的。它的特点是计算标准统一——所有数据都用同一套DFT参数算出来的。这有什么好处?你想想看,不同论文里算出来的形成能可能差0.1 eV,但OQMD内部的数据是可比的。

我曾经遇到过一个问题:用MP的数据训练模型,预测效果还行,但换到另一个体系就崩了。后来发现是不同数据库的计算参数不一致。所以,如果你做迁移学习或跨体系预测,OQMD的标准化数据会更靠谱。

数据库 数据量 计算标准 特色功能
Materials Project ~15万 多种泛函 相图、弹性性质
OQMD ~80万 统一PBE泛函 相稳定性分析
NOMAD ~1亿+计算任务 多种代码/泛函 原始数据存档

2.1.3 NOMAD(Novel Materials Discovery)

NOMAD是欧洲的数据库,它的定位是「数据仓库」。什么意思?它不自己算数据,而是把全世界研究者提交的DFT计算原始数据存起来。目前已经收录了超过1亿个计算任务。

嗯,这里要注意:NOMAD的数据质量参差不齐。因为不同课题组用的软件、参数、赝势都不一样。我建议你用NOMAD时,一定要做数据清洗,否则模型会被噪声带偏。

2.2 数据标准化与FAIR原则:让数据「说同一种语言」

数据有了,但问题来了——不同数据库的格式、单位、命名规则都不一样。比如形成能,有的用eV/atom,有的用eV/f.u.,有的甚至用kJ/mol。你不标准化,模型根本没法学。

2.2.1 数据标准化做什么?

说白了,就是三件事:

  • 单位统一:所有能量转成eV/atom,长度转成Å,温度转成K
  • 命名规范:元素符号用标准写法(Fe不是iron,O不是oxygen)
  • 格式统一:晶体结构用CIF或POSCAR,属性用JSON或CSV
我的小技巧:用pymatgen库的Structure类来读写晶体结构,它会自动处理格式转换。我写过一个脚本,批量把CIF转成POSCAR,顺便检查原子坐标是否合理。

2.2.2 FAIR原则:数据管理的「黄金标准」

FAIR是四个单词的首字母:Findable(可发现)、Accessible(可访问)、Interoperable(可互操作)、Reusable(可复用)。

我在项目中吃过亏。有一次,我花了三周时间整理一个课题组的历史数据,结果发现:

  • 文件名是「data_final_v3_really_final.cif」——不可发现
  • 数据存在个人电脑里,人离职了就打不开——不可访问
  • 用Excel存的,公式和数值混在一起——不可互操作
  • 没有元数据,不知道计算参数——不可复用

所以,我建议你从一开始就按FAIR原则来管理数据。哪怕只是自己用,也省得三个月后自己都看不懂。

避坑指南:我曾经接手一个项目,前同事把数据存在百度网盘里,结果链接过期了。后来花了两个月重新算了一遍。所以,数据一定要用持久化标识符(比如DOI)存档。

2.3 数据清洗与特征工程基础:把「脏数据」变成「好特征」

数据清洗和特征工程,是AI材料设计中最耗时、最考验经验的环节。我估计,一个项目里60%的时间都花在这上面。

2.3.1 数据清洗:剔除「垃圾数据」

常见的问题有:

  • 缺失值:某个材料的带隙是NaN,怎么办?要么删掉,要么用插值填充
  • 异常值:形成能算出来是+100 eV/atom,明显不合理,直接剔除
  • 重复数据:同一个结构算了两次,取平均值还是保留一个?我建议保留最新的
  • 单位错误:有人用eV,有人用Ry,不统一就乱套了
# 一个简单的数据清洗示例(Python伪代码)
import pandas as pd

# 加载数据
df = pd.read_csv('materials_data.csv')

# 剔除缺失值
df = df.dropna(subset=['band_gap', 'formation_energy'])

# 剔除异常值(形成能应在合理范围内)
df = df[(df['formation_energy'] > -10) & (df['formation_energy'] < 5)]

# 单位统一:将Ry转换为eV(1 Ry = 13.6057 eV)
df['energy_eV'] = df['energy_Ry'] * 13.6057

# 去重:基于晶体结构指纹
df = df.drop_duplicates(subset=['structure_fingerprint'])

2.3.2 特征工程:从原始数据中「挖」出有用信息

原始数据里只有元素种类、原子坐标、能量这些。但AI模型需要更丰富的特征。常用的特征包括:

  • 元素属性:电负性、原子半径、价电子数、电离能
  • 结构特征:配位数、键长、键角、体积、密度
  • 组合特征:平均电负性、电负性差异、原子半径比
  • 描述符:比如Sine Coulomb Matrix(SCM)、Many-body Tensor Representation(MBTR)
核心观点:特征工程不是越多越好。我见过有人一口气生成200个特征,结果模型过拟合得一塌糊涂。好的特征工程,是「少而精」,每个特征都有物理意义。

知识体系总览

下面这张图,是我自己画的本章知识结构。你可以把它当作一个「地图」,随时回来对照。

材料数据基础设施知识体系 数据来源 数据标准化 数据清洗与特征工程 三大主流数据库 • Materials Project (15万+) • OQMD (80万+) • NOMAD (1亿+任务) 标准化与FAIR原则 • 单位统一 (eV/atom, Å) • 命名规范 (元素符号) • FAIR: 可发现/访问/互操作/复用 清洗与特征工程 • 缺失值/异常值处理 • 元素属性特征 • 结构描述符 (SCM, MBTR) AI模型训练与材料预测 新材料发现与性能预测

这张图展示了从数据来源到最终材料预测的完整链路。你可以看到,数据基础设施是整个流程的「地基」。地基不稳,房子再漂亮也白搭。

小结

这一章我们聊了三个核心问题:

  • 数据从哪里来?——MP、OQMD、NOMAD三大数据库各有千秋
  • 数据怎么管?——标准化+FAIR原则,让数据「活」起来
  • 数据怎么用?——清洗脏数据,提取好特征

下一章,我们会深入讨论如何用这些数据训练机器学习模型。但在此之前,我建议你先把本章的内容消化掉。去Materials Project上注册个账号,调几个数据试试,感受一下真实的数据长什么样。

记住:好的数据基础设施,是AI材料设计成功的一半。另一半,我们后面慢慢聊。


专注资料整理