大型语言模型在算术运算上表现不可靠,这在临床计算器中尤为致命,因为一次数值错误可能导致错误的治疗建议。传统做法是为每个计算器单独编写经过验证的硬编码函数。本文探索另一种思路:模型本身不直接计算,而是生成针对具体病例的 Python 代码,由受限的本地执行器以确定性方式求解。模型的任务因此转化为如何调用这些代码。
我们在 MedCalc‑Bench Verified(1,100 例,55 种计算器)上评估了这种 Program‑Solve 接口,比较对象包括模型直接算术、以及手写的 22 种计算器库。使用的模型为 Qwen2.5‑7B 与 Qwen2.5‑32B‑AWQ。首先对基准中的公式进行审计,依据最新临床指南标记出 55 种中有 16 种存在版本、使用或系数问题的公式。
在提供公式和金标准变量、并让两种路径读取完整病历的前提下,交由求解器的优势在 7B 规模模型上并不显著:准确率 75.31% 对比直接算术的 72.02%,配对提升 +3.29 点,95% 计算器簇置信区间为 [-3.49, 10.38]。而在 32B 规模模型上优势明显:准确率 90.53% 对比 83.47%,提升 +7.05 点,置信区间 [0.47, 14.60],显著大于零。
手写库在其支持的 440 例上实现了完全正确,但在其未覆盖的案例中会直接放弃,整体覆盖率仅为 40.0%。因此,引入执行器对部分开源模型有帮助,但仍不能替代公式的验证或可靠的变量抽取。
点评:程序生成+确定性求解的组合在大模型上展现出可观的提升,但仍受限于公式质量和变量提取的可靠性,实际部署仍需配合严格的审计流程。