
本文收录于专栏化学大模型—— 专栏系统覆盖化学大模型的原理、评测与工程落地点击订阅可跟踪后续更新。你在用 LLM 搭化学 agent让模型输出一个分子结构结果 SMILES 字符串三天两头解析失败、括号不配平、环编号乱飞。这篇解读牛津统计系 Runcie 等人的 arXiv 论文2605.0182278,045 道题、224,055 条模型响应、4 个前沿模型系统比较 6 种分子表示格式——SELFIES 和 InChI 直接出局显式列出原子和键的 MolJSON 在翻译92.3%、图推理98.5%、约束生成95.3%三类任务上全面胜出且模型从未在它上面训练过。文中给出三种格式的选型决策表、pip 包 4 行上手法、8 分子 round-trip 实测、token 成本账单输入贵 23 倍、推理省 1.8 倍以及 MiniMax-M3 迷你复现与本地 12–14B 小模型对照实测全灭——MolJSON 的收益目前只在 API 级模型上兑现。读完你能直接判断自己的管线该不该换格式、该换输入端还是输出端。关键字MolJSONSMILES化学大模型分子表示结构化输出IUPACRDKit约束生成MolJSON为什么换格式SMILES 生成易错SELFIES/InChI 不可用MolJSON 是什么atomsbonds 显式图兼容结构化输出论文证据翻译 92.3%路径 98.5%生成 95.3%代价与边界token 膨胀 23 倍无立体化学怎么上手pip install moljson四行代码目录§0. 相关教程与核心文献 §1. 痛点LLM 写不对 SMILES §2. 六格式横评 §3. MolJSON 的设计 §4. 三大任务结果 §5. 本机实测 §6. 局限与选型 §7. 结语§0. 相关教程与核心文献资源链接与本文关系Runcie, Imrie, Deane.Molecular Representations for Large Language Models. arXiv:2605.01822 (2026)arXiv 全文本文解读的论文oxpig/MolJSONGitHubschema 官方转换脚本oxpig/MolJSON-dataGitHub全部题目、模型响应与分析脚本moljsonPyPI官方 pip 包0.1.0, BSD-3-ClauseRuncie et al.J. Chem. Inf. Model.66(1):216–227 (2026)10.1021/acs.jcim.5c02145同组前作 ChemIQ 基准最短路径题型的来源Weininger.J. Chem. Inf. Comput. Sci.28(1):31–36 (1988)10.1021/ci00057a005SMILES 原始论文§1. 痛点LLM 读得懂分子写不对字符串如果你在搭化学相关的 LLM 应用——结构解析助手、逆合成 agent、性质预测管线——大概率踩过这个坑让模型输出一个分子它给你的 SMILES 字符串里环闭合数字对不上、括号层级错乱RDKit 一解析就抛异常。这不是你 prompt 写得不好。牛津团队这篇论文把问题量化了同样的分子理解能力换一种输出格式准确率可以从 64% 跳到 95.3%——差距比换一档模型还大。分子本质是图原子节点、键边而 LLM 是序列模型必须把图拍扁成文本。问题就在于SMILES 靠遍历顺序、IUPAC 靠命名规则这两套系统都是为人和传统化学软件设计的不是为 LLM 设计的。给 LLM 一串Cn1c(O)c2c(ncn2C)n(C)c1O它得先在心里把字符串还原成分子图才能开始推理——这个解码环节本身就会出错还白白烧掉大量推理 token。§2. 六格式横评SELFIES 和 InChI 直接出局论文先用 420 个分子做了 6 种格式的双向互译GPT-5-mini12,600 条提示第一轮就把两个理论派选手淘汰了格式实测表现死因SELFIES2,100 次输出中 1,033 次返回空串753 次尝试里只有 394 个合法字符串其中仅13 个与目标分子匹配——且全是无分支、无环的直链分子在公共语料里太罕见模型根本没学会写它InChI2,100 次输出中 1,369 次为空695 次非空但非法仅 36 个合法 InChI其中 30 个是甲烷无一命中目标分子为数据库唯一标识设计分层编码对 LLM 过于复杂MOL V2000→MolJSON 方向 81.7%反向只有 22.1%高分是假象所有答对的输出都照搬了 MOL 文件的原子编号模型只是在做文本搬移不是理解分子图反向时 counts line 格式要求太严老写错剩下的 SMILES、IUPAC、MolJSON 进入主赛程9,201 个分子PubChem 2025 年 10–12 月新入库的分子在 GPT-5 发布后上传降低训练污染风险的双向翻译共 55,206 条提示。§3. MolJSON 的设计把解码这一步省掉MolJSON 的思路直接到近乎粗暴分子图就是原子列表 键列表那就原样告诉模型别让人家从字符串里猜。本机实测moljson 0.1.0 RDKit乙酸的转换输出与论文 Figure 1 完全一致fromrdkitimportChemfrommoljsonimportMolToJSON,MolFromJSON,CheckRoundTrip molChem.MolFromSmiles(CC(O)O)print(MolToJSON(mol))输出{atoms:[{id:C1,element:C},{id:C2,element:C},{id:O1,element:O},{id:O2,element:O}],bonds:[{source:C1,target:C2,order:1.0},{source:C2,target:O1,order:2.0},{source:C2,target:O2,order:1.0}]}设计上有四个关键点原子 ID 唯一即可顺序无关——分子身份由原子和键的集合决定规避了 SMILES 对遍历顺序的依赖隐式氢——绝大多数氢按标准化合价规则推断只有芳香氮上的氢需要用aromatic_n_h字段显式记录本机实测吡咯c1c[nH]cc1正确触发{atom_id: N1, hcount: 1}稀疏电荷表——charges字段只记录非零形式电荷本机实测带电荷的吡唑鎓分子正确生成formal_charge: 1天然适配结构化输出——MolJSON 本身就是一个 JSON Schema可以直接塞进 OpenAI/Anthropic API 的结构化输出模式让模型只能输出合法结构语法层面就锁死了最后一点其实是隐藏大杀器。本机复现时我故意不开 schema 约束、让 MiniMax-M3 自由生成它把原子 ID 写成了裸整数{id: 1}而不是字符串官方解析器MolFromJSON直接拒收——没有 schema 强制连id 必须是字符串这种细节都会翻车开了结构化输出这类错误从机制上就不存在。§4. 三大任务MolJSON 赢在哪赢多少论文用三类任务把输入能力和输出能力拆开测全部模型开结构化输出、低推理努力档。任务一双向翻译输入输出联合。GPT-5 的核心数字SMILES→MolJSON92.3%而 SMILES→IUPAC 只有 43.5%IUPAC→MolJSON71.0%而 IUPAC→SMILES 只有 43.7%。规律清晰得刺眼决定准确率的是输出格式——模型从 SMILES/IUPAC 里读出分子的能力其实不差瓶颈在写出来。翻译到 MolJSON 的准确率约为翻译到 SMILES/IUPAC 的 1.6–2.1 倍。任务二最短路径推理输入格式单独测2,919 个含两个卤素的分子。MolJSON 是全部模型的最佳输入格式还更省推理 token模型SMILESIUPACMolJSONSMILES tokIUPAC tokMolJSON tokGPT-592.2%82.7%98.5%185415871021GPT-5-mini53.3%63.4%86.6%1263881615GPT-5-nano42.9%42.7%67.7%168713511150数据为论文附录 Table 4±95% CI 略。MolJSON 是预解码的模型可以直接在图上做搜索推理 token 约为 SMILES 的 1/1.8。任务三约束生成输出格式单独测494 组含 F/Cl/Br 各一个、路径长度、环数环拓扑约束。GPT-5SMILES 64.0%、IUPAC 76.3%、MolJSON95.3%。按环拓扑分层后差异更夸张论文 Table 6双环稠环体系上GPT-5 用 SMILES 生成只有 41.5%IUPAC 56.4%MolJSON 91.5%——复杂拓扑上优势翻倍。GPT-5-nano 这种小模型更惨双环任务用 SMILES/IUPAC 输出时准确率不足 1.4%换 MolJSON 能到 13.8–19%。稠环同时是 IUPAC 的死穴最短路径任务中GPT-5 读 IUPAC 在无稠环分子上 96.9%遇到稠环崩到 66.2%而 MolJSON 两种情况下都是 98.5%纹丝不动。还有一个耐人寻味的发现模型写 MolJSON 时可以自选原子 ID。输入是 SMILES 时GPT-5 生成的 ID 基本是a1, a2, a3式的朴素编号输入是 IUPAC 名称时22.1% 的 ID 变成了C_acyl、O_carb这种带化学语义的官能团标签。作者推测这些富 ID实际上是模型思维链里的图 token——它在边推理边给原子贴标签。这提示了一个方向如果训练 LLM 用显式图表示来思考提升的可能不只是翻译准确率。§5. 本机实测pip 四行上手round-trip 全过但 token 贵 23 倍官方 PyPI 包一行装好依赖只有 RDKitpipinstallmoljson# 0.1.0, BSD-3-Clause, Python 3.10本机实测LinuxRDKit 2024.3.5乙酸、苯甲酸、萘、咖啡因、螺环、布洛芬、阿司匹林、二甲双胍、金刚烷等 8 个分子CheckRoundTripSMILES→MolJSON→SMILES8/8 全部通过。但 MolJSON 有一个论文里没强调的代价——输入侧体积膨胀。本机用 tiktokeno200k_base实测8 个分子合计MolJSON 输入是 SMILES 的22.9 倍 token字符数 35.9–53.3 倍。账单要两头算输入 token 贵 23 倍推理 token 省 1.8 倍——对重推理任务路径搜索、约束生成可能净赚对轻任务大批量如大规模库过滤输入成本会实打实上升。顺手用 MiniMax-M3 做了迷你复现3 个双卤素分子 × 2 格式 3 个翻译题非推理模式样本小仅作演示最短路径题两种格式打平各 2/3小样本噪声水平翻译题完美复刻论文方向——SMILES→MolJSON 两题全对萘、含芳香 NH 的吡咯连aromatic_n_h字段都正确触发反向 MolJSON→SMILES 的咖啡因却写错。MolJSON 好写、SMILES 难产这个结论在一个从未为 MolJSON 训练过的国产模型上也成立。本地小模型是另一个故事消费级 GPU 上 Ollama 实测。用本机 deepseek-r1:14b64k 版和 gemma3:12b 跑同一套题gemma3 最短路径 0/6r1 路径 0/4、翻译 0/4——全灭。错误模式和论文里 SMILES 的失败方式如出一辙r1 把萘写成C1C2C3C4C5C6C7C8C9C10C1C4C9这种荒谬长链把吡咯c1c[nH]cc1写成吡啶c1ccncc1NH 直接丢了gemma3 则每个题只生成 7–12 个 token 纯粹瞎猜数字。速度也不实用r1 单题思维链 500–1500 token约 6 token/s一道题 1.5–7 分钟萘的路径题想了 600 秒没想完超时。对照论文里 GPT-5-nano最小的 API 模型在双环拓扑上 SMILES 输出也只有 1.4% 准确率本地 12–14B 级模型能力还在其之下——MolJSON 的收益目前只在 API 级前沿模型上兑现本地小模型做分子结构任务换什么格式都救不了。§6. 局限与选型什么场景该换什么场景别动论文自己坦承的边界只测了翻译/路径/约束生成三类基础任务没有上反应预测、性质预测等真实下游MolJSON 当前版本不含立体化学、原子坐标、多组分体系schema 本身也只是起点键用 source/target 还是二元素列表、氢是否全部显式列出都有讨论空间。另外注意一点实验由 OpenAI 提供 API 额度评测以 GPT-5 系列为主Claude Haiku 4.5 只跑了 420 分子的小集趋势一致。我的选型建议场景建议理由LLM agent 输出分子结构换 MolJSON生成侧收益最大64%→95.3%schema 锁死语法错误结构解析/图推理类问答换 MolJSON 输入98.5% vs 92.2%还省 1.8 倍推理 token大规模库的高通量粗筛保持 SMILES输入 token 便宜 23 倍任务浅不需要深图推理数据库存储/化学软件生态保持 SMILES/InChIMolJSON 不是为存储和检索设计的含立体化学/3D 坐标的任务暂时留在 MOL/SDFMolJSON 还没覆盖用 SELFIES 做生成可以死了这条心前沿模型写对率不足 2%13/753§7. 结语这篇论文的价值不在于又发明了一个格式而在于用 78,045 道题系统回答了一个早就该问的问题我们一直默认 SMILES 是自然选择但它是为计算效率设计的不是为 LLM 设计的。当你的 agent 下一次因为 SMILES 括号错乱而解析失败时值得想起这组数字换个格式比换个更大的模型便宜得多也有效得多。MolJSON 本身未必是终局——作者自己也说 schema 还有一堆可改的地方。但它证明了一件事让 LLM直接看到分子图而不是从字符串里恢复分子图这种输入表示与内部推理的对齐是化学大模型一个被低估的杠杆。参考来源Runcie N T, Imrie F, Deane C M.Molecular Representations for Large Language Models. arXiv:2605.01822 (2026). https://arxiv.org/abs/2605.01822MolJSON schema 与脚本https://github.com/oxpig/MolJSON评测数据https://github.com/oxpig/MolJSON-dataPyPIhttps://pypi.org/project/moljson/Runcie N T, Deane C M, Imrie F.Assessing the Chemical Intelligence of Large Language Models. J. Chem. Inf. Model. 66(1):216–227 (2026). 10.1021/acs.jcim.5c02145Weininger D.SMILES, a chemical language and information system. J. Chem. Inf. Comput. Sci. 28(1):31–36 (1988). 10.1021/ci00057a005Krenn M 等.SELFIES: A 100% robust molecular string representation. Mach. Learn.: Sci. Technol. 1(4):045024 (2020). 10.1088/2632-2153/aba947本机实测环境LinuxPython 3.11condaRDKit 2024.3.5moljson 0.1.0tiktoken o200k_baseLLM 复现用 MiniMax-M3 直连 API非推理模式全部脚本与输出为真实运行记录。系列导航专栏全集化学大模型我的专栏蛋白 / 抗体 / 多肽 / 核酸分子模拟 / 动力学 / 对接药物 / 设计 / 案例AI / Agent / 大模型开源蛋白结构预测分子模拟基础小分子药物设计案例AI Agent系列开源蛋白生成方法实践分子动力学模拟-Amber蛋白药物设计案例化学大模型开源多肽设计模型分子动力学模拟-Gromacs多肽药物设计案例《AI Agent原理与实战》开源多肽性质预测分子动力学模拟-OpenMM开源小分子生成设计CADD中的机器学习模型DNA/RNA药物设计結合自由能高效计算配置《MCP 入门实战》siRNA药物设计模型UCSF DOCK系列我胡师兄说药《AI入门实战2026》ASO药物设计模型rDock系列 LeDock系列 gnina系列《经典机器学习实战》