内部研究看板 · 快照 2026-11-12 20:00(北京时间)

ChemDecision

知识库辅助的化学问答评测,以及模型自主构建知识库的实验。这个页面汇总项目的设计、实验进展、数据样例、当前结果和重要的实现细节,材料来自三个实验会话与项目仓库中的结果文档,全部数字都可以回查到逐题结果。

一句话概括现状:全量基线已经冻结(25,200 次评测全部完成并评分),人工知识库把 9B 模型的正确率从裸模型的 13.60% 提升到 92.00%;模型自建知识库的第一个子集(621 题)为 64.9%,已经明确超过原始语料条件,但距人工知识库还有 26.7 个百分点,全量评测仍在恢复中。

打开逐任务配对比较

1项目设计

1.1 研究问题

项目要回答的核心问题来自 RSI(递归自我改进)研究框架:不直接给模型人工整理好的答案或知识,只提供有限的开发反馈(以逐题对错为主),看模型能否自主发现自己的能力缺口、从未标注的原始语料中构造出可用的学习材料,并让下一代模型在同样的任务上做得更好。为此,数据侧在项目早期就做了隔离设计:训练语料、反馈集、选择集、测试集相互分离,另外保留一条「新专利迁移」轨道——训练与开发来源分离、评测时才提供新专利原文——避免在封闭知识库上反复循环验证。外环训练尚未启动,当前阶段的全部精力在内环的评测与自主建库上。

1.2 四种证据条件

同一套 4,200 道题在四种证据条件下评测,四组共用相同的题目、评分规则与单题预算,唯一的变量是模型在答题时能拿到什么:

四种证据条件的设置与作用
条件模型拿到什么这一组回答什么问题
裸模型只有题面。单次调用,不给语料、工具或标准答案。量化检索与工具到底带来多少增益。2B 全量 5.24% 主要不是截断造成的(4,200 题中只有 143 题触及 4,096 token 生成上限)。
原始语料USPTO 专利 HTML 与 PubChem 记录所在的目录路径和格式说明,模型自己写检索程序。衡量「有资料、无结构」时的表现。常见失败不是找不到文件,而是找到目标文件后没有截到答案片段。
人工知识库结构化 TSV 表(compounds_gold.tsv、reactions.tsv)的路径与表头,模型自主查表、写程序、计算并作答。结构化知识的价值上限。9B 达到 92.00%,是当前所有条件中最高分,也是自建知识库要追赶的参照。
自建知识库只有原始语料和一段简短英文指令。模型自己设计表格结构、写抽取程序、自检修复,产物再用于同一套评测。项目真正的目标:在同样的 4,200 题上超过原始语料条件。目前 621 题子集为 64.9%,全量尚未跑完。

1.3 评测协议

2当前结果

2.1 全量基线矩阵

三个模型 × 三种证据条件的全量评测已完成并评分,合计 25,200 次(4B 与 9B 各 12,600 次、2B 12,600 次),最终对比报告生成于 2026-11-09 03:35。每个数字都能回查到逐题的 scored.jsonl 与执行轨迹:

全量基线 · 每格 4,200 题 · 失败计入分母 · 冻结于 chemdecision-baseline-v1.0.0
模型裸模型原始语料 + 工具人工 KB + 工具状态备注
Qwen3.5 2B5.24%15.17%22.33%已完成;4090 补跑 71 题后为 22.62%,因换机与 vLLM 版本不同分开记录
Qwen3.5 4B11.10%25.93%69.69%已完成,含 982 题预算耗尽或超时
Qwen3.5 9B13.60%46.71%92.00%已完成;逐任务分数见第 3 节比较器

增益并非在所有任务上都为正,这一点在汇报时容易丢掉。溶剂预测上裸模型反而更高:4B 为 48.83%(人工 KB 条件只有 8.00%),9B 为 53.00% 对 47.67%——模型已有的先验足以覆盖这个任务,结构化证据反而带来干扰。4B 的分子量(原始语料 73.83% 对人工 KB 61.67%)与名称转换(58.83% 对 45.67%)也是原始语料更好,说明小模型在有工具时的查表与计算流程还不稳定。分子描述任务上两个模型的裸模型组都是 0 分,这是严格词面评分的结果:不给资料时模型写出的描述几乎不可能与记录文本匹配。

2.2 自建知识库的第一个子集

9B 用自主构建的知识库跑全量评测,进行到 621/4,200 时因 worker 停跑暂停。在这已落盘的 621 题上,同一批 QA ID 可以与人工 KB 的历史结果直接对齐:

9B · 自建 KB 对人工 KB · 621 题子集 · 按 QA ID 对齐
任务题数自建 KB 正确人工 KB 正确自建相对差距
分子描述854184−50.6 pp
反应物预测782668−53.8 pp
产物预测914686−44.0 pp
溶剂预测957187−16.8 pp
反应条件886780−14.8 pp
名称转换956983−14.7 pp
分子量898381+2.2 pp
合计621403(64.9%)569(91.6%)−26.7 pp

同一批题上原始语料条件为 286/621(46.1%),所以自建知识库已经明确超过「直接用原始语料」的条件——这是项目目标的前半段。后半段的差距结构也很清楚:人工独对的 192 题里,68 题耗尽预算、54 题超时、70 题正常答完但判错;分子描述、反应物、产物三项合计净少 125 题,占总差 166 题的 75%。这三项恰恰是最需要显式反应角色与结构字段的任务,而自建 KB 的专利侧目前只是段落索引。分子量是唯一反超的任务(83/89 对 81/89),它本质上可以由确定性计算补足,模型写出正确的计算程序后不依赖人工整理。另外建库早期还有一个 14 题小样本:自建 8/14,原文 5/14,人工 14/14——这是正向信号,不是结论。

92.00%9B · 人工 KB · 4,200 题全量,3,864 题正确,当前所有条件的上限
25,200已完成并评分的全量评测次数,基线已冻结,逐题结果可回查
621 / 4,2009B 自建 KB 已落盘的题数,worker 停跑后待恢复,按原吞吐剩余约 9.5 小时

3逐任务配对比较

总分差一个数字会掩盖任务之间的巨大差异。下面的比较器把两种证据条件按同一批 QA ID 重新对齐(只统计两边都完成的题),逐任务展示正确率与净差。切换模型和左右条件,数字会按同一批题重新计算。净差按同题正确数之差除以 4,200 计算,逐任务除以 600;「仅左 / 仅右答对」的题数来自同题配对表。

同题配对 · 每任务 600 题 · 深色为左侧条件

反应条件95.17 / 56.33+38.83
分子量92.00 / 74.83+17.17
分子描述98.33 / 29.67+68.67
名称转换89.00 / 78.17+10.83
产物预测95.33 / 26.33+69.00
反应物预测82.33 / 14.00+68.33
溶剂预测91.83 / 47.67+44.17

综合 92.00% 对 46.71%,净差 +45.29 个百分点。仅左侧答对 2,024 题,仅右侧答对 122 题。

选择要对齐的两组

左侧条件

右侧条件

2B 只有全量总分,没有纳入这个比较器。自建 KB 只有 621 题子集,口径不同,不与这里的全量数字混算(见 2.2 节)。配对数据来自 RESULTS_ZH.md 的同题配对表。

最值得反复看的是分子描述、产物预测、反应物预测三项:9B 在这三项上人工 KB 比原始语料分别高出 68.67、69.00、68.33 个百分点——结构化知识的价值几乎全部集中在这里。切换到 4B 再看同一组,产物与反应物上的增益更大,但分子量与名称转换的差值会变成负数;把右侧换成裸模型则可以看到,原始语料条件的增益里相当一部分来自「记住常见溶剂」这类先验而不是真的查到了证据(溶剂任务上裸模型 48.83% 已经超过原始语料条件的 8.00%)。

4数据样例

题目、知识库、原始语料三者必须互相可追溯:每条 QA 都能定位到知识库中的字段,再回到专利原文与证据位置。这是四种条件可比的前提。

4.1 题面长什么样

评测题面 · question.json 摘录
qa_type: condition_prediction
input_type: name / smiles(每个任务各 300 题)
  • 条件题例:「某专利某段程序明确报告的 work-up pH 是多少?」原文片段先写「甲醛溶液调至 pH 7.5」,随后制备中间体,再进行「150°C 成膜处理」。这类题考的是实验阶段消歧——同一片段里有多个数字,只有对应阶段里明确报告的才是答案,不是把附近所有数字抄进答案。
  • 溶剂题例:「甲醇用于反应,碳酸氢钠溶液和盐水用于后处理。哪个是反应溶剂?」考查反应角色区分,模型需要理解三种液体各自出现在程序的哪个阶段。
  • 分子量题例:「2-oxopropane-1-sulfonyl chloride 的 PubChem 平均分子量取整数部分。」答案是一个可以从结构式计算的确定数值。

4.2 原始语料与知识库的规模

原始语料 · 21,073 个文件 / 3.10 GB
目录数量
/data/patents/*.html(USPTO 专利全文)5,606
/data/pubchem/*.xml(分子记录)8,082
/data/pubchem/*.json(分子记录)7,385
人工 KB · v11 快照
表行数
all_qa_pairs.clean.csv4,800
compounds_gold.tsv38,507
reactions.tsv23,107
人工 KB 字段覆盖率(v11 快照)
字段非空率说明
分子量99.98%
SMILES88.7%
催化剂25.6%空值可能是专利本身未报告,不等于缺采
描述12.1%非空不等于已确认正确

数据质量的现状要如实交代:v11 通过的是结构与引用检查(无重复 prompt、无缺失 ID 引用、QA / OOC 实体重叠已核查),但 2,400 条产物 / 反应物 / 催化剂 / 溶剂 QA 行尚未全部完成源级语义复核;1,710 条 OPSIN 名称与结构的分歧仍是候选问题而非确认错误;gold 里仍然存在缺失分子结构。所以不能把整个人工 KB 描述成「结构完整、化学认证」,它是有覆盖率与复核状态明细的对照物。建库实验的隔离规则是:模型建库时看不到 QA、gold 与人工 KB,三者只在评测侧汇合。

自建知识库目前的产物是 746,519 条专利段落(可按验证口径重建全部 5,606 份专利的标准化文本)与 15,467 条 PubChem 源文件记录。专利侧目前是段落索引而非结构化反应事实,这是它与大题差直接相关(见 2.2 节)。

4.3 建立约束

QA ⊂ KB ⊂ raw corpus
每条 QA → KB 字段 → 原文片段 → 证据位置

题目必须从知识库可答、知识库必须从原始语料可重建。不要求每条 KB 记录都生成 QA,也不允许用 QA 的抽取规则反向限制知识库的大小——否则评测就变成检查模型复述标注规则。历史基线确认了证据到位率:人工 KB 条件下 4B / 9B 各有 97.1% / 98.7% 的题目已有标注证据进入模型输入,所以工具组的失分主要发生在证据到位之后的环节。

5关键实现细节

5.1 Harness 与框架适配

工具组使用官方 DeepSeek Harness,通过已披露的 Qwen 兼容层接入 Qwen3.5 系列;评测程序本身不改官方 Harness,只在外面加适配层。项目早期踩过一个值得记录的坑:v1 框架有两个缺陷——压缩上下文时仍然调用工具、输出预算被错误缩放成 1 个 token——导致 v1 的 3,792 次尝试全部无效。处理方式是把 v1 的全部日志与轨迹保留存档但不作为结论,修复后以独立 v2 重跑,并在同一天追加了裸模型对照组。此后协议再未改动过。

5.2 自主建库的执行协议(v4.2,当前版本)

模型自主建库经历了 v1 到 v5 的多轮失败(字段全空、解析层级错误、重复搜索、未通过源检查),当前执行版 v4.2 的协议是:

5.3 基础设施与吞吐

推理服务跑在两台 4090 上的 Qwen3.5-9B 副本(vLLM 0.29.0),评测调度在 A100 上(历史基线用 A100 本机的 vLLM 0.18.0),调度端通过本机转发端口 18649 与 18659 调用两个 9B 副本。9B 自建 KB 停跑前的配置是两副本 16 并发,实测每小时约 376 题;照此吞吐,剩余 3,579 题约需 9.5 小时。停跑的直接原因是两个 worker 在探测 /v1/models 时超时退出,当天 17:22 经 A100 复查两个 9B 服务本身健康,属于客户端侧问题而非服务故障。另外要注意设备与运行时不同带来的口径问题:自建 KB 跑在 4090 + vLLM 0.29.0,历史基线跑在 A100 + vLLM 0.18.0,超时与耗时差异不能单独归因于知识库质量。

5.4 预算与耗时特征

单题中位耗时 88 秒,P90 约 6 分钟,已经接近 360 秒的单题上限——这意味着预算治理不是优化项而是正确性项。预算耗尽的典型形态是反复生成到 4,096 token 上限或压缩摘要本身超限。4B 人工 KB 条件有 982 题没有答完(945 题耗尽预算、34 题超时、3 题 agent 异常),这些全部按错题计入分母。自建 KB 单题的模型调用数中位数为 6 次,人工 KB 条件为 4 次——结构化程度低的证据会让模型多花交互轮数。

5.5 磁盘治理与留存

A100 的根分区曾在 11 月 10 日至 11 日间写满,触发了一次磁盘治理:清理 16,800 份可重建缓存约 1.33 TiB,保留全部轨迹与结果文件。治理后的约定是:每题结束自动清理可重建缓存,完整保留 response、轨迹、工具调用与生成代码;/home 约 1.3 TiB、/data2 约 595 GiB 可用,新评测的输出与临时目录一律指向 /home。

6项目进度

从数据盘点到当前,每一条都注明当时发生了什么、留下了什么产物。最后一个条目是 11 月 12 日晚上的最新状态。

10.18 数据盘点与 RSI 研究设计

完成 v11 数据快照的盘点(4,800 条 QA、38,507 条化合物、23,107 条反应),做了 30 项 2026 年 RSI 相关文献调研,确定数据隔离、反馈预算与新专利迁移两条轨道。此时项目尚未选定最终方法,也没有改动任何远程数据或服务。

10.19 候选语料补采与数据质量检查

构建候选语料:13,879 份通过完整性与文本结构检查的专利全文、247,334 条不含旧抽取标签的原文片段。L20 原件损坏严重,补采时触发源站 HTTP 429,按规则停止并留档,未强行绕过。

11.04 全量基线评测启动

七任务 4,200 题正式开跑:Qwen3.5 4B / 9B,人工 KB 与原始语料两条件,接入官方 DeepSeek Harness 让模型自主调用工具。所有中间文档、日志与代码自此用 Git 管理。

11.05 发现框架缺陷并以 v2 重跑

v1 发现两个缺陷:压缩上下文时仍调用工具、输出预算被错误缩成 1 token。3,792 次尝试保留存档但不作为结论,修复后启动独立的 v2 全量,同日追加裸模型对照组。

11.09 全量 25,200 次完成评分、基线冻结

03:35 生成最终对比报告。冻结 chemdecision-baseline-v1.0.0(11 项回归检查通过),2B 进入全量。完成 25,200 条成功与失败轨迹的归因分析,确认人工 KB 条件下 4B / 9B 各有 97.1% / 98.7% 的题已有标注证据进入模型输入。

11.10 – 11.11 模型自主建库多轮受挫

自建 KB v1 到 v5 反复失败:字段全空、解析层级错误、重复搜索、未通过源检查。9B 在一轮中把同一条成功返回的 grep 命令重复执行了 51 次。同期完成磁盘治理:清理 16,800 份可重建缓存约 1.33 TiB,保留全部轨迹与结果。

11.12 新方案出现正向信号

另一位 agent 改用通用格式解析器的方案:任务拆成 PubChem 属性表 + USPTO 段落索引,产出 746,519 条专利段落与 15,467 条 PubChem 记录,14 题小样本 8/14(原文条件 5/14、人工 14/14)。9B 全量评测跑到 621/4,200 后因 worker 探测 /v1/models 超时停跑;17:22 时两个 4090 上的 9B 服务经 A100 复查健康。

11.12 晚 4B 自建 KB 启动、9B 配对分析完成

4B 复用 9B 的同一份自建 KB、同一批题与评分规则,19:57 首批 2/4,200 题落盘,8 并发。9B 的 621 题同题配对分析完成:与人工 KB 差 26.7 个百分点,分子描述、反应物、产物三项贡献净差的 75%。

7失败案例

25,200 条轨迹的归因分析里挑出八个可回查的案例。它们共同说明一件事:工具组的失分经常不在「模型能力」,而在执行控制、观测切片与评分口径——这些是可以通过改协议或工具改进的,不该笼统归为模型不行。左侧选择案例,右侧给出经过与归因。

模型读到酮的名称,最终写出的 SMILES 却漏掉羰基。证据已经进入上下文,错在结构生成与身份核对,不是检索没找到。

归因类别:证据已到位仍答错。这类失分不能靠扩大语料或增加检索次数解决。

归因卡 · 证据到位仍答错
  • 终态:正常答完,gold 不匹配
  • 证据:标注证据已确认进入模型输入
  • 复核:结构生成错误,SMILES 漏掉羰基
  • 影响:扩大语料或增加检索次数都不会解决

案例来自 25,200 条全量归因分析、2B 裸模型诊断与 9B 自建 KB 同题配对报告(轨迹 ID 形如 v13-9a560293…)。原始轨迹、工具调用与生成代码均已留存,原分数没有被改动,分析侧未做重评分。

8口径与风险

下面每一条都会实质影响结论,引用看板上的任何数字时不能省略对应的口径。

9下一步

按这个顺序做,原则是先让数字可比,再谈方法改进。前两项是把自建 KB 的全量分数补齐,第三、四项是修已知的具体缺陷,第五项是协议稳定性,第六项回到项目的研究问题本身。

  1. 恢复 9B 自建 KB 全量评测:输出与临时目录指向 /home,保留已落盘的 621 题;按原吞吐(约 376 题/小时)剩余约 9.5 小时,跑完后与人工 KB、原始语料做同题配对。
  2. 跑完 4B 自建 KB 全量(已启动,8 并发),同一批 4,200 题与三个条件做同题配对比较,形成自建 KB 的完整四条件矩阵。
  3. 把自建 KB 的专利段落索引补成结构化反应事实:加入显式的反应角色与结构字段。分子描述、反应物、产物三项贡献了净差的 75%,这是收益最大的单点改进。
  4. 复核分子描述的字段选取与评分口径:43 道人工独对题里 42 道是正常答完但判错,需要判断多少属于口径问题、多少是真实能力差距。
  5. 治理预算与超时:单题中位 88 秒、P90 约 6 分钟、已贴近 360 秒上限;自建 KB 单题调用数中位 6 次(人工 KB 为 4 次),需要控制交互轮数。
  6. 回到 RSI 外环:建独立验证集,跑「新专利迁移」轨道,检验晚代模型是否真的更擅长继续学习——这是整个项目要回答的问题。