【MIIT program】Feature/add OMatG model - #288
Conversation
|
Thanks for your contribution! |
OMG 对齐脚本3.2 前向对齐测试 (
|
leeleolay
left a comment
There was a problem hiding this comment.
models/omg下的文件过于臃肿,套件内是否已有可以复用的模块
b325925 to
a766fd4
Compare
a766fd4 to
bdaa0ce
Compare
已经优化代码,主要是原版代码的代码就停多的。手搓的代码比较多。 collate_fn 不能直接兼容,增加了注释说明。 其他部分已经优化 |
辛苦做一下代码重构,大部分功能套件已有,需遵循同一套实现逻辑,额外情况才需修改增加已有功能 |
进行了一轮重构,放弃了跟原版的逻辑一致。 |
放弃了之前的 1:1的代码转译的paconvert的代码模式; 此外,这个项目有点特殊,有50多个权重;全部平行放在 |
There was a problem hiding this comment.
大部分数据集套件内已有实现,不建议新实现,如果是原先的数据结构/tensor缺失该模型用到的字段,可以在原先的数据集中修改添加
There was a problem hiding this comment.
和已有config格式并不一致,没有trainer,sampler
| return cellpar_to_cell(paddle.concat((lengths, angles)).numpy()) | ||
|
|
||
|
|
||
| class IndependentSampler: |
| _LATTICE_PARAMS = { | ||
| "carbon_24": { | ||
| "means": [0.9852757453918457, 1.3865314722061157, 1.7068126201629639], | ||
| "stds": [0.14957907795906067, 0.20431114733219147, 0.2403733879327774], | ||
| }, | ||
| "mp_20": { | ||
| "means": [1.575442910194397, 1.7017393112182617, 1.9781638383865356], | ||
| "stds": [0.24437622725963593, 0.26526379585266113, 0.3535512685775757], | ||
| }, | ||
| "mpts_52": { | ||
| "means": [1.6565313339233398, 1.8407557010650635, 2.1225264072418213], | ||
| "stds": [0.2952289581298828, 0.3340013027191162, 0.41885802149772644], | ||
| }, | ||
| "perov_5": { | ||
| "means": [1.419227957725525, 1.419227957725525, 1.419227957725525], | ||
| "stds": [0.07268335670232773, 0.07268335670232773, 0.07268335670232773], | ||
| }, | ||
| "alex_mp_20": { | ||
| "means": [1.5808929163076058, 1.74672046352959, 2.065243388307474], | ||
| "stds": [0.27284015410437057, 0.2944785731740152, 0.30899526911753017], | ||
| }, | ||
| } |
There was a problem hiding this comment.
写在这里不合适,且这些事数据集的分布,应该是写在dataset里或config。
There was a problem hiding this comment.
模型注册未按照套件内方式;看起来没有使用套件已有的diffusion已有的scheduler组件
| raise | ||
|
|
||
|
|
||
| def get_omatg_model_url(dataset: str, variant: str) -> str: |
There was a problem hiding this comment.
扩散模型orflow matching的相关实现吗,请复用已有的或者新增的放到合适的位置
OMG 模型迁移
1. 概述
将 OMG (Open Materials Generation) 晶体生成模型从 PyTorch 框架迁移至 PaddlePaddle 框架。
OMG 是一个基于随机插值(Stochastic Interpolants)框架的晶体结构生成模型,发表于 ICML 2025 和 NeurIPS 2025。该模型支持两种生成模式:
百度星河在线项目demo: https://aistudio.baidu.com/projectdetail/10382182
2. 权重信息
2.1 原版权重
原始 PyTorch 权重托管在 HuggingFace 上:
总权重数: 52 个
2.2 转换权重
基于 5 个数据集的权重已全部转换为 PaddlePaddle 格式:
aistudio的地址在:https://aistudio.baidu.com/modelsdetail/47974 ,并且在代码中内置http版本的下载地址
ppmat/models/omg/__init__.py包含注意: MPTS-52-CSP 数据集缺少以下 3 个变体(原始发布版本不包含,不是迁移过程漏掉的):
3. 精度对齐验证
3.1 对齐目标
OMG 模型满足以下三个对齐目标:
3.2 前向精度对齐
测试设置
测试结果
完整精度测试结果(平均绝对误差 (Mean Absolute Error))
3.3 反向对齐
测试设置
测试结果
Loss 组件验证:
3.4 生成指标对齐
测试设置
测试结果
多样性指标:
质量指标: