BiomedSQL: Text-to-SQL for Scientific Reasoning on Biomedical Knowledge Bases
Mathew J. Koretsky, Maya Willey, Owen Bianchi, Chelsea X. Alvarado, Tanay Nayak, Nicole Kuznetsov, Sungwon Kim, Mike A. Nalls, Daniel Khashabi, Faraz Faghri
COLM 2026
cs.CL, cs.AI, cs.LG
2025-05-24
NIH联合霍普金斯发布BiomedSQL,6.8万道生物医学SQL题都要把隐含科学惯例写成可执行查询。Gemini-3-Pro执行准确率58.1%,BMSQL到62.6%,专家基线90%。
Spider 和 BIRD 测的是跨库把自然语言翻成 SQL,临床侧的 MIMICSQL、EHRSQL 测的是病人检索和时间逻辑。生物医学分析师每天问的不是这两类。「哪些 SNP 与阿尔茨海默病显著相关」「哪些药打到帕金森病上调的基因」,这类问题要靠领域惯例才能落成可执行 SQL:全基因组显著阈值 p < 5×10⁻⁸、效应方向看 beta 正负、批准与否要按适应症过滤试验分期。这些惯例 schema 里没有,模型只能靠自己补。
BiomedSQL 冲着这块缺口来。NIH 衰老研究所 CARD、DataTecnica 和 Johns Hopkins 联合完成,会议是 COLM 2026。设定很窄:在一张真实生物医学知识库上,看模型能不能把带科学推理的问题写成可执行 SQL。
底层是一张拼装过的 BigQuery 库,十张核心表,最大到 7200 万行、31 列。选 BigQuery 是因为生物医学流水线常用云端方言,也故意引入厂商函数和语法。来源包括 Open Targets 的基因-疾病-药物关联、ChEMBL 的药理数据、GWAS Catalog 上阿尔茨海默病和帕金森病的 SNP 级汇总统计,以及 omicSynth 用 SMR(summary-data-based Mendelian randomization,拿遗传变异当工具变量做因果推断)算出的多组学线索。
题目从 CARDBiomedBench 的 40 道专家种子扩出来。一位领域专家手写 gold SQL,另外两位分析师独立核对执行结果和自然语言答案,讨论到一份共识。分注没有留,所以没有标注者一致性数字。再按疾病、基因、SNP 做模板替换,扩到 68,227 条 question/SQL/answer 三元组。Gold 查询不写 SELECT ,结果封顶 100 行。平均 SQL 长度 96.4 token,比 BIRD 的 50.6 长一截,仅次于 EHRSQL。
评测集 546 道,保持模板分布。SQL 看三条:Execution Accuracy(EX)要求执行结果集合与 gold 完全一致,SELECT 比对 UUID 集合,COUNT 等比对数值;Jaccard Index(JAC)按交并比给部分分;Syntax Error Rate(SER)是根本跑不起来的比例。自然语言回答走 BioScore,用 GPT-4o 当 judge:Response Quality Rate(RQR)看事实对不对,Safety Rate(SR)看答错时会不会拒答。100 条双评,与专家的 Spearman 相关是 0.89。
模型覆盖 Llama-3.1 70B/405B、Qwen-2.5-Coder 14B/32B,以及 GPT-4o、GPT-o3-mini、GPT-5.2、Gemini-2.0-Flash、Gemini-3-Pro、Claude-3.7-Sonnet、Claude-4.5-Opus。提示从基线 schema 往上加样本行、few-shot、统计阈值指令。交互侧试了 ReAct、LlamaIndex schema 检索、改过的 DAIL-SQL,还有自研多步系统 BMSQL:先写一版查询,拿中间结果或报错再改,模仿分析师改 SQL。
专家基线是两位生物医学分析师各做 20 道的均值,EX 90.0%、JAC 90.0%、RQR 95.0%。样本很小,EX 的 95% 置信区间大约是 [68%, 99%],只能当方向。测验不允许拒答,所以专家没有 SR;两人 SQL 全部可执行,SER 为 0。
单轮基线提示下,Gemini-3-Pro 最高:EX 58.1%,JAC 62.4%,RQR 81.8%,语法错误 0。Claude-4.5-Opus 54.8% EX、80.6% RQR,GPT-o3-mini 53.5%,GPT-5.2 只有 48.5%。开源里 Qwen-2.5-Coder-32B 以 40.8% EX 压过更大的 Llama-3.1-405B(38.1%),但它 15.7% 的 SER 把 Safety Rate 抬到 61.0%,一部分「安全」来自查询直接失败。
| 系统 | EX | JAC | RQR |
| 领域专家(20 题) | 90.0% | 90.0% | 95.0% |
| Gemini-3-Pro 基线 | 58.1% | 62.4% | 81.8% |
| BMSQL-GPT-o3-mini | 62.6% | 69.2% | 83.2% |
| DAIL-SQL-GPT-o3-mini | 61.2% | 63.6% | 81.4% |
| GPT-o3-mini 基线 | 53.5% | 60.4% | 73.3% |
| Qwen-2.5-Coder-32B | 40.8% | 44.4% | 58.2% |
Few-shot 有用:GPT-o3-mini 加 10-shot,EX 提升 7.8 个点,到 61.3%。堆到 40-shot 几乎不再涨。只塞表里的样例行几乎没帮助,卡的是 schema 理解。
交互范式参差。Schema indexing 最弱,Index-GPT-4o 只有 25.5% EX,SER 同时到 27.5%。ReAct 对 GPT 略涨(GPT-o3-mini 到 56.2%),换模型就不稳。BMSQL-GPT-o3-mini 拿到全场最高 EX 62.6%,但跟 DAIL-SQL-GPT-o3-mini 的 61.2% 落在置信区间重叠里,分不出谁赢。配 Gemini 时 BMSQL 掉到 55.9%,低于 Gemini-3-Pro 单轮基线。RQR 上 BMSQL-Gemini 到 84.6%,离专家 95% 还差约 10 点。BMSQL-GPT-o3-mini 一次调用大约 3.9 万 token,Gemini-3-Pro 基线大约 3100。
错误能对上两套短板:ReAct 几乎不选错表、语法错误为零;BMSQL 更会把 p 值阈值、试验分期写进 WHERE。全场最常见的错是选错表,其次是漏阈值或阈值写错。Join、Similarity Search、Multi-Filter 最难。
加推理轮次几乎白给。BMSQL-GPT-o3-mini 从 1-pass 到 3-pass,EX 从 62.6% 落到 61.7%,RQR 从 83.2% 升到 85.5%,多出来的 token 主要在修语法。schema 扩到 20 张表后,10-shot 从 61.3% 掉到 53.8%(少 7.5 点),BMSQL 从 62.6% 掉到 58.4%(少 4.2 点)。原 schema 上 10-shot 已经 61.3%,几乎打平 BMSQL,token 大约只有七分之一。
跟专家的缺口大约 25 到 30 个 EX 点。
做 text-to-SQL 或科研 agent 的人,可以把这当成比 Spider、BIRD 更脏的测试床:方言是 BigQuery,题面不写阈值,对了执行结果还要把答案用自然语言说圆。58% 的执行准确率接不进发现流水线。伦理声明写得很直:生成查询可能看起来对、结果是错的,靠近临床的用途必须人审。
BMSQL 不是必须跟的方案。论文没评 Claude Code、Gemini CLI 这类开放式编码 agent,并写明结果不能读成「一定要自研多步系统」。10-shot 在 10 表 schema 上已经 61.3%,更便宜。难的两件事分得很开:找对表,以及把领域统计惯例写进过滤条件。
40 道模板扩出 6.8 万条,同构性高于真实提问。论文用 GSM-Symbolic 和长尾实体来辩护:换基因名、疾病名仍会掉点。但 546 道测试题仍按这 40 个模板抽样,泛化半径就是这 40 种问法。Gold SQL 不是唯一正确写法,所以同时报 EX 和更松的 JAC、RQR。
专家基线只有 20 题,置信区间宽到 [68%, 99%],90% 这个点估计本身很飘。没有计算标注者一致性。BigQuery 方言会卡住 DIN-SQL、CHESS 这类通用系统,作者计划转 SQLite。没有评开放式编码 agent。20 表实验的差距落在误差范围内,论文也写成观察趋势,不是统计结论。