xinxuxin/keystone-bench

A clinical decision-evidence benchmark: pull the one fact an answer rests on, and see whether the assistant's action moves with the evidence. Built on HealthBench.

Keystone Bench – 基于聊天的 AI 助手的临床决策证据基准

它是什么

  • 一个数据集和评估框架,用于衡量医疗聊天助手在依赖的证据发生变化时的反应。每个原始 HealthBench 对话(患者-医生对话)都与孪生配对——这些是经过编辑的版本,改变恰好一个决定性事实(例如,移除怀孕状态、添加矛盾的实验室值、更改人口统计属性)。对照版本在不改变任何事实的情况下重新措辞原始对话。
  • 对于每个孪生,基准提供决策框架(正在做出什么决策,决策依赖哪个事实)和证据状态,列出:
    • 助手应采取的可接受行动,
    • 禁止的行动,
    • 助手必须询问或回答的决定性问题,
    • 它不得假设的事实。
  • 人类临床医生为原始对话编写评分标准;基准随后评估模型回复在事实缺失、矛盾或改变后是否遵守评分标准。

为什么重要

  • 当前的医疗聊天基准只检查模型是否对原始提示给出正确答案。它们忽略了当关键证据缺失或错误时模型应该做什么——这种情况在现实分诊中经常发生。
  • Keystone 使这一差距可测量,让研究人员量化证据敏感性(模型是否适当改变其答案)和对编辑的鲁棒性(在不应回答时是否继续回答)。

关键组件

组件 描述
孪生(共 7,419 个) 每个来源有四个系统编辑家族:missing_evidence、conflicting_evidence、demographic_shift、salient_distractor(阴性对照),外加五个可选家族,如 alternative_evidence 和 alternative_evidence_hard,这些家族调整跨临床阈值的数值。
来源 1,260 个 HealthBench 对话(多轮,与原始逐字节相同)。
层/划分 core、strict、primary、quick——越来越严格的子集;dev/test 划分(80/20)确保孪生和对照永不跨划分。
参考结果 来自五个商业助手(GPT-4.1 评判器)的预计算回复,使用户无需支付 API 调用即可比较新模型。
评分器/评判器 一个独立的 LLM(不同供应商),将模型回复映射到证据状态注释,产生如可接受、禁止、升级等标签。
CLI / Python 库 通过 pip install keystone-bench 安装。命令如 keystone build、keystone run、keystone audit 处理数据构建、评估和完整审计报告。
审计与检查 SHA-256 文件哈希、131 个单元测试、快捷方式审计,以及“退化策略”检查,确保没有固定策略可以作弊。

如何使用

  1. 安装包并在本地重建基准(它拉取开源 HealthBench 数据并应用已发布的编辑)。
  2. 加载配对 在 Python 中(load_pairs)或使用 keystone pairs 列出它们。
  3. 运行你的模型 在每个原始/孪生/对照对话上,提供单独的 LLM 作为评判器(必须是不同的供应商)。
  4. 收集记录并调用 summarize 或检查生成的 REPORT.md 以获取每个家族的分数。
  5. 审计整个运行使用 keystone audit——它检查预期效果(孪生减去对照的差异、对照的等价性等)是否成立。

已发布结果显示了什么

  • 在 quick 集(每个家族 40 项)上,表现最好的模型(GPT-5.6-terra)在 missing_evidence(询问缺失的问题)上达到 0.74 的成功率,在 demographic_shift(调整建议)上达到 0.96。阴性对照家族保持在 0.9-0.95 不变,确认了基准区分真正证据敏感性与琐碎答案稳定性的能力。
  • 在保留的测试划分上,所有预注册假设(扰动家族引起可测量变化,对照显示等价性等)均以强统计显著性得到确认。

谁可能觉得有用

  • 构建医疗聊天机器人的研究人员,需要一种严格、临床基础的方法来测试模型对缺失或矛盾信息的反应。
  • 评估工程师,想要一个具有内置审计、版本化数据和参考结果的可复现基准。
  • 监管机构或安全团队,寻找证据表明系统不会产生幻觉或忽略患者数据中的关键缺口。

从哪里开始

  • 阅读项目页面和链接的文档(DATA_CARD.md、SCHEMA.md、PROTOCOL.md)以获取家族和证据状态的完整定义。
  • 克隆仓库,安装开发附加组件,并运行 examples/quickstart.py 中的快速入门脚本。
  • 使用提供的参考运行(results/reference/)在测试新模型之前验证您自己的评判器实现。

以上所有细节均直接取自仓库的 README;未推断任何额外功能。

相关

  • 项目
  • Dispatch
  • Dispatch
  • 项目
  • Dispatch