为什么需要这个基准测试,以及它测试什么
AI辅助的血液检查解读在消费端与临床工作流程中正被越来越多地使用,但针对实验室医学、可复现的评估框架仍然较为少见。在这种场景下最关键的问题并不包含在通用医学问答基准中: 当平均红细胞体积相同的情况下,某个引擎能否将缺铁与地中海贫血携带状态区分开?它会不会把吉尔伯特综合征误诊为肝炎?它是否会在一份完全正常的筛查面板中“编造”病理结果?
一份单独的血液检测面板通常包含足够的信号来支持多种相互竞争的解读,而解读临床医生的工作并不是去检索教科书式的标准答案,而是要在这些解读之间进行权衡。一台在教科书案例上表现出色的引擎,仍可能在最关键的病例上失败:包括鉴别诊断中的常见陷阱、那些在单独看时看起来令人警惕但本质良性的变异,以及那些完全正常的面板——它们会诱使自信的助手去“编造”病理结果。.
这个基准正是围绕这些失败模式构建的。15 个案例中的每一个都被选中以体现某种特定的诊断特性:一种缺铁性小细胞性贫血,必须与具有相同平均红细胞体积(MCV)的β地中海贫血(β-地贫)携带者特征区分开;一种吉尔伯特综合征的表现,其中唯一异常是孤立的间接胆红素升高;以及一个15 项参数的筛查面板——每一种分析指标都位于其参考范围之内。评分规则奖励能够按各自情境解读每个案例的引擎,并惩罚那些在并不适用该诊断的情况下仍给出“自信诊断”的引擎。.
作为 Thomas Klein,MD,我选择这个案例面板,因为这些是实验室医学领域的助手最常弄错的模式。. 昂贵的失败模式并不是"漏掉一种罕见疾病"——而是在那些并没有该疾病的患者身上编造常规病理。. 我们的 医学验证 hub 描述了更广泛的框架;本页描述其在 V11 引擎上的应用结果。.
最新参考运行 — V11(2026年4月)
2026 年 4 月对 Kantesti AI Engine V11 的参考运行产生了一个综合评分: 99.12% 在预先注册的15例评分规则中。两道“过度诊断陷阱”案例都得分达到上限。针对缺铁与地中海贫血的鉴别诊断,Mentzer 指数的应用是正确的。.
综合公式由三个部分组成: 结构符合度 与7个强制报告部分以及16个强制子部分,, 临床准确性 以关键词召回率 + 评分系统召回率 + 概率分布有效性校验来衡量,以及 响应延迟 对照 20 秒的主要服务级目标。下面的评分规则公式展示了精确拆分。.
剩余的0.88个百分点“缓冲空间”几乎完全分解为延迟损失——三次Phase 2的后备调用(每次复合得分为-0.05)合计贡献了约0.60个点的0.88个百分点缺口——而不是分解到临床内容上。引擎在十五个案例中的任何一个都没有漏掉正确诊断;在有所不足的地方,它是在少数几次调用中,比主要路径的20秒目标略长了一点点。.
来自七个医学专科的十五个病例
案例面板涵盖七个专科——血液学、内分泌学、代谢医学、肝病学、肾脏病学、心脏病学、风湿病学——以及两个专门的“高诊断陷阱”案例。每个案例都是经过匿名化的真实患者记录,来自Kantesti临床数据仓库,并在书面知情同意下采集。.
去标识化采用“安全港(Safe Harbor)”方案进行:移除了或替换了所有直接标识符,并为每条记录分配了符合BT-NNN-LABEL格式的基准内部案例代码。处理依据 GDPR第9条第(2)款(j)项 进行科学研究,并配备适当的保障措施,以及等同的英国GDPR条款。已发布的测试平台、技术报告或已发布的数据集中,任何地方都不存在可识别个人身份的信息。.
为什么是这种特定分布
血液学之所以有三个案例,是因为在真实世界的实验室实践中,小细胞性鉴别诊断和大细胞性鉴别诊断是最高频的“陷阱”。内分泌学也有三个案例,因为甲状腺炎(Hashimoto)、多囊卵巢综合征(PCOS)以及维生素D缺乏的表现形式会呈现出不同的诊断形态(由自身抗体驱动、由激素比例驱动、由单一标志物驱动)。单一案例的专科仍然有意义,因为慢性肾脏病(CKD)、动脉粥样硬化性心血管疾病(ASCVD)风险以及系统性红斑狼疮(SLE)各自都有独立的评分体系,模型引擎应当调用(分别为KDIGO分期、ASCVD 10年风险、以及2019年EULAR/ACR SLE标准)。.
预先注册的评分规则:解析
预注册(pre-registration)是本基准中最重要的的方法学选择。每一个预期诊断、每一个临床评分系统,以及每一个报告部分,都在调用引擎之前被提交到源代码中 之后. 。因此,为了迎合引擎而对评分量表(rubric)进行事后微调是不可能的。.
复合总分由三个部分构成。结构部分 贡献35%,并衡量引擎是否返回了七个强制报告部分(页眉、摘要、关键发现、鉴别诊断、评分系统、建议、随访)以及其中的十六个强制子部分。在结构计算中,章节存在性占40%,子章节存在性占60%。 contributes 35 percent and measures whether the engine returned the seven mandatory report sections (header, summary, key findings, differential, scoring systems, recommendations, follow-up) and the sixteen mandatory subsections within them. Section presence weighs 40 percent and subsection presence weighs 60 percent within the structural calculation.
这 临床部分 贡献55%,并将三项内容合并:诊断关键词回忆(占临床子分的70%)、评分系统回忆(20%——在相关情况下,引擎是否计算Mentzer、FIB-4、HOMA-IR、ASCVD风险、KDIGO分期、EULAR/ACR标准),以及概率求和有效性校验(10%——鉴别诊断的概率之和应落在[90, 110]区间内)。对于陷阱案例,会额外减去最高0.30的显式过度诊断惩罚,计算方式为每个伪造的病理标记扣0.10,最多不超过三个标记。.
这 延迟部分 贡献10%。响应在20秒以内得满分0.10,40秒以内得0.05,超过则得0分。20秒目标反映生产环境的主要路径服务级目标;40秒上限反映第2阶段对重引擎调用的备用预算。.
预注册所能阻止的事情
第一方基准(first-party benchmarks)以通过事后对评分量表进行微调来“抬高”自身数字而臭名昭著。其模式几乎总是相同:团队运行引擎,看到哪里表现不足,然后悄悄调整评分量表,让表现不佳的部分权重更低。通过在第一次调用引擎之前将评分量表提交到源代码,并以MIT许可证发布测试框架,这种调整就会在版本控制中变得可见。任何人都可以克隆仓库,查看评分量表作者日期,并验证引擎结果没有被用来塑造评分。.
过度诊断陷阱病例——为什么“过度报高”才是真正的失败模式
在正常筛查结果上对病理进行激进“过度判定”是面向消费者的医疗助手中已被记录的一种失败模式。其下游成本包括不必要的检查、患者焦虑以及医源性检查流程。该基准中的两个陷阱案例被设计用来让这种失败模式变得可见且可量化评分。.
🟡 陷阱1 — BT-014-GILBERT
病例呈现。. 一名24岁男性,总胆红素为2.4 mg/dL。直接胆红素分级正常,转氨酶和碱性磷酸酶位于各自参考范围内,网织红细胞无显著异常,结合珠蛋白和LDH排除溶血。.
正确解读。. 吉尔伯特综合征——一种良性的UGT1A1多态性。解读不应涉及肝炎、肝硬化、溶血性贫血或胆道梗阻。.
V11结果。. 复合得分1.000。六个被监测的过度诊断标记中,没有任何一个以活动诊断的形式出现。.
🟡 陷阱2 — BT-015-HEALTHY
病例呈现。. 一名35岁女性,常规筛查面板包含十五个参数。每一项分析指标都舒适地落在其参考范围内。.
正确解读。. 安心与生活方式维护。解读不应为了听起来在临床上“有用”而人为编造临界性病理。.
V11结果。. 复合评分 1.000。被监测的七个过度诊断警示——糖尿病、贫血、甲状腺功能减退、血脂异常、肝炎、肾脏疾病、缺乏——均未作为活动性诊断出现。.
在两个陷阱中,共检查了十三个被监测的高估诊断警示。均未触发。这是对任何考虑使用AI引擎作为分诊或就诊前工具的临床医生而言最重要的结果: 系统并未在不存在疾病的情况下编造疾病.
Mentzer指数:区分缺铁性贫血与地中海贫血携带特征
第二个高价值发现涉及病例 BT-001(缺铁性贫血)与病例 BT-007(轻型β地中海贫血)的配对。两者都表现为小细胞性改变,这是对初学分类器而言的常见绊脚石。Mentzer 指数按 MCV 除以 RBC 计,缺铁性贫血中该指数超过 13,而地中海贫血性状中则低于 13。.
在 BT-001 中,患者为34岁女性,血红蛋白 10.4 g/dL,MCV 72.4 fL,RBC 4.1 × 10¹²/L,铁蛋白 6 ng/mL,且 TIBC 升高。约 17.7 的 Mentzer 指数支持绝对缺铁。在 BT-007 中,患者为28岁男性,存在小细胞性改变(MCV 65.8 fL),但 RBC 计数高达 6.2,RDW 正常,铁蛋白正常,HbA2 为 5.6%。约 10.6 的 Mentzer 指数指向地中海贫血性状,而升高的 HbA2 证实为轻型β地中海贫血。.
两个病例的评分均为 1.000。引擎在两次解读中都明确调用了 Mentzer 指数,并在每个实例中给出了正确诊断。. 这是整个基准测试中最具临床安心感的单一结果, ,因为将地中海贫血性状误判为缺铁会导致不恰当的补铁,并错过家族筛查机会;而将缺铁性贫血误判为地中海贫血会延误直接的替代治疗。我们的 铁蛋白范围指南 解释了更广泛的鉴别诊断背景。.
2026年4月运行结果的逐例汇总
15个病例中有12个在主要路径上达到主复合评分上限 1.000。其余3个病例通过第二阶段的后备方案提供;在保留所有临床与结构内容的同时,失去了 0.05 的延迟奖励。有1个病例缺少一个强制性小节;另有1个病例返回的概率分布总和略有降低。.
该多囊卵巢综合征(PCOS)案例(BT-008)在响应结构中丢失了一个强制性小节——从“十六个中的十五个”变为“十六个中的十六个”——这使结构得分从 1.000 降至 0.963。系统性红斑狼疮(SLE)案例(BT-011)返回了一个边际降低的概率分布求和结果,使临床得分降至 0.965,同时保留了每一个诊断关键词和评分体系。两个未达满分的案例都没有漏掉正确诊断。.
标题评分并不能告诉我们的内容
在该特定预先注册的评分规则下,99.12% 的综合得分代表接近上限的表现,但仍需要进行谨慎的表述。该结果描述了引擎在十五个经过精心挑选的匿名案例上的表现:每个案例只评估一次,并且都使用同一套评分规则。我们明确说明这个数字能证明什么、不能证明什么。.
该得分表明 V11 引擎在本次评估所选取的诊断模式上处理得正确,且所采用的方法学已发布并可复现。它并不表示该引擎对现实世界中存在的每一项血液检查项目面板都正确。它也不表示该引擎应当取代临床医生的判断。并且它也不表示该引擎优于其他替代的 AI 系统——与其他引擎的对比分析被有意排除在本报告的范围之外。.
该得分真正能够证明的是一个基线。在评分规则和测试框架公开的情况下,未来版本的引擎可以针对同一十五个案例进行评估,而已发布得分与任何后续运行之间的差距本身也是可衡量的。这就是预先注册的价值: 它将性能主张转化为可检验的主张.
如何在10分钟内复现该基准
复现只需要一组 Kantesti API 凭证,以及一个包含以下条件的 Python 3.10 或更高版本环境: requests 和 reportlab 已安装这些库。完整的测试框架是一个在 MIT 许可下发布的单一、独立的 Python 模块。.
重新运行的四个步骤
第一步。. 克隆仓库: git clone https://github.com/emirhanai/kantesti-blood-test-benchmark.git. 第二步。. 使用以下命令安装依赖项: pip install -r requirements.txt. 三。. 设置 KANTESTI_USERNAME 和 KANTESTI_PASSWORD 作为环境变量——凭据在运行时读取,脚本中不进行硬编码。. 四。. 运行 python benchmark_bloodtest.py 并检查工作目录中输出的四个工件:一个 CSV 评分卡、一个 JSON 评分卡、一个完整的 JSON 导出(包含引擎的原始响应),以及一个可供人阅读的 Markdown 报告。.
2026 年 4 月 23 日的基准运行结果被保存在 results/ 仓库的目录中。一次全新的运行将生成一个新的带时间戳的评分卡,同时不会改变基准运行。如果你的运行结果出现了实质性不同,请在 GitHub 上提交 issue,并附上运行时间戳以及响应元数据中返回的引擎版本。.
局限性与未来工作
四项局限性需要明确说明:样本量、单次评估、单引擎范围以及单一数据来源。每一项都正在通过后续工作积极处理。.
样本量。. 八个专业分组中的十五个病例足以用于概念验证,但不足以在各专业内部进行分组分析。计划扩展到五十个病例,并将包括凝血面板、血液肿瘤筛查、妊娠面板以及儿科病例呈现。.
单次评估。. 每个病例仅评估一次。即使在较低采样温度下,大语言模型也会表现出不可忽视的输出波动,因此下一步自然是采用多次运行协议:每个病例进行五次评估,并报告方差。.
单引擎范围。. 本报告刻画的是一个引擎。与其他 AI 系统的对比分析不在此范围内;我们可能会在采用合适方法学的前提下,将其作为一项独立研究另行开展。.
单一数据来源。. 这十五个病例是从单一临床数据库中抽取的匿名真实患者记录。它们代表一个经过策划的样本,并非总体具有代表性的随机抽样。将评估扩展到多中心数据已列入路线图。.
最具影响力的计划扩展是多语言一致性。Kantesti AI 引擎为 75+ 种语言的用户提供服务;在土耳其语、德语、西班牙语、法语和阿拉伯语中运行同一套十五病例的测试框架,将量化引擎在其支持语言中的输出质量。我们将为每种语言发布各自的运行结果,并提供各自的 DOI 和测试框架分支。.