想象你是一位天才厨师,梦想创造一道全新的招牌菜。你灵感迸发,但与其从零开始盲目试错,你更希望先翻阅历代名厨留下的菜谱——了解哪些食材组合成功过、哪些火候是关键。对于 AI 助手(机器学习模型)来说,晶体结构数据库就是这样的“菜谱图书馆”:它把人类已知的晶体结构——原子如何排列、晶格多大、能量多高——系统地收藏起来。AI 模型通过“阅读”这些藏书,学会材料的“味觉规律”,进而预测全新的、未被合成过的晶体结构。本篇文章将带你走进这座“材料图书馆”,看看书架上都有什么书、如何借阅、如何甄别好书,以及 AI 学徒是如何“苦读”这些藏书并成长为材料预言家的。

岗位关联

结构数据库是连接“已知材料”与“AI 预测未知材料”之间的桥梁。掌握数据来源与质量控制,是材料信息学从业者的基本功,也是让 AI 模型从“花瓶演示”走向“真实科研工具”的关键一步。

目录
  1. 可视化演示
  2. 数据价值
  3. 实验数据库 ICSD
  4. 计算数据库 Materials Project
  5. 查询与接口
  6. 数据质量控制
  7. 模型训练应用
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

演示Materials Project与ICSD数据源、REST API查询与质量控制,理解晶体结构库的构建与使用。

本节配有交互动效(进入视口后自动加载,约 3KB)。

数据源:MP与ICSD MP计算 ICS实验 DFT 结构数据汇入数据库

数据价值

为什么 AI 预测晶体结构前,必须先有一座“图书馆”?假设你训练一位 AI 厨师识别“好吃”的配方,却只让它尝过三道菜——它顶多学会这三道菜的复制粘贴,谈不上创新。同样,预测晶体结构需要模型“见过”成千上万种原子排列方式,从统计规律中学会“什么排列更稳定”。

如果没有结构数据库,每次预测新结构都像闭门造车:模型不知道已知的稳定结构长什么样,更无从判断预测结果是否合理。有了数据库,场景就变成了“站在巨人的肩膀上”:AI 查阅历代经典配方(已知结构),归纳出原子间的“搭配法则”,从而设计全新材料。此外,数据库还充当“裁判”——预测出的结构是否合理,需要与已知实验结构比对,验证模型的准确度。

数据量是模型能力的“天花板”:数据不足时,模型只能死记硬背;数据充足时,模型才可能提炼出真正的物理规律。机器学习经验法则认为,训练样本数 \(N\) 应至少是模型参数量 \(P\) 的十倍,否则模型会过拟合,即把噪声也当作规律记下来。

回到图书馆的比喻:书架上的藏书本数(数据量),直接决定 AI 学徒视野的广度。一本菜谱只能教一道菜,而一座图书馆能培养出真正的料理大师。

N≥10×PN \geq 10 \times P
这条公式说明:模型不可“贪心”,参数越多,所需的数据量就越大。神经网络有数百万参数,因此必须依赖海量结构数据支撑。
  1. 训练样本数 \(N\)指数据库中用于训练的晶体结构条目总数,例如从库中取出 5 万条结构记录。
    NN
  2. 模型参数 \(P\)机器学习模型内部的待学习变量个数,如神经网络中每条连接的权重。
    PP
  3. 十倍关系经验法则要求 \(N\) 至少是 \(P\) 的 10 倍,保证每个参数有足够数据约束,避免模型死记硬背。
    N≥10×PN \geq 10 \times P

实验数据库 ICSD

走进这座材料图书馆的第一座分馆——ICSD(无机晶体结构数据库),你会感受到一种“历史档案馆”的庄重。这里的每一本书(每一条结构记录)都来自真实世界的测定:科学家用 X 射线或中子轰击晶体样品,通过衍射花样反推原子如何排列。就像考古学家从陶片纹路还原古代工艺,实验数据库记录的是“自然界真实存在过的晶体秩序”。

ICSD 由德国莱布尼茨信息科学研究所维护,是全球无机晶体结构数据最权威的实验来源,收录了约 28 万条经过严格审核的结构条目。每条记录包含晶格常数(a、b、c)、空间群编号、各原子的坐标位置以及测定温度和压力等实验条件。值得注意的是,不同实验室对同一材料的测定结果可能略有差异——这就像不同厨师做同一道菜,味道大同小异却批次有别。

实验数据的核心价值在于“真实”。当 AI 模型预测出一个全新的晶体结构,研究者需要确认它是否与已知的实验结果矛盾,而 ICSD 就是最可靠的对质依据。实验中材料的形成能可以通过热力学数据推算,与理论计算结果相互印证:

ICSD 这座“历史档案馆”虽有极高的可信度,却也有局限:它只收录人类实际合成并测定过的材料,数量有限,而且访问需要商业授权。这就像档案馆的孤本古籍,珍贵但门槛高。

Eform=EAB−EA−EBE_{\text{form}} = E_{\text{AB}} - E_{\text{A}} - E_{\text{B}}
形成能衡量“把 A 和 B 元素合并成化合物 AB”这件事在能量上是否划算。负值越大,说明化合物越稳定,越容易被实验合成。
  1. 化合物总能量 \(E_{\text{AB}}\)可理解为“成品的总热量”——形成 A、B 结合体后的整体能量。
    EABE_{\text{AB}}
  2. 单质能量 \(E_{\text{A}}\)、\(E_{\text{B}}\)即“原始食材”单独存在时的能量,作为参考基线。
    EA−EBE_{\text{A}} - E_{\text{B}}
  3. 相减得形成能若成品能量低于食材总能量,差值即为负,说明“结合”是放能过程,结构稳定。
    Eform=EAB−EA−EBE_{\text{form}} = E_{\text{AB}} - E_{\text{A}} - E_{\text{B}}

计算数据库 Materials Project

如果说 ICSD 是“历史档案馆”,那 Materials Project(材料项目,简称 MP)就是一座“畅想未来图书馆”。它的藏书不是来自实验测定,而是来自世界最大规模的密度泛函理论(DFT)高通量计算。科学家们像批量印刷图书一样,对成千上万种尚未合成的虚拟材料进行模拟计算,预测它们若被合成会拥有什么样的结构和性质。

MP 由美国劳伦斯伯克利国家实验室领衔,自 2011 年启动以来,已积累了超过 15 万种材料的计算结果。每个条目不仅是原子的排列坐标,还附带了丰富“营养成分表”:形成能、带隙(决定导电性)、弹性常数(决定机械强度)、磁矩以及热力学稳定性等。研究员可以在官网免费查询,也可用 API 批量下载——这是它比 ICSD 更开放、更受 AI 社区欢迎的原因。

DFT 计算的核心是求解量子力学的基本方程——薛定谔方程的近似解,它描述电子在原子核周围的运动方式:所有电子的总能量由动能、电子间的库仑排斥、原子核的吸引以及交换关联能构成。

MP 这座“未来图书馆”也有自己的问题:计算是近似的,DFT 对不同材料的误差并不均匀。一些预测的“稳定结构”在实验中可能无法合成;而某些实验已发现的材料,计算却错误地判为不稳定。所以“计算藏书”需要谨慎对待,它适合做大规模筛选和趋势分析,但最终仍需实验验证。

EDFT=Ekin+EH+Exc+EextE_{\text{DFT}} = E_{\text{kin}} + E_{\text{H}} + E_{\text{xc}} + E_{\text{ext}}
这条公式说明计算数据库中的“能量”不是魔法数值,而是量子力学方程的解。每一项都在模拟真实世界的物理作用力。
  1. 动能项 \(E_{\text{kin}}\)电子运动本身携带的能量。
    EkinE_{\text{kin}}
  2. Hartree 能 \(E_{\text{H}}\)电子与电子之间互相排斥的静电能量。
    EHE_{\text{H}}
  3. 交换关联能 \(E_{\text{xc}}\)量子力学特有的“电子社交效应”,包含自旋配对与排斥的修正,是最难精确计算的项。
    ExcE_{\text{xc}}
  4. 外势能 \(E_{\text{ext}}\)原子核对电子的吸引力贡献。
    EextE_{\text{ext}}

查询与接口

借书不能只靠蛮力翻书架,图书馆一定配有检索系统。结构数据库的“检索系统”可以分为三种层级:网页图形界面、REST API 和 Python 客户端工具。网页界面适合人类浏览——输入化学式或元素组合,页面返回结构图形和性质表格;但要给 AI 模型批量投喂数据,必须走自动化的 API 通道。

REST API 是数据库对外开放的“标准借书窗口”:用户通过 HTTP 请求(带参数 URL)即可获取 JSON 或 CIF 格式的结构数据。例如,请求 MP 数据库的某个材料 ID,返回的数据包会包含晶格、原子坐标、能量和带隙等信息。为了降低 Python 开发者的使用门槛,MP 官方还提供了 pymatgen 扩展库中的 MPRester 类——它封装了底层请求细节,几行代码即可批量下载全库数据。

在查询接口层面,除了前面提到的商业 ICSD 和免费 MP,还有几个重要的“兄弟图书馆”:AFLOW(自动流程库)和 OQMD(开放量子材料数据库)同样提供计算结构数据,而 Crystallography Open Database(COD)则开放实验数据。选择哪一座图书馆,取决于你的预算与精度需求。查询返回的常见格式包括 CIF(晶体信息文件)和 POSCAR(VASP 软件的结构输入格式),在喂给模型前通常需要统一转换。

一个典型的 REST 请求会筛选化学体系与性质阈值,相当于在检索系统中输入“关键字 + 过滤条件”。这种按需获取方式让 AI 研究者避免了“扛着一整座图书馆回家”的尴尬——只需要借走当前实验需要的那几本。

上述查询接口的工程意义在于:打通了数据库与模型之间的“输血管”。真正高效的材料发现流程是:通过 API 批量拉取数万条材料 → 本地清洗 → 训练模型 → 用模型筛选候选材料 → 对高潜力候选再做第一性原理验证。

数据质量控制

图书馆买书容易,保证每一本都无错印、无误导却很难。数据库的数据质量控制,就是“图书管理员”的校审工作。即使是权威数据库,也不可避免存在误差:实验数据有测量精度限制,计算数据有不同的收敛标准。若将这些“粗制滥造”的数据直接喂给 AI,模型会学到错误规律——就像学徒读了印刷错误的菜谱,会把“盐放半勺”记成“盐放半桶”。

质量控制第一步是能量收敛检查:DFT 计算需确保能量值不再随计算精度(如 k 点网格密度、截断能)明显变化,这样的能量才是可信的。第二步是条目去重与标准化:同一个结构可能被多个课题组用不同格式提交,或以不同的晶胞设置出现,需要利用 Niggli 标准晶胞或空间群对称性进行归一化,把“同一道菜的不同摆盘”识别出来。第三步是跨库交叉验证:将 MP 的计算结构与其在 ICSD 中的实验结构对比,两者晶格常数与原子坐标差异过大(如超过 1%–2%)时,需要标记异常并核查。

数据筛选可以形式化地理解为“保留满足一组质量标准的记录”。例如仅保留形成能 \(E_{\text{form}}\) 小于 $0$(热力学上倾向于稳定)的条目,并根据 DFT 计算参数的一致性过滤掉异常值:

图书管理员的严谨最终决定了 AI 学徒的“知识底色”。数据清洗看似耗时,却是机器学习项目中最值得投入的环节——一种常见的说法是,数据整理占整个项目 70% 以上的工作量。不干净的数据,再强大的模型也回天乏力。

Eform<0且∣acalc−aexp∣aexp<2%E_{\text{form}} < 0 \quad \text{且} \quad \frac{|a_{\text{calc}} - a_{\text{exp}}|}{a_{\text{exp}}} < 2\%
这从左到右依次是稳定性约束与晶格常数一致性约束。只有同时满足这两条,数据才被录入“干净数据集”。
  1. 稳定性能量约束形成能为负说明结构在热力学上可自发形成。
    Eform<0E_{\text{form}} < 0
  2. 实验-计算偏差率计算晶格常数与实验值的相对偏差应在 2% 以内,超过则数据可靠性存疑。
    ∣acalc−aexp∣aexp\frac{|a_{\text{calc}} - a_{\text{exp}}|}{a_{\text{exp}}}
  3. 两者取交集稳定且与实验吻合的数据,才具有训练价值。
    Eform<0且∣acalc−aexp∣aexp<2%E_{\text{form}} < 0 \quad \text{且} \quad \frac{|a_{\text{calc}} - a_{\text{exp}}|}{a_{\text{exp}}} < 2\%

模型训练应用

终于到关键环节:AI 学徒如何“苦读”图书馆的藏书?晶体与分子不同,它是原子在三维空间无限周期重复的排列。为了让神经网络理解这种周期结构,研究者把晶体表示成“图”:原子是图中的节点,原子间的化学键是边,而晶格则隐含在图的结构里。这样,深度学习中的图神经网络(GNN)就能直接在晶体图上学习“原子如何协作”。

最常见的晶体图神经网络之一——SchNet 或 CGCNN(晶体图卷积神经网络)采用“消息传递”机制:每个原子节点不断从相邻原子“收发消息”,更新自己的特征表示。经过多层传播后,每个节点的特征蕴含了局部的化学环境信息,最终汇聚成整块晶体的性质预测值。

消息传递层的数学表达非常直观:节点的新特征 = 节点旧特征 + 所有邻居特征的加权汇总。

模型培训之前还有一个容易被忽视的步骤——划分训练集与测试集。如果训练集中含有与测试集高度相似的晶体结构(比如同一化学式的不同晶胞表示),模型的分数会虚高,这被称为“数据泄漏”(data leakage)。好比考试时把答案混进了习题集,模拟考满分但真实考试一败涂地。因此,基于空间群或结构相似性去重后再划分数据,是材料机器学习流程中不可逾越的一环。

hi(l+1)=hi(l)+∑j∈N(i)W hj(l)h_i^{(l+1)} = h_i^{(l)} + \sum_{j \in \mathcal{N}(i)} W \, h_j^{(l)}
这就像餐厅里各位厨师(原子节点)互相分享自己的拿手调料配方。经过多轮交流,每个人对其他人的调味习惯了然于心,最终的菜品(晶体的宏观性质)自然更有把握。
  1. 节点特征 \(h_i^{(l)}\)第 \(l\) 层网络中,原子 \(i\) 当前携带的隐藏特征向量。
    hi(l)h_i^{(l)}
  2. 邻居集合 \(\mathcal{N}(i)\)与原子 \(i\) 成键的相邻原子索引集合。
    N(i)\mathcal{N}(i)
  3. 加权矩阵 \(W\)让模型训练的“消息权重”——相当于决定某位邻居的建议应该被听进多少。
    W hj(l)W \, h_j^{(l)}
  4. 特征更新把邻居消息求和加到自身特征上,完成一次信息融合。
    hi(l+1)=hi(l)+∑j∈N(i)W hj(l)h_i^{(l+1)} = h_i^{(l)} + \sum_{j \in \mathcal{N}(i)} W \, h_j^{(l)}

AI 应用场景

高通量虚拟筛选:寻找新型电池电解质

阶段:数据准备 + 模型训练 + 候选生成

解决的问题:传统试错法筛选电池材料需要逐一合成、组装、测试,一个候选周期数周;借助结构数据库,AI 可先在“纸面”上筛掉热力学不稳定或导电性极差的候选,将实验清单从一万个压缩到几十个。

具体案例:某实验室从 MP 数据库下载了 5 万条含 Li 的晶体结构及其离子电导率预测值,训练 CGCNN 模型预测锂离子迁移势垒,最终筛出 3 种此前未被关注的快离子导体,经实验验证电导率提升近一个数量级。

生成模型的训练数据管线:预测全新晶体结构

阶段:基准数据集构建 + 模型评估

解决的问题:生成式模型(如基于扩散模型的晶体生成器)需要大规模、分布均匀的训练集。仅从 ICSD 的 2 万条实验数据训练,生成的结构高度重复;从 MP 抓取 10 万条结构并经稳定性筛选后,生成模型的多样性显著提升。

具体案例:研究者对 MP 数据做形成能负值筛选,并按空间群去重(只保留每种结构原型一条),得到 8 万个“结构原型”用于训练扩散模型。新模型能生成 200 余种尚未收录于数据库但能量上可行的晶体结构。

实验与计算的交叉验证:修正数据库误差

阶段:数据质量控制

解决的问题:计算数据库中的某些结构因 DFT 参数设置不当导致能量偏大、稳定性判断失真。通过将 MP 结构与 ICSD 实验结构做配对比较,自动标记偏差大于 2% 的记录,并重新进行高精度计算修正。

具体案例:一个基于 FAIR 原则的开源工具将 COD(开放晶体数据库)中的约 5 万条实验结构与 MP 匹配,发现约 3% 的晶格常数偏差超过阈值,经复核后修正了这批数据并重新训练模型,预测精度 R² 提高约 0.05。

Python 演示

python88 行
# -*- coding: utf-8 -*-import mathimport random random.seed(42) # 模拟从 Materials Project 查询到的原始记录# 实际使用: from pymatgen.ext.matproj import MPRester#           docs = MPRester("YOUR_API_KEY").summary.search(#               elements=["Li", "O"], num_elements=2)raw_records = [    {"material_id": "mp-1", "formula": "Li2O",     "formation_energy": -6.2, "a": 4.61},    {"material_id": "mp-2", "formula": "LiO2",     "formation_energy": 0.8, "a": 3.92},    {"material_id": "mp-3", "formula": "Li2O2",     "formation_energy": -4.5, "a": 5.19},    {"material_id": "mp-4", "formula": "Li2O",     "formation_energy": -6.1, "a": 4.58},  # 与mp-1重复    {"material_id": "mp-5", "formula": "Li3N",     "formation_energy": -0.9, "a": 3.76},    {"material_id": "mp-6", "formula": "Li3N",     "formation_energy": -0.8, "a": 3.74},  # 重复    {"material_id": "mp-7", "formula": "LiF",     "formation_energy": -5.8, "a": 4.02},    {"material_id": "mp-8", "formula": "LiCl",     "formation_energy": -4.1, "a": 5.14},]  def clean_data(records, max_abs_energy=6.0):    """数据质量控制: 去除能量异常与重复化学式"""    seen = {}    for rec in records:        formula = rec["formula"]        if abs(rec["formation_energy"]) > max_abs_energy:            continue  # 能量异常, 对应误算数据        if formula not in seen:            seen[formula] = rec        else:            # 相同化学式保留能量更低(更稳定)的一条            if rec["formation_energy"] < seen[formula]["formation_energy"]:                seen[formula] = rec    return list(seen.values())  def to_features(rec):    """把结构记录转换为 AI 模型的数值特征"""    e = rec["formation_energy"]    lattice = rec["a"]    # 模拟: 用分子量与晶格常数构建简单描述符    desc = {        "formula": rec["formula"],        "energy": e,        "lattice": lattice,        "volume": lattice ** 3,        "packing": len(rec["formula"]) * 4 / (lattice ** 3),    }    return desc  def split_data(features, test_ratio=0.25):    """按化学式分层划分: 防止同公式跨集合泄漏"""    formulas = {}    for feat in features:        formulas.setdefault(feat["formula"], []).append(feat)    formulas = list(formulas.items())    random.shuffle(formulas)    n_test = max(1, int(len(formulas) * test_ratio))    test_set = [f for _, lst in formulas[:n_test] for f in lst]    train_set = [f for _, lst in formulas[n_test:] for f in lst]    return train_set, test_set  def main():    print("原始数据条数:", len(raw_records))    clean = clean_data(raw_records)    print("清洗后条数:", len(clean))    feats = [to_features(r) for r in clean]    train, test = split_data(feats)    print("训练集条数:", len(train))    print("测试集条数:", len(test))    print("测试集化学式:",          sorted({f["formula"] for f in test}))  if __name__ == "__main__":    main()
目的:演示结构数据从数据库取回后必须经历的清洗、特征化和划分流程,防止 AI 学者踩到“脏数据 + 数据泄漏”两大坑。
  1. clean_data()相当于图书管理员的校审:先丢掉能量异常的记录,再把重复化学式的记录合并,保留能量更低、更稳定的一条。
  2. to_features()把结构记录转成模型能读的数值向量,实际项目多用 pymatgen 计算更丰富的描述符。
  3. split_data()最关键的一步:按化学式分组后再切分,保证同一个化合物的所有条目不会同时出现在训练集和测试集里。
  4. main()串联整条管线,输出各阶段的数据量供核对。

常见误区

误区我直接从 Materials Project 下载数据训练模型,它是权威数据库,数据一定是准的,不用再检查。

正解权威不等于完美。MP 的数据由 DFT 计算产生,存在系统误差:对含过渡金属或强关联体系,形成能可偏差 0.1–0.3 eV/原子。洁净的管线必须包含能量收敛检查和与实验数据的交叉验证,就像图书馆也会不定期召回勘误的图书。

为何常见:数据库官方页面展示的是“经过审核”的结果,容易让人把“审核通过”误解为“绝对精确”。

误区MP 有 15 万条数据且免费,ICSD 收费且只有 28 万条,直接用 MP 不就行了?

正解两者服务不同目的。ICSD 提供的是真实合成过的结构,是生成模型输出的“终极裁判”;MP 提供的是“可能存在”的结构,覆盖范围广但未经实验证实。对生成的结构做稳定性判断可以用 MP,但要评估“是否已被合成”,必须查实验库。

为何常见:初学者更容易接触到免费且接口友好的 MP,从而低估了实验数据在验证环节的独特价值。

误区预测不准?再多下载一些数据,把 MP 里所有含目标元素的结构都抓下来训练。

正解无差别添加数据反而引入噪声和分布偏移。比如 MP 中大量高形成能的亚稳定结构会干扰模型对“稳定构型”的学习。数据质量比数量重要,“少而精”的经过筛选与去重的数据集,往往优于“多而杂”的全量数据。

为何常见:深度学习的直觉是数据量越大越好,但前提是数据分布一致、标签可靠。材料数据的系统性偏差比图像分类任务严重得多。

误区我随机打乱数据后 80/20 划分,测试集里有一个化合物和训练集成分相同、只是晶胞设置不同,这很常见,不影响评估。

正解这就是典型的数据泄漏。模型在训练时见过几乎一模一样的结构,测试分数虚高。真实场景下预测的是“从未见过的材料”,所以必须按化学式或结构原型去重后再划分。

为何常见:随机划分在图像任务中通常合理,因为图片之间没有强烈的物理底层关联;但材料结构之间存在化学式、空间群的强关联,容易忽略。

误区做 AI 研究只要在网站上搜几个结构下载下来就行,不需要学 API。

正解训练模型需要成百上千条结构化数据,手动下载既不现实也易错(比如遗漏晶格参数)。用 MPRester 或 REST API 批量拉取、统一格式,才是可复现且高效的工程化方法。网页端适合人工复核,自动化流程必须依赖 API。

为何常见:网页图形界面给人直观、易上手的印象,初学者容易停留在“手动档”而忽略“自动档”的必要性。

面试题

Q1. 晶体结构数据库的核心作用是什么?

单选题 · easy

  • A.存储实验测得的晶体图片
  • B.为AI提供训练数据与验证基准← 正确答案
  • C.替代实验合成所有新结构
  • D.仅用于计算材料的电子性质

答案:B。结构数据库的核心角色是“菜谱图书馆”——它为模型提供训练素材,也为预测结果提供对照基准。存储图片不是其重点;数据库无法替代实验合成;计算材料的电子性质只是后续应用之一,并非根本功能。

Q2. ICSD 数据库的主要数据来源是什么?

单选题 · easy

  • A.计算机模拟的理论结构
  • B.人工智能生成的虚拟晶体
  • C.真实实验测定与衍射分析← 正确答案
  • D.化学教科书的摘录汇编

答案:C。ICSD 如同“历史档案馆”,收录的是通过 X 射线或中子衍射等实验手段实际测得的结构。计算机模拟、AI 生成与教科书摘录都不是 ICSD 的采集渠道。

Q3. Materials Project 数据库相比 ICSD 的突出优势是?

单选题 · easy

  • A.全部数据来自实验测量
  • B.数据免费用 API 批量获取← 正确答案
  • C.收录数量远超实验数据库
  • D.所有结构都能被直接合成

答案:B。MP 是“计算图书馆”,最吸引 AI 学者的是免费开放且支持 API 批量下载。收录数量并非衡量优势唯一标准,且 MPCB 的结构不一定能被实际合成,更不是实验测量数据。

Q4. 结构数据质量控制中“跨库交叉验证”的目的是?

单选题 · mid

  • A.检查数据的著作权归属
  • B.比对计算与实验结构的偏差← 正确答案
  • C.删除所有能量为负的化合物
  • D.将结构统一转换为 CIF 格式

答案:B。交叉验证就像让图书管理员与原作者核对稿件——将 MP 的计算结构与 ICSD 实验结构对比晶格常数与原子坐标,偏差过大时标记异常。著作权、删负能量和格式转换都不是跨库验证的核心目标。

Q5. 使用消息传递图神经网络时,节点特征更新的核心公式是?

单选题 · mid

  • A.特征随机初始化且不变
  • B.加权邻居特征汇总加自身← 正确答案
  • C.仅取最大邻居特征作输出
  • D.直接拼接所有邻居的坐标

答案:B。消息传递的要点是“融会贯通”:新特征 = 自身特征 + 邻域特征加权求和。随机不变、取最大或直接拼接坐标都不是标准的消息传递更新方式。

Q6. 以下哪些属于结构数据质量控制措施?

多选题 · mid

  • A.检查 DFT 能量是否收敛← 正确答案
  • B.用 Niggli 标准化去重晶胞← 正确答案
  • C.提高测试集占比至 80%
  • D.与实验结构对比交叉验证← 正确答案

答案:ABD。质量控制是“图书校审”:能量收敛确保计算可信,Niggli 标准化处理重复条目,交叉验证确保计算与实验一致。测试集占比属于模型评估策略,不属于数据质量控制范畴。

Q7. 训练/测试集划分时防止数据泄漏的关键是?

单选题 · mid

  • A.将样本按时间顺序排序
  • B.按化学式或结构原型去重← 正确答案
  • C.让测试集占比尽量小
  • D.用全部数据交叉验证

答案:B。数据泄漏就像“考试答案混进习题集”。若同一材料以不同晶胞或同分异构形式同时出现在两集合中,分数虚高。按化学式或结构原型划分,确保测试集是真正“未见过的材料”。

Q8. 以下哪些描述符合 Materials Project 的数据特征?

多选题 · mid

  • A.由 DFT 高通量计算生成← 正确答案
  • B.所有结构均经实验验证
  • C.包含形成能与带隙信息← 正确答案
  • D.完全取代实验数据库

答案:AC。MP 是“计算书架”,数据来自 DFT 计算并附有能量、带隙等丰富属性。但它并未经实验验证,更不能取代 ICSD 这类实验库——两者是互补关系。

Q9. 某材料在 MP 中计算形成能为 -0.05 eV/atom,实验测定晶格常数与计算值偏差 3.5%,合理处理方式是?

单选题 · hard

  • A.采信计算值并部署模型
  • B.标记异常并重新检查计算参数← 正确答案
  • C.删除该材料所有相关数据
  • D.忽略晶格常数只看形成能

答案:B。3.5% 的晶格偏差超过 2% 的常规容忍线,说明计算参数可能不匹配。此时应像图书管理员“抽回问题书目”一样标记异常,重新用更高精度或更合适的泛函计算,而不是弃之不用或盲目采信。

Q10. 材料机器学习中“描述符”应包括哪些层次的信息?

多选题 · hard

  • A.原子种类与电负性特征← 正确答案
  • B.晶格常数与空间群对称性← 正确答案
  • C.形成能与带隙等能量属性← 正确答案
  • D.论文发表速度与影响力

答案:ABC。描述符是模型的“输入语言”,应覆盖原子属性、结构特征与能量属性三层次。发表速度与科研影响力与材料物理无关。手工构造简单描述符,或用 GNN 自动从结构学习特征,均可支撑预测任务。