Keep K3 suite selection and report-schema scoring in bash, merge K3/vision dataset_args into dpv4 yamls, and pin EvalScope at 735d920ee911 with local patches. Co-authored-by: Cursor <cursoragent@cursor.com>
5.3 KiB
5.3 KiB
SLAKE
概述
SLAKE 是一个双语(英语 / 中文)放射学视觉问答基准数据集,由医生基于 CT、MRI 和 X 光图像构建而成。问题既涵盖影像的纯视觉属性,也包含需要结合医学知识才能回答的内容。
任务描述
- 任务类型:医学视觉问答(自由形式的简短答案)
- 输入:一张放射学图像以及一条英文或中文问题
- 输出:单个单词或短语,语言需与问题一致
- 领域:放射学(胸部、腹部、脑部、盆腔、颈部)
主要特点
- 包含 180 张图像上的 2,094 个测试问题,英语(1,061)和中文(1,033)大致均衡
- 每个问题均标注为
OPEN(自由作答)或CLOSED(答案来自小型封闭集合,多为是/否类问题),此分类方式与原始论文一致 - 问题涵盖十种语义类型:器官、位置、异常、知识图谱、模态、大小、层面、数量、颜色和形状
- 知识图谱类问题(
base_type=kvqa)涉及病因、症状、治疗和功能等无法直接从图像中读取的信息
评估说明
- 主要指标:通过归一化精确匹配(normalized exact match)计算准确率,并与唯一参考答案对比
- 结果按四个子集报告:
<language>_<open|closed>,分为英语和中文两类;总体得分为样本加权平均值 - 归一化遵循官方答案预处理规则(转小写、去除标点和冠词、将文字数字转换为阿拉伯数字、统一
x ray为xray),并额外加入生成式问答所需处理:- 英语中 yes/no 的同义词统一归为一个标签
- 中文中表达相同极性的 是的 / 有 / 包含 / 可以 或 不是 / 没有 / 不包含 / 不可以 也统一归为一个标签
- 中文中的 X光 / X射线 和 两个 / 二 统一映射为英文的
X-Ray和对应数字形式
- 答案从提示中要求的
ANSWER:行读取;若模型未输出该行,则对整个回复进行归一化处理,因此仅复述问题的回复得分为 0 - 精确匹配设计上较为严格,与原始分类式评估一致:例如参考答案为
Lung, Spinal Cord、知识图谱中的治疗列表,或T2被回答为T2-weighted时,仅当模型完全复现参考措辞才算正确,因此知识图谱类开放问题的准确率预期较低 - 严格性也会导致仅在措辞或粒度上与参考答案不同的回答被判错(如
Right回答为Right Side,胸腔 回答为 胸部,或多答案参考中只答对其中一项)。设置judge.strategy='llm_recall'可让大语言模型(LLM)重新审核仅因规则判断失败的情况;该分数比已发表结果更宽松,不可直接比较 - 图像以单个
imgs.zip文件形式提供(约 200 MB),直接从压缩包中读取 - 论文 | 项目主页
属性
| 属性 | 值 |
|---|---|
| 基准测试名称 | slake |
| 数据集ID | evalscope/SLAKE |
| 论文 | Paper |
| 标签 | Medical, MultiModal, QA |
| 指标 | accuracy |
| 默认示例数 | 0-shot |
| 评估分割 | test |
数据统计
| 指标 | 值 |
|---|---|
| 总样本数 | 2,094 |
| 提示词长度(平均) | 130.2 字符 |
| 提示词长度(最小/最大) | 60 / 257 字符 |
各子集统计信息:
| 子集 | 样本数 | 提示平均长度 | 提示最小长度 | 提示最大长度 |
|---|---|---|---|---|
en_open |
645 | 195.09 | 168 | 257 |
en_closed |
416 | 187.99 | 162 | 253 |
zh_open |
613 | 67.07 | 61 | 79 |
zh_closed |
420 | 65.44 | 60 | 82 |
图像统计信息:
| 指标 | 值 |
|---|---|
| 总图像数 | 2,094 |
| 每样本图像数 | 最小: 1, 最大: 1, 平均: 1 |
| 分辨率范围 | 240x240 - 1024x1024 |
| 格式 | jpeg |
样例示例
子集: en_open
{
"input": [
{
"id": "4366e0b3",
"content": [
{
"image": "[BASE64_IMAGE: jpeg, ~63.2KB]"
},
{
"text": "What modality is used to take this image?\nAnswer the question with a single word or phrase in English.\nThe last line of your response must be of the form \"ANSWER: <answer>\" (without quotes)."
}
]
}
],
"target": "CT",
"id": 0,
"group_id": 0,
"subset_key": "en_open",
"metadata": {
"qid": 11934,
"img_name": "xmlab102/source.jpg",
"answer_type": "OPEN",
"content_type": "Modality",
"modality": "CT"
}
}
提示模板
未定义提示模板。
使用方法
使用 CLI
evalscope eval \
--model YOUR_MODEL \
--api-url OPENAI_API_COMPAT_URL \
--api-key EMPTY_TOKEN \
--datasets slake \
--limit 10 # 正式评估时请删除此行
使用 Python
from evalscope import run_task
from evalscope.config import TaskConfig
task_cfg = TaskConfig(
model='YOUR_MODEL',
api_url='OPENAI_API_COMPAT_URL',
api_key='EMPTY_TOKEN',
datasets=['slake'],
dataset_args={
'slake': {
# subset_list: ['en_open', 'en_closed', 'zh_open'] # 可选,用于评估特定子集
}
},
limit=10, # 正式评估时请删除此行
)
run_task(task_cfg=task_cfg)