keystone-bench

换掉关键事实,看AI医疗建议会不会跟着变

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 评测安全 🍴 复刻 3 👀 关注 1
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 1131
维护状态 较活跃
是否开源 开源
定价模式 🏷️完全免费 开源基准项目,免费使用

项目预览

keystone-bench 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类评测安全
开发团队xinxuxin
定价模式🏷️完全免费
价格说明开源基准项目,免费使用
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议NOASSERTION
主要语言Python
技术栈/模型ai-safety,benchmark,clinical-decision-support,dataset,evaluation,health,healthbench,large-language-models,llm-evaluation,medical-ai
GitHub 星标★ 1131
上线时间2026-09-07 00:00:00
代码更新2026-10-19
仓库体积26.0 MB
本站数据更新2026-11-12
维护状态较活跃
收录时间2026-09-28
浏览次数3

项目介绍

keystone-bench 是一个面向临床决策支持的评测基准,基于 OpenAI 的 HealthBench 构建。它要解决的问题是:医疗问答里模型给出的答案往往看起来合理,但真正决定结论的关键事实(keystone fact)是否被正确识别,以及当这个关键事实被替换或移除时,模型给出的行动建议是否随之改变,通常没人检验。项目通过抽取答案所依赖的那一条核心证据,构造证据扰动,观察助手动作是否与证据同步变化,从而衡量模型是真正基于证据推理,还是靠语言模式蒙对。核心能力包括关键事实抽取、证据敏感性测试、与 HealthBench 场景对齐的评分流程,以及可复现的数据集与评测脚本。适合做医疗 LLM 安全评估、临床决策辅助系统验证和证据忠实度研究。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-09-28 · 当前星标 ★ 1131

使用教程

难度:进阶 约 15 分钟 部署方式:库/依赖 8 步

环境要求

  • 有一定 Python 基础,能用 pip 安装 PyPI 包(README 未指定 Python 版本)
  • 重建数据时需要能访问 OpenAI 公开的 HealthBench 数据
  • 运行评测需要一个 OpenAI 兼容的 API 端点与密钥(README 示例用 OpenRouter)
  • 判分模型必须和待测模型来自不同厂商

安装与启动步骤

  1. 1安装评测库

    从 PyPI 安装 keystone-bench 包,同时装好 keystone 命令行工具;建议先建一个虚拟环境,避免依赖冲突。

    pip install keystone-bench
  2. 2本地重建数据集

    拉取 OpenAI 公开的 HealthBench 和标签文件,并在本机重建评测数据:仓库目录下输出到 ./dist,否则写到 ~/.cache/keystone/dist。

    keystone build
  3. 3校验重建结果

    把本机重建的文件和仓库发布的哈希逐文件比对,只要哈希不一致,就先不要开始评测。

    keystone build --check
  4. 4查看数据构成

    列出发布集里每个 family 与 layer 的样本数量,可以据此只选需要的子集。

    keystone pairs
  5. 5估算调用开销

    在产生评测费用之前,先估算需要的调用次数与 token 数量。

    keystone estimate --family all --rubric
  6. 6配置模型密钥

    设置 OpenAI 兼容端点的密钥,README 示例用 OpenRouter;如果换成其他端点,请通过 --base-url 指定地址。

    export OPENROUTER_API_KEY=sk-or-v1-xxxxxxxxxxxxxxxx
  7. 7运行基准评测

    先跑全家族 quick 层;待测模型与判分模型须来自不同厂商;结果写入 runs/<family>__<layer>__<model>/。

    keystone run --family all --layer quick --model openrouter/openai/gpt-5.6-terra --judge openrouter/anthropic/claude-sonnet-5
  8. 8对比两次运行

    逐条比较两次运行的结果,查看新版本修复了哪些问题、又引入了哪些退化。

    keystone regress runs/v1 runs/v2

关键配置

配置项必填说明示例
OPENROUTER_API_KEY是评测与判分调用所需的 API 密钥,任何 OpenAI 兼容端点均可sk-or-v1-xxxxxxxxxxxxxxxx
--base-url否把调用指向自定义的 OpenAI 兼容端点,而不是默认端点https://openrouter.ai/api/v1
--family否选择要评测的 family,all 表示发布集里的全部 familyall
--layer否选择数据层 quick、primary、strict、core 或 allquick
--split否选择 dev 或 test 数据划分dev
--no-action否跳过动作判分这一轮分类,减少调用量true

如何确认成功

keystone build --check 逐文件哈希通过;跑完后在 runs/ 对应目录生成 records.jsonl、summary.json 与 REPORT.md。

常见问题

Q:重建的数据放在哪里?

A:在仓库 checkout 中重建到 ./dist,其他情况放到 ~/.cache/keystone/dist;可用 keystone show 0cdca736 查看某条源样本及其孪生样本。

Q:为什么判分模型要换厂商?

A:README 要求 judge 与待测模型来自不同厂商,以避免同源偏好;可用 keystone compare-judges a/records.jsonl b/records.jsonl 比较两个 judge 的 Cohen's kappa。

Q:必须用 OpenRouter 吗?

A:不必。任何 OpenAI 兼容端点都可以,通过 --base-url 指定地址并配置对应密钥即可。

Q:结果应该怎么汇报?

A:按 family 分别汇报,不要合并统计:对照组与扰动组的正确行为相反,且控制族占比很大,合并比率会失真。

Q:怎么接入自己的模型?

A:使用 Python API:load_pairs 取样本,evaluate 传入自己的 model 与 judge 函数,再用 summarize 读取 adaptation_failure 等指标。

注意事项

  • 先执行 keystone estimate 估算调用量,再正式跑评测,因为运行和判分都会产生调用费用。
  • quick 层是均衡子集:每个 family 有 40 个 twins,控制组占 25%;层和 family 可按需替换。
  • 不要只看合并后的总比率;summary.json 含 composition 与 by_family,REPORT.md 会打印分 family 表格。
  • 每个回复会被分类两次(行为分类器 + 动作判分),加 --no-action 可跳过第二次。

核心亮点

  • 用证据扰动而非静态问答来测模型,能区分真推理和模式匹配
  • 基于 HealthBench 构建,场景和评分口径与现有医疗评测生态兼容
  • 聚焦临床决策这一高风险场景,对幻觉和证据不忠实问题有直接针对性

不足之处

  • 项目早期,星标约400,社区规模和第三方复现案例有限
  • 仅覆盖 HealthBench 相关场景,专科和真实电子病历分布覆盖待扩展

适用场景

  • 医疗大模型上线前的证据忠实度与安全性回归测试
  • 临床决策辅助产品对比不同模型对关键检查结果的敏感程度
  • 医疗AI研究团队做证据扰动实验与论文基线评测

替代项目

HealthBench、MedQA、PubMedQA

上一篇:hanshuang-codex

下一篇:superbenchmark

同类项目推荐

MixEval 开源

动态更新评测数据,让模型分数不再虚高

The official evaluation suite and dynamic data release for MixEval.

★ 253 2026-08-09
tool-eval-bench 开源

80+场景实测大模型工具调用靠不靠谱

Tool-calling quality benchmark for LLM serving stacks. 80+ deterministic scenarios t···

★ 423 2026-11-11
secure-ai-tooling 开源

给AI系统做安全体检,用统一框架识别和缓解风险

The CoSAI Risk Map is a framework for identifying, analyzing, and mitigating securit···

★ 105 2026-08-09
FollowBench 开源

用多级细粒度约束,精准测出大模型指令遵循的真实水平

[ACL 2024] FollowBench: A Multi-level Fine-grained Constraints Following Benchmark f···

★ 121 2026-08-09
AI-Infra-Guard 开源

一键扫描AI全链路,提前揪出安全漏洞

A full-stack AI Red Teaming platform securing AI ecosystems via Agent Scan, Skills S···

★ 7468 2026-08-09
eval-assist 开源

用网页交互调教 LLM 当裁判,迭代出靠谱评估标准

EvalAssist is an open-source project that simplifies using large language models as ···

★ 103 2026-09-25
ANeurIPS2024_SPV-MIA 开源

用自提示校准精准识别训练数据,评估大模型隐私泄露风险

[NeurIPS'24] "Membership Inference Attacks against Fine-tuned Large Language Models ···

★ 183 2026-08-09
augustus 开源

一条命令跑 190+ 探针,快速测出大模型安全漏洞

LLM security testing framework for detecting prompt injection, jailbreaks, and adver···

★ 321 2026-10-07
ai-safe2-framework 开源

给 AI 智能体装上治理与合规操作系统,让 AI 安全落地。

The Universal Governance, Risk, Compliance (GRC) Operating System with Integrated Se···

★ 158 2026-08-10