YAML HEAD
开源许可类型: Apache License 2.0
任务类型: 分子热力学性质-溶解度常数预测
框架: Pytorch
支持的语言类型: - 中文 - 英文
评估指标: - MAE - R2
模型所属领域: 物质科学
燧人大模型介绍
模型描述
燧人大模型是一套面向分子原子尺度的深度学习模型,基于 PyTorch 框架构建,能够同时支持各种热力学性质的预测,包括沸点、临界性质、热容、扩散系数、燃烧焓、生成焓、溶解度、粘度等。
溶解度常数(Solubility Constant)通常指在一定温度和压力下,描述物质在溶剂中溶解能力的热力学参数。根据溶质和体系不同,其定义和形式有所差异,常见于气体或难溶电解质的溶解平衡。
应用场景:
-
环境科学:
预测 O₂、CO₂ 在水体中的溶解量,影响水质、生物呼吸和碳循环。 -
化工与制药:
设计反应溶剂、结晶过程和药物溶解性优化。 -
地质与海洋学:
研究矿物沉淀(如碳酸钙)、海底沉积和水垢形成。 -
生物系统:
分析气体(如氧气、二氧化碳)在血液中的运输与交换。 -
水处理:
控制重金属离子沉淀(如通过调节 pH 影响 ( K_{sp} )),实现净化。
期望模型使用方式以及适用范围
- 科研人员:在材料设计、分子筛选过程中快速获取热力学性质预测值,辅助实验设计和评估。
- 工程应用:在工艺模拟与安全评估环节中,用于替代部分昂贵或不精确的实验测量。
- 教学场景:作为化工、材料、热物性课程的辅助工具。
⚠️ 模型适用于 有机小分子,不适合直接推广到 复杂聚合物、大分子材料或金属体系,模型支持的元素种类包括(H,C,N,O,F,P,S,Cl,Br,I)。
如何使用
环境安装
torch>=2.0
torch-geometric
pip install -r requirements.txt
1. 微调
用户可以基于已有的预训练权重,在自己的数据集上进一步微调,以适配特定分子空间或特殊热力学性质。
请将微调数据集放入data/{name}/raw目录下,提供名为 {name}_train.csv, {name}_valid.csv, {name}_test.csv 三个数据文件,每个文件包含两列,分别为“SMILES”列和"values",“SMILES”表示分子的结构式(str格式),"values"表示性质数值(float格式)。
微调代码示例:
python train.py --name solubility_parameter --epochs 10 --batch_size 64 --lr 1e-3 --checkpoint path --loss l1 --output_dir checkpoints
参数说明:
-
name:性质名称或实验名称,用于产生对应checkpoint文件
-
epochs:训练轮次
-
batch_size:一次性处理的样本批次大小
-
lr:学习率
-
checkpoint:预训练模型路径
-
loss:训练损失函数
-
outpu_dir:微调模型保存路径
2. 推理
我们提供了微调模型,可以直接调用进行推理。
代码范例
python infer.py --device cuda --model_path ./chekpoints/solubility_parameter --smiles "CC=O"
参数说明
-
device:推理设备,使用GPU/CPU进行推理
-
model_path:微调模型的存储路径
-
smiles:待推理的分子SMILES表达式
模型局限性以及可能的偏差
-
数据覆盖不足:训练数据集主要覆盖常见有机小分子,对于稀有化合物或大分子体系预测精度可能不足。
-
温度/压力依赖性:模型预测的是标准条件下的物性,未显式建模温压依赖效应。
-
泛化性:在实验数据较少的性质上,模型预测可能偏差较大。
模型训练
1. 训练数据介绍
训练数据来自开源化学数据库与部分实验文献整理。 数据包括:
-
分子结构(SMILES)
-
对应实验热力学性质值
2. 预处理
-
使用 RDKit 将 SMILES 转换为分子图表示
-
构建分子图的2d图表示以及3d分子坐标
-
数据标准化与归一化,保证不同物性的数值范围适配神经网络训练
3. 训练
-
框架:PyTorch + PyTorch Geometric
-
优化器:AdamW
-
损失函数:MAE
-
评估指标:MAE、R²
-
每个热力学性质单独进行微调,存储在 ./checkpoints/ 目录下
模型评估
在内部测试集上,模型在不同任务上表现如下:
| 任务 | MAE | R² |
|---|---|---|
| 溶解度常数预测 | 0.44376 | 0.91557 |
开源协议
本项目采用 Apache License 2.0 开源许可证