粉末X射线衍射数据的自动化晶体学分析。
AlphaDiffract 是一个多任务一维 ConvNeXt 模型,它接收粉末X射线衍射(PXRD)图谱,并同时预测:
| 输出 | 描述 |
|---|---|
| 晶系 | 7分类(三斜晶系 → 立方晶系) |
| 空间群 | 230分类 |
| 晶格参数 | 6个值:a、b、c(Å),α、β、γ(°) |
本版本包含一个单一模型,该模型仅使用Materials Project的结构(公开可用数据)进行训练。它不是论文中报道的10模型集成——详见性能部分。
pip install torch safetensors
huggingface-cli download linked-liszt/OpenAlphaDiffract --local-dir OpenAlphaDiffractimport torch
import numpy as np
from OpenAlphaDiffract.model import AlphaDiffract
model = AlphaDiffract.from_pretrained("OpenAlphaDiffract", device="cpu")
# 8192-point intensity pattern, normalized to [0, 100]
pattern = np.load("my_pattern.npy").astype(np.float32)
pattern = (pattern - pattern.min()) / (pattern.max() - pattern.min() + 1e-10) * 100.0
x = torch.from_numpy(pattern).unsqueeze(0)
with torch.no_grad():
out = model(x)
cs_probs = torch.softmax(out["cs_logits"], dim=-1)
sg_probs = torch.softmax(out["sg_logits"], dim=-1)
lp = out["lp"] # [a, b, c, alpha, beta, gamma]
print("Crystal system:", AlphaDiffract.CRYSTAL_SYSTEMS[cs_probs.argmax().item()])
print("Space group: #", sg_probs.argmax().item() + 1)
print("Lattice params:", lp[0].tolist())完整的可运行示例请参见 example_inference.py。
| 文件 | 描述 |
|---|---|
model.safetensors | 模型权重(safetensors 格式,约 35 MB) |
model.py | 独立模型定义(纯 PyTorch,无 Lightning) |
config.json | 架构和训练超参数 |
maxsub.json | 空间群子群图(230×230,用作已注册缓冲区) |
example_inference.py | 端到端推理示例 |
LICENSE | BSD 3-Clause 许可证 |
(batch, 8192) 或 (batch, 1, 8192)一维 ConvNeXt 骨干网络,改编自 Liu et al. (2022):
Input (8192) → [ConvNeXt Block × 3 with AvgPool] → Flatten (560-d)
├─ CS head: MLP 560→2300→1150→7 (crystal system)
├─ SG head: MLP 560→2300→1150→230 (space group)
└─ LP head: MLP 560→512→256→6 (lattice parameters, sigmoid-bounded)这是一个单一模型,仅在 Materials Project 数据集上训练。 最佳验证检查点(第 11 轮)的指标:
| 指标 | 模拟验证集 | RRUFF(实验数据) |
|---|---|---|
| 晶系准确率 | 74.88% | 60.35% |
| 空间群准确率 | 57.31% | 38.28% |
| 晶格参数 MAE | 2.71 | — |
论文中报告了更高的数值,该结果来自于一个在 Materials Project + ICSD 组合数据上训练的 10 模型集成。本开放权重版本仅涵盖公开可用的训练数据。
| 数据 | ~146k 个 Materials Project 结构,每个结构进行 100 次 GSAS-II 模拟 |
| 数据增强 | 泊松 + 高斯噪声,重缩放至 [0, 100] |
| 优化器 | AdamW(学习率=2e-4,权重衰减=0.01) |
| 学习率调度器 | CyclicLR(triangular2 模式,6 轮为半个周期) |
| 损失函数 | CE(晶系)+ CE + GEMD(空间群)+ MSE(晶格参数) |
| 硬件 | 1× NVIDIA H100,float32 |
| 批大小 | 64 |
@article{andrejevic2026alphadiffract,
title = {AlphaDiffract: Automated Crystallographic Analysis of Powder X-ray Diffraction Data},
author = {Andrejevic, Nina and Du, Ming and Sharma, Hemant and Horwath, James P. and Luo, Aileen and Yin, Xiangyu and Prince, Michael and Toby, Brian H. and Cherukara, Mathew J.},
year = {2026},
eprint = {2603.23367},
archivePrefix = {arXiv},
primaryClass = {cond-mat.mtrl-sci},
doi = {10.48550/arXiv.2603.23367},
url = {https://arxiv.org/abs/2603.23367}
}BSD 3-Clause — 版权所有 2026 UChicago Argonne, LLC。