章节 01
导读 / 主楼:3DTMC-LLM:将3D分子几何与大语言模型桥接的过渡金属配合物研究
一个将3D分子结构编码器与Qwen3大语言模型融合的多阶段训练框架,用于过渡金属配合物的性质预测、能垒回归和生成式任务
正文
一个将3D分子结构编码器与Qwen3大语言模型融合的多阶段训练框架,用于过渡金属配合物的性质预测、能垒回归和生成式任务
章节 01
一个将3D分子结构编码器与Qwen3大语言模型融合的多阶段训练框架,用于过渡金属配合物的性质预测、能垒回归和生成式任务
章节 02
章节 03
过渡金属配合物(Transition Metal Complexes, TMCs)是催化、材料科学和药物化学的核心研究对象。传统上,TMC的性质预测依赖于密度泛函理论(DFT)等量子化学计算方法,这些方法虽然准确但计算成本极高,难以大规模筛选。
近年来,机器学习方法在分子性质预测方面取得了显著进展,但大多数方法仅利用分子的一维SMILES字符串或二维图结构,忽略了关键的三维几何信息。对于过渡金属配合物而言,3D几何构型(如配位几何、键角、空间位阻)对化学性质有着决定性影响。
3DTMC-LLM项目正是为了解决这一问题,它将3D分子结构编码器与大语言模型(默认Qwen3-4B-Instruct)相融合,构建了一个能够"理解"分子3D几何的生成式AI系统。
章节 04
项目采用多阶段训练策略,逐步将3D结构信息注入到语言模型中:
3D编码器预训练:使用掩码原子预测、坐标预测和原子对距离预测作为预训练目标,让编码器学习3D结构的内在表示。编码器基于Uni-Core分布式训练框架,支持DeepSpeed多GPU训练。
Stage 1——投影层训练:将预训练的3D编码器与LLM连接,通过单Token投影层将3D结构嵌入映射到LLM的嵌入空间。此阶段LLM参数冻结,仅训练投影层。输入格式为"指令+SMILES+3D结构→描述"。
Stage 2——全参数微调:在Stage 1基础上,对LLM施加LoRA(低秩自适应),同时继续训练3D编码器和投影层。训练数据包括增强描述(通过LLM润色的文本)和自动生成的问答对。
Stage 3——下游任务微调:统一的训练器用于所有回归任务,包括偶极矩、极化率、HOMO-LUMO能隙、Vaska能垒和Ni配合物对映选择性等。
章节 05
项目设计了丰富的消融实验来验证各组件的贡献:
| 消融模式 | 3D编码器 | 输入格式 | 投影方式 |
|---|---|---|---|
| stage1(默认) | 训练 | 指令+SMILES+3D | 单Token |
| 3d_only | 训练 | 指令+3D(无SMILES) | 单Token |
| multi_token | 训练 | 指令+SMILES+3D | 可学习多Token查询 |
| freeze_3d | 冻结 | 指令+SMILES+3D | 单Token |
| random_3d | 随机嵌入 | 指令+SMILES+随机3D | 单Token |
这些消融实验系统地评估了3D信息、SMILES文本和训练策略对最终性能的贡献。
章节 06
TMC-Prop3D:基于OMol25(Meta开源的大型有机分子数据集)构建的TMC 3D结构语料库,以LMDB格式存储。
tmQMg:来自hkneiding/tmqmg的过渡金属配合物性质数据集,包含偶极矩、极化率和HOMO-LUMO能隙等性质。项目提供了预定义的随机划分和基于FAISS的相似性控制(OOD)划分。
Vaska's Space:用于H₂活化能垒预测的Vaska配合物数据集。
NiComplex:五配位四方锥Ni配合物的对映选择性数据集,通过MetalloGen从配体/底物XYZ片段组装。
数据增强工作流包括:
enrich_description.py:调用OpenAI兼容LLM润色描述文本generate_QA_pairs.py:从知识源文件(PDF/TXT/Markdown)生成问答对章节 07
项目支持多种下游回归任务:
| 任务 | 预测目标 | 数据集 |
|---|---|---|
| dipole_moment | 偶极矩(Debye) | tmQMg |
| polarisability | 极化率(Bohr³) | tmQMg |
| homo_lumo_gap | HOMO-LUMO能隙(Ha) | tmQMg |
| vaska_barrier | H₂活化能垒(kcal/mol) | vaskas-space |
| nicomplex_ddg | 对映选择性ΔΔG(kcal/mol) | NiComplex |
章节 08
项目使用DeepSpeed进行多GPU分布式训练,所有超参数集中在train_defaults.py中管理。推理通过统一的inference.py评估器完成。
# Stage 1训练
cuda --num_gpus=2 Stage1.py \
--model_name Qwen/Qwen3-4B-Instruct-2507 \
--train_lmdb /path/train.lmdb --val_lmdb /path/valid.lmdb \
--3D_encoder_ckpt /path/to/encoder.pt \
--3D_encoder_dict 3D_encoder_dict.txt \
--output_dir /path/to/stage1_out
# Stage 3下游任务
cuda --num_gpus=2 Stage3.py \
--task homo_lumo_gap \
--Stage2_ckpt /path/to/stage2_checkpoint \
--train_lmdb /path/train.lmdb --val_lmdb /path/valid.lmdb
预训练权重发布在Hugging Face的Reecy/3DTMC-LLM仓库中。