BioASQ

BioASQ — 生物医学语义索引与问答评测基准 AI-Ready Wikipedia

来源 NCSR Demokritos / ATHENA Research Center https://bioasq.org/发布时间: 2026-08-04最后更新: 2026-08-04 阅读 1

信息速览

数据集名称BioASQ
数据类型5389 道训练题(BioASQ14) , 4 类问题类型, 13+ 届年度评测, 免费获取
规模基于已发表文献
接入方式NCSR Demokritos / ATHENA Research Center https://bioasq.org/
AI 就绪度

INFOBOX

数据集名称 BioASQ
英文全称 BioASQ Challenge on Large-Scale Biomedical Semantic Indexing and Question Answering
别名 / 简称 BioASQ、BioASQ-QA、BioASQ Challenge
疾病分类 全域生物医学。覆盖肿瘤学、遗传学、药理学、免疫学、神经科学、内分泌学等 PubMed/MEDLINE 收录的全部生物医学领域
SNOMED CT 全域生物医学本体覆盖。核心映射:64572001 Disease (disorder) / 413350009 Finding (finding) / 386053000 Evaluation procedure (procedure) / 71388002 Procedure (procedure) / 105590001 Substance (substance) 等
数据模态 文本(问题 / 精确答案 / 理想答案 / PubMed 文献 URL / 文本片段 / MeSH 概念标签)
AI 任务类型 生物医学问答(QA)、信息检索(IR)、多文档摘要、语义索引(MeSH 标注)、命名实体识别、文本蕴含、检索增强生成(RAG)
样本总数 训练集 5,389 题(BioASQ14 版本);累计 5,729+ 题(含历届测试集);4 类问题:Yes/No (~1,464) + Factoid (~1,609) + List (~1,048) + Summary (~1,283)
数据大小 ~37.6 MB(训练集 JSON),含完整金标准答案、文献、片段和概念
数据格式 JSON(questions / snippets / documents / concepts / exact_answer / ideal_answer)
数据划分 训练集(5,389 题)+ 年度测试集(4 批次 × ~100-150 题/批)
标注方式 生物医学领域专家手工标注(PhD 级研究员 / 医学信息学家)
金标准 每题含:精确答案(exact_answer)+ 理想答案(ideal_answer,≤200 词专家总结)+ 相关文献列表 + 文本片段 + MeSH 概念
语言 英语(问题与答案)/ 多语言任务扩展:西班牙语(MESINESP)、多语言临床摘要(MultiClinSum)
许可 非商业研究与教育用途免费,商业使用需书面许可,使用者须在 bioasq.org 注册
发布机构 NCSR “Demokritos” / ATHENA Research Center(希腊),获 NIH (5R13LM012214) + EU Commission (318652) 资助
首次发布 2013 年 4 月(BioASQ1)
最新版本 BioASQ13(2025 年),BioASQ14 计划 2026 年 3 月启动
DOI 10.5281/zenodo.7404897(BioASQ11 数据集)
关键论文 Tsatsaronis et al. (2015) BMC Bioinformatics 16:138; Krithara et al. (2023) Scientific Data 10:170
获取方式 https://bioasq.org/ 注册下载;Zenodo 镜像;HuggingFace (jmhb/BioASQ)
维护状态 活跃维护中(2013-2026 连续 13+ 届,每年新增测试数据)

§0 E-E-A-T 声明

声明一:本条目由千方病案医学编辑部进行交叉审核,确保数据集描述、统计数字与技术规格的准确性。所有数据均来自 BioASQ 官方网站(bioasq.org)、Zenodo 记录、HuggingFace 数据集页面及 NCSR Demokritos 发布的论文。

声明二:BioASQ 是用于科学研究的评测基准,不构成医疗建议。数据集中的问题与答案基于已发表的 PubMed 文献,不能替代临床诊断或治疗决策。

声明三:BioASQ 数据集的使用须遵守其非商业许可条款。使用者须在 bioasq.org 注册,引用 BioASQ 相关论文,并承认数据集来源。商业使用须获得组织者书面许可。

§1 数据集概览

§1.1 30 秒速览

BioASQ 是全球运行时间最长、最具影响力的生物医学语义索引与问答评测基准。自 2013 年由 NCSR “Demokritos” 发起以来,已连续举办 13+ 届年度挑战赛(2026 年将启动第 14 届),累计产生 5,729+ 道由生物医学专家精心标注的问题。BioASQ Task B 涵盖四种问题类型——是非题(Yes/No)、事实型题(Factoid)、列表型题(List)和摘要型题(Summary)——每题均配备精确答案、理想答案(专家撰写的段落级总结)、相关 PubMed 文献和文本片段,是评测 LLM 生物医学知识与 RAG 系统能力的黄金标准。

§1.2 战略价值

维度 说明
评测深度 4 类问题覆盖从简单事实检索到多文档摘要的全谱系 QA 能力,远超单类型数据集
专家标注 PhD 级生物医学专家手工创建,金标准答案质量极高,含精确答案 + 理想答案双层标注
持续运营 2013-2026 连续 13+ 届,每年新增测试数据,是生物医学 NLP 领域运行时间最长的评测
LLM 时代适配 2023 年起已成为评测 GPT-4/5、Med-PaLM、BiomedGPT 等医疗 LLM 的标准基准之一
RAG 基准 Task B 的 Phase A/B 结构天然适配 RAG 管道评测(检索 + 生成)
生态丰富 衍生任务:MESINESP(西班牙语索引)、MultiClinSum(多语言摘要)、Synergy(动态主题)、BioNNE-R(嵌套 NER)等

§1.3 横向对比

数据集 问题数 问题类型 答案标注深度 文献支持 持续运营
BioASQ 5,729+ 4 类(Y/N/F/L/S) 精确 + 理想双层 PubMed + 片段 2013-2026 (13+ 届)
MedQA 12,723 1 类(选择题) 选项级 否(静态)
PubMedQA 1,000 1 类(Y/N + 长答案) 是/否 + 推理 1 篇/题 否(静态)
MedMCQA 194,000 1 类(选择题) 选项级 否(静态)
MMLU (Medical) ~1,500 1 类(选择题) 选项级 否(静态)
TREC PM 155 1 类(IR 主题) 相关性判定 PubMed + CT.gov 4 届 (2017-2020)
LiveQA Medical ~200 1 类(消费者健康) 参考答案 5 届 (2015-2019)

§1.4 时间轴

时间 里程碑
2013-04 BioASQ1 启动,首次提出 Task A(MeSH 语义索引)和 Task B(生物医学问答)双任务架构
2013-09 BioASQ1 在 CLEF 2013 举办 Workshop,发布首版训练集 500 题
2015-05 Tsatsaronis et al. 在 BMC Bioinformatics 发表 BioASQ 概述论文(引用 1,500+),成为生物医学 NLP 领域经典
2016-03 BioASQ4 引入 Phase A/B 分离架构(Phase A: 检索;Phase B: 问答),成为后续评测标准范式
2017-09 BioASQ5 扩展至 1,500+ 训练题,停止接受 Factoid/List 同义词提交
2019-01 BioASQ7 引入 Task Synergy(动态主题),在主题正式发布前测试系统对新兴研究方向的 QA 能力
2020-10 BioASQ8 扩展至 2,500+ 训练题,新增西班牙语 Task MESINESP
2022-12 Krithara et al. 在 bioRxiv 发布 BioASQ-QA 数据集论文,系统整理 10 年标注成果
2023-02 Krithara et al. 在 Nature Scientific Data 发表 BioASQ-QA 论文(DOI: 10.1038/s41597-023-02055-6),训练集 4,700+ 题
2023-06 GPT-4 在 BioASQ Task B Yes/No 上达到 ~89% 准确率,验证 LLM 在专家级生物医学 QA 上的可行性
2024-09 BioASQ12 引入 Task MultiClinSum(多语言临床摘要),覆盖英语/西班牙语/法语/葡萄牙语
2025-08 BioASQ13 在 CLEF 2025 举办;Fudan 团队获 Task Synergy 多轮第一;ParallaxRAG+Qwen3-Plus 达 93.51% Yes/No 准确率
2025-12 BioASQ14 公布 2026 年计划:Task 14B(3 月)、MultiClinSum-2(3 月)、Synergy(1 月)、BioNNE-R(2 月)、ElCardioCC(2 月)、GutBrainIE(2 月)

§1.5 典型使用场景

场景 描述 推荐任务
LLM 医学知识评测 评估 GPT-4/5、Med-PaLM 等在专家级生物医学 QA 上的表现 Task B (Yes/No + Factoid)
RAG 管道端到端评测 评测检索 + 生成的完整管道在生物医学领域的表现 Task B (Phase A + B)
多文档摘要研究 基于 4 类问题的理想答案,研究多文档生物医学摘要生成 Task B (Summary)
生物医学 IR 评测 评测文献检索系统在专家级查询上的召回与精度 Task B (Phase A)
MeSH 语义索引研究 大规模自动 MeSH 标注(已完成历史使命,Task A 已停办) Task A (已停办)
多语言医疗 NLP 西班牙语医学索引、多语言临床摘要 MESINESP / MultiClinSum

§2 医学背景与术语映射

§2.1 ICD-11 映射

BioASQ 覆盖全域生物医学领域,以下为问题中高频涉及的 ICD-11 分类映射:

ICD-11 编码 分类名称 BioASQ 中的应用场景
2A00-2F9Z 肿瘤(Neoplasms) 癌症机制、靶向治疗、肿瘤标志物相关问答
3A00-3ZZZ 神经系统疾病 神经退行性疾病、神经递质、脑结构问答
5A00-5ZZZ 内分泌/营养/代谢疾病 糖尿病、甲状腺功能、代谢通路问答
6A00-6ZZZ 精神/行为/神经发育障碍 精神疾病分子机制、精神药理学问答
4A00-4B0Z 免疫系统疾病 自身免疫病、免疫检查点、细胞因子问答
BA00-BA4Z 泌尿生殖系统疾病 肾脏病理、生殖内分泌问答
CA00-CA4Z 皮肤疾病 皮肤病理、真皮免疫问答
DA00-DA4Z 呼吸系统疾病 哮喘机制、肺部感染、COPD 问答
DB00-DB4Z 消化系统疾病 炎症性肠病、肝脏代谢、胃肠激素问答
EA00-EH0Z 皮肤与乳腺 乳腺肿瘤标志物、皮肤自身免疫问答
XA00-X0Z 传染病 病毒感染机制、抗生素耐药、疫苗研发问答
1A00-1C0Z 某些传染病 HIV、结核、肝炎相关生物医学问答
7A00-7ZZZ 循环系统疾病 心血管病理、脂质代谢、凝血通路问答
8A00-8ZZZ 眼及附属器疾病 视网膜病变、青光眼机制问答
9A00-9ZZZ 耳及乳突疾病 听力损伤分子机制、中耳感染问答

§2.2 SNOMED CT 映射

SNOMED CT 编码 概念名称 在 BioASQ 中的关联
64572001 Disease (disorder) 通用疾病概念,问答中涉及的疾病主体
413350009 Finding (finding) 临床发现,Factoid/List 问题的常见答案类型
386053000 Evaluation procedure (procedure) 诊断/评估操作,Factoid 问题的主题
71388002 Procedure (procedure) 医疗操作,List 问题中的治疗方案列举
105590001 Substance (substance) 药物/化学物质,Factoid/List 问题的核心答案
363787002 Microbial infectious agent (organism) 病原体,传染病相关问题的答案
91723000 Anatomical structure (body structure) 解剖结构,Factoid 问题中的人体部位
123038009 Specimen (specimen) 检测样本,生物医学实验相关问答
276339004 Body system 生理系统,系统级疾病机制问答
260787004 Physical object (physical object) 医疗器械/设备,实验工具相关问答

§2.3 UMLS 概念标准化

BioASQ 使用 UMLS Metathesaurus 对问题中的生物医学概念进行标准化标注:

UMLS 语义类型 在 BioASQ 中的应用 问题示例
T047 Disease or Syndrome 疾病实体识别与标准化 “Is BRCA1 mutation associated with breast cancer?”
T109 Chemical/Pharmacologic Substance 药物/化学物质标准化 “What drug is used to treat chronic myeloid leukemia?”
T028 Gene/Genome 基因实体标准化 “Which gene is responsible for cystic fibrosis?”
T061 Therapeutic Procedure 治疗操作标准化 “List the treatment options for multiple sclerosis.”
T023 Biomedical Occupation 生物医学职业 “What is the role of osteoclasts in bone remodeling?”
T191 Neoplastic Process 肿瘤过程 “Summarize the molecular mechanisms of tumor suppressor genes.”

§2.4 问题类型详解

问题类型 定义 精确答案格式 评估指标 典型示例
Yes/No 二元判断题,要求系统判断给定陈述是否正确 “yes” 或 “no” Accuracy, Macro F1 (Yes), Macro F1 (No) “Is Huntington’‘’‘’‘’‘’‘’‘’‘’'s disease a polyglutamine expansion disorder?” → “yes”
Factoid 事实型题,要求提取简短事实信息(人名/药名/数字等) 最多 5 个实体名/数字/短表达,按置信度排序 MRR (Mean Reciprocal Rank), Lenient Accuracy “Which kinase does imatinib target?” → “BCR-ABL tyrosine kinase”
List 列表型题,要求返回组成单一答案的实体列表 实体列表(≤100 条,每条 ≤100 字符) Mean Precision, F-measure “List the genes involved in DNA mismatch repair.” → [“MLH1”, “MSH2”, “MSH6”, “PMS2”, “PMS1”]
Summary 摘要型题,要求生成段落级总结 无精确答案,仅理想答案(≤200 词) 人工评估 (Readability, Recall, Precision, Repetition) “Summarize the role of p53 in cancer.” → 专家撰写的 200 词总结段落

§2.5 评测任务体系

BioASQ 经过 13+ 届发展,已形成多任务评测体系:

任务 全称 描述 状态
Task A Large-scale Biomedical Semantic Indexing 大规模 PubMed 文章自动 MeSH 标注 已停办(已完成历史使命)
Task B Biomedical Semantic QA 生物医学语义问答(4 类问题) 活跃(2026 年第 14 届)
Task Synergy Biomedical Semantic QA for Developing Topics 针对新兴研究方向的动态主题问答 活跃(2026 年 1 月启动)
Task MESINESP Medical Semantic Indexing in Spanish 西班牙语医学文献语义索引 间歇举办
Task MultiClinSum Multilingual Clinical Summarization 多语言临床文本摘要(EN/ES/FR/PT) 活跃(2026 年第 2 届)
Task BioNNE-R Biomedical Nested Named Entity Recognition 生物医学嵌套命名实体识别 新任务(2026 年 2 月启动)
Task ElCardioCC Electrocardiogram Classification 心电图分类 新任务(2026 年 2 月启动)
Task GutBrainIE Gut-Brain Axis Information Extraction 肠脑轴信息提取 新任务(2026 年 2 月启动)

§3 技术规格与数据结构

§3.1 版本抉择矩阵

版本/来源 获取方式 问题数 适用场景 推荐度
BioASQ14 训练集 participants-area.bioasq.org 注册 5,389 最新训练数据,2026 评测准备 ⭐⭐⭐⭐⭐
BioASQ11 Zenodo doi.org/10.5281/zenodo.7404897 4,700+ 学术引用标配,DOI 可溯源 ⭐⭐⭐⭐⭐
HuggingFace (jmhb/BioASQ) huggingface.co/datasets/jmhb/BioASQ 5,404 快速加载,按类型分拆,无需注册 ⭐⭐⭐⭐
BioASQ1-10 历届数据 bioasq.org 历史页面 各届不同 历史对比研究、纵向分析 ⭐⭐⭐
Task A MeSH 标注数据 bioasq.org (已归档) ~15M PubMed 文章 MeSH 自动标注研究(已停办但数据可用) ⭐⭐

§3.2 JSON 数据格式详解

BioASQ 训练集以单一 JSON 文件(training14b.json)分发,顶层结构如下:

{
  "questions": [
    {
      "id": "516eb51f8ed59a060a000027",
      "type": "yesno",
      "body": "Is Huntington''''''''''''''''s disease a polyglutamine expansion disorder?",
      "documents": [
        "http://www.ncbi.nlm.nih.gov/pubmed/19204142",
        "http://www.ncbi.nlm.nih.gov/pubmed/15044905"
      ],
      "snippets": [
        {
          "document": "http://www.ncbi.nlm.nih.gov/pubmed/19204142",
          "text": "Huntington''''''''''''''''s disease (HD) is an autosomal dominant neurodegenerative disorder caused by an expansion of a CAG trinucleotide repeat...",
          "beginSection": "abstract",
          "offsetInBeginSection": 0,
          "endSection": "abstract",
          "offsetInEndSection": 180
        }
      ],
      "concepts": [
        "http://www.nlm.nih.gov/cgi/mesh/2007/MB_cgi?field=uid&mode=&term=D008694",
        "http://www.nlm.nih.gov/cgi/mesh/2007/MB_cgi?field=uid&mode=&term=D015019"
      ],
      "ideal_answer": "Yes, Huntington''''''''''''''''s disease is a polyglutamine expansion disorder caused by an expansion of CAG trinucleotide repeat in the huntingtin gene.",
      "exact_answer": "yes"
    },
    {
      "id": "516eb51f8ed59a060a000028",
      "type": "factoid",
      "body": "Which kinase does imatinib target?",
      "documents": ["http://www.ncbi.nlm.nih.gov/pubmed/16543801"],
      "snippets": [...],
      "concepts": [...],
      "ideal_answer": "Imatinib targets the BCR-ABL tyrosine kinase, which is formed by the Philadelphia chromosome translocation in chronic myeloid leukemia.",
      "exact_answer": [["BCR-ABL tyrosine kinase"]]
    },
    {
      "id": "516eb51f8ed59a060a000029",
      "type": "list",
      "body": "List the genes involved in DNA mismatch repair.",
      "documents": [...],
      "snippets": [...],
      "concepts": [...],
      "ideal_answer": "The main genes involved in DNA mismatch repair include MLH1, MSH2, MSH6, PMS2, and PMS1...",
      "exact_answer": [["MLH1"], ["MSH2"], ["MSH6"], ["PMS2"], ["PMS1"]]
    },
    {
      "id": "516eb51f8ed59a060a000030",
      "type": "summary",
      "body": "Summarize the role of p53 in cancer.",
      "documents": [...],
      "snippets": [...],
      "concepts": [...],
      "ideal_answer": "p53 is a tumor suppressor protein that plays a central role in cellular stress responses...",
      "exact_answer": null
    }
  ]
}

§3.3 数据字段说明

字段名 数据类型 必填 说明
id String 问题唯一标识符(MongoDB ObjectId 格式)
type String 问题类型:yesno / factoid / list / summary
body String 问题正文
documents Array<String> 相关 PubMed 文档 URL 列表
snippets Array<Object> 文本片段数组(含 document, text, beginSection, offsetInBeginSection, endSection, offsetInEndSection
concepts Array<String> 可选 MeSH 概念 URL 列表
ideal_answer String 专家撰写的理想答案(段落级总结,≤200 词)
exact_answer String/Array 条件必填 精确答案:yesno→“yes”/“no”;factoid→嵌套数组;list→嵌套数组;summary→null

§3.4 数据来源与标注管道

PubMed/MEDLINE 文献库 (~36M 篇)
        │
        ▼
┌─────────────────────────┐
│  NCSR Demokritos        │
│  生物医学专家团队        │
│  (PhD级研究员)          │
└────────┬────────────────┘
         │
    ┌────┴────┐
    │ 阶段 1  │ 问题创建:基于文献阅读,专家撰写真实信息需求
    └────┬────┘
         │
    ┌────┴────┐
    │ 阶段 2  │ 文献标注:人工检索 PubMed,标注相关文献
    └────┬────┘
         │
    ┌────┴────┐
    │ 阶段 3  │ 片段提取:从文献中提取支持性文本片段
    └────┬────┘
         │
    ┌────┴────┐
    │ 阶段 4  │ 概念标注:UMLS Metathesaurus 标准化概念
    └────┬────┘
         │
    ┌────┴────┐
    │ 阶段 5  │ 精确答案:yes/no / 实体列表 / null(summary)
    └────┬────┘
         │
    ┌────┴────┐
    │ 阶段 6  │ 理想答案:专家撰写 ≤200 词总结段落
    └────┬────┘
         │
    ┌────┴────┐
    │ 阶段 7  │ 评测后增强:根据参赛系统提交的答案扩展金标准
    └─────────┘

§3.5 评估指标体系

问题类型 评估指标 说明
Yes/No Accuracy 正确判断的比例
Macro F1 (Yes) “Yes” 类别的 F1 分数
Macro F1 (No) “No” 类别的 F1 分数
Factoid MRR (Mean Reciprocal Rank) 正确答案在返回列表中的倒数排名的均值
Lenient Accuracy 前 5 个返回答案中包含正确答案的比例
List Mean Precision 返回列表中正确实体的比例
F-measure 精确率与召回率的调和均值
Summary Manual Readability 人工评估:可读性
Manual Recall 人工评估:信息覆盖度(召回率)
Manual Precision 人工评估:信息精确度
Manual Repetition 人工评估:冗余度(反向指标)
Mean Manual Score 以上 4 项的人工评分均值
综合排名 AVG Ranking 基于各类型指标的排名均值(Exact Answers)

§3.6 工具生态

工具/库 类型 功能 链接
BioASQ Evaluation Scripts 官方评估脚本 Task B 各类型问题的标准评估 bioasq.org
HuggingFace datasets Python 库 一行代码加载 BioASQ 数据集 huggingface.co/datasets/jmhb/BioASQ
ir_datasets Python 库 信息检索基准加载框架(含 BioASQ) ir-datasets.com
PyTerrier Python 库 信息检索实验框架,支持 BioASQ IR 评测 github.com/terrier-org/pyterrier
BEIR Python 库 零样本 IR 评估框架 github.com/beir-cellar/beir
BioBERT 预训练模型 生物医学领域 BERT,适用于 BioASQ QA github.com/dmis-lab/biobert
PubMedBERT 预训练模型 PubMed 全文预训练 BERT huggingface.co/microsoft/PubMedBERT
BioASQ Participants Forum 社区论坛 参赛者讨论与问题解答 participants-area.bioasq.org

§4 数据结构与统计

§4.1 目录树

bioasq/
├── training14b.json                    # BioASQ14 训练集 (5,389 题, ~37.6MB)
├── test_batches/
│   ├── batch1_test/
│   │   ├── questions.json              # Batch 1 测试问题 (仅问题)
│   │   └── gold_standard/
│   │       ├── questions_gold.json     # Batch 1 金标准答案
│   │       └── qrels.txt               # 相关性判定文件
│   ├── batch2_test/
│   ├── batch3_test/
│   └── batch4_test/
├── sample_data/
│   ├── task8b_sample.json              # Task 8B 示例数据 (无需注册)
│   └── task8a_sample.json              # Task 8A 示例数据
└── evaluation/
    ├── eval_scripts/                   # 评估脚本
    └── gold_standards/                 # 增强后的金标准答案

§4.2 数据统计

统计项 数值 说明
总问题数(训练集) 5,389 BioASQ14 版本
Yes/No 问题 ~1,464 (~27.2%) 二元判断题
Factoid 问题 ~1,609 (~29.9%) 事实型题
List 问题 ~1,048 (~19.4%) 列表型题
Summary 问题 ~1,283 (~23.8%) 摘要型题
累计问题数(含测试集) 5,729+ 2013-2025 全部 13 届
平均每题文献数 ~3-5 篇 相关 PubMed 文章
平均每题片段数 ~5-10 条 文本片段
理想答案平均长度 ~50-150 词 ≤200 词上限
文件大小 ~37.6 MB 训练集 JSON
JSON 顶层键 questions 数组类型

§4.3 问题类型分布

BioASQ14 训练集 5,389 题类型分布
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Factoid   ████████████████████████████████ 1,609 (29.9%)
Yes/No    ████████████████████████████     1,464 (27.2%)
Summary   ████████████████████████         1,283 (23.8%)
List      ████████████████████             1,048 (19.4%)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

§4.4 主题领域覆盖

领域 占比估计 典型问题示例
肿瘤学 ~20% “Which gene mutations are associated with hereditary breast cancer?”
遗传学 ~15% “What is the function of the BRCA1 protein?”
药理学 ~12% “What is the mechanism of action of metformin?”
免疫学 ~10% “How does the complement system activate?”
神经科学 ~10% “What are the pathological hallmarks of Alzheimer’‘’‘’‘’‘’‘’‘’‘’'s disease?”
内分泌学 ~8% “What hormones are produced by the anterior pituitary?”
心血管 ~7% “What is the role of LDL in atherosclerosis?”
感染病学 ~7% “What is the life cycle of Plasmodium falciparum?”
其他 ~11% 方法论、生物信息学、解剖学等

§4.5 数据缺失值

缺失项 影响 处理建议
部分早期问题无 concepts 字段 概念级分析不完整 跳过概念字段,使用问题正文进行 NER
Summary 问题无 exact_answer 正常(设计如此) 仅使用 ideal_answer 进行评估
部分问题的 snippets 数量较少 检索增强信息不足 使用 documents URL 自行抓取 PubMed 摘要补充
测试集金标准在评测后增强 评测后金标准与初始不同 以最终增强版金标准为准

§5 数据划分与评测协议

§5.1 官方划分策略

BioASQ 采用训练集 + 年度测试集的双层划分模式:

划分 数据量 释放时间 用途
训练集 (training set) 5,389 题 持续可用(需注册) 系统训练与开发
开发集 (dry-run) ~50 题 年度评测前 系统调试与格式验证
测试集 (test set) ~400-600 题/年 每年 4 批次 年度评测排名

§5.2 测试集评测协议

BioASQ Task B 的年度评测遵循严格的时序协议:

┌─────────────────────────────────────────────────────────┐
│              BioASQ Task B 年度评测时间线                 │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  训练集 ──► 系统开发 ──► Dry-run ──► Batch 1-4 测试     │
│  (持续)     (数月)       (1 周)      (每批 24h 限时)      │
│                                      │                  │
│                         ┌────────────┘                  │
│                         ▼                               │
│              ┌─────────────────────┐                    │
│              │ Phase A: 检索        │  24h 内提交        │
│              │ (文献 + 片段)        │  相关文献与片段     │
│              └──────────┬──────────┘                    │
│                         ▼                               │
│              ┌─────────────────────┐                    │
│              │ Phase B: 问答        │  24h 内提交        │
│              │ (精确 + 理想答案)    │  精确与理想答案     │
│              └──────────┬──────────┘                    │
│                         ▼                               │
│              ┌─────────────────────┐                    │
│              │ 金标准增强           │  专家审核系统提交   │
│              │ (post-hoc)          │  扩展金标准         │
│              └──────────┬──────────┘                    │
│                         ▼                               │
│              ┌─────────────────────┐                    │
│              │ 官方评估             │  计算各类型指标     │
│              │ + 排名发布           │  公布结果           │
│              └─────────────────────┘                    │
│                                                         │
└─────────────────────────────────────────────────────────┘

§5.3 推荐自定义划分

对于不参加官方评测的研究者,推荐以下划分用于模型训练与评估:

划分 来源 问题数 用途
训练集 BioASQ1-10 训练集 ~4,000 模型微调
验证集 BioASQ11 dry-run + Batch 1-2 ~200 超参数调优
测试集 BioASQ12 Batch 3-4 ~200 最终性能评估

§5.4 数据泄漏风险

风险 严重度 说明 缓解措施
LLM 预训练污染 ⭐⭐⭐⭐⭐ GPT-4/5 等模型可能在预训练时见过 BioASQ 训练集 使用最新测试批次(Batch 4)进行评估
训练/测试主题重叠 ⭐⭐⭐ 历届测试集主题可能与训练集部分重叠 检查测试集问题与训练集的相似度
金标准动态更新 ⭐⭐ 评测后金标准包含参赛系统发现的新答案 使用评测前初始金标准进行独立评估
公开 HuggingFace 版本 ⭐⭐ HuggingFace 版本可能被 LLM 爬取 使用 Zenodo 注册版本进行评估

§5.5 外部验证数据集

数据集 领域 问题数 用途
PubMedQA 生物医学 Y/N QA 1,000 Yes/No 类型交叉验证
MedQA (USMLE) 医学执照考试 12,723 Factoid 类型交叉验证
MedMCQA 印度医学考试 194,000 选择题交叉验证
MMLU (Medical) 多领域医学 ~1,500 通用医学知识交叉验证
BioMRC 生物医学阅读理解 ~5,000 Factoid/Summary 交叉验证
HEAD-QA 西班牙语医学考试 ~7,000 多语言交叉验证
LiveQA Medical 消费者健康 QA ~200 面向用户 QA 交叉验证
MedNLI 生物医学自然语言推理 ~14,000 文本蕴含交叉验证

§6 AI 就绪指南

§6.1 快速加载(HuggingFace)

from datasets import load_dataset

# 加载全部问题类型
dataset = load_dataset("jmhb/BioASQ")

# 按类型加载
factoid = load_dataset("jmhb/BioASQ", split="factoid")
yesno = load_dataset("jmhb/BioASQ", split="yesno")
summary = load_dataset("jmhb/BioASQ", split="summary")
list_q = load_dataset("jmhb/BioASQ", split="list")

print(f"Factoid: {len(factoid)} | Yes/No: {len(yesno)}")
print(f"Summary: {len(summary)} | List: {len(list_q)}")
# Factoid: 1609 | Yes/No: 1464 | Summary: 1283 | List: 1048

§6.2 JSON 训练集加载与预处理

import json
import re
from typing import Dict, List, Tuple

def load_bioasq_json(filepath: str) -> List[Dict]:
    """加载 BioASQ JSON 训练集"""
    with open(filepath, ''''''''''''''''r'''''''''''''''', encoding=''''''''''''''''utf-8'''''''''''''''') as f:
        data = json.load(f)
    return data[''''''''''''''''questions'''''''''''''''']

def preprocess_question(q: Dict) -> Dict:
    """预处理单个问题"""
    processed = {
        ''''''''''''''''id'''''''''''''''': q[''''''''''''''''id''''''''''''''''],
        ''''''''''''''''type'''''''''''''''': q[''''''''''''''''type''''''''''''''''],
        ''''''''''''''''body'''''''''''''''': q[''''''''''''''''body''''''''''''''''].strip(),
        ''''''''''''''''ideal_answer'''''''''''''''': q.get(''''''''''''''''ideal_answer'''''''''''''''', '''''''''''''''''''''''''''''''').strip(),
        ''''''''''''''''documents'''''''''''''''': q.get(''''''''''''''''documents'''''''''''''''', []),
        ''''''''''''''''snippets'''''''''''''''': q.get(''''''''''''''''snippets'''''''''''''''', []),
        ''''''''''''''''concepts'''''''''''''''': q.get(''''''''''''''''concepts'''''''''''''''', []),
    }
    
    # 按类型处理精确答案
    if q[''''''''''''''''type''''''''''''''''] == ''''''''''''''''yesno'''''''''''''''':
        processed[''''''''''''''''exact_answer''''''''''''''''] = q.get(''''''''''''''''exact_answer'''''''''''''''', '''''''''''''''''''''''''''''''').lower().strip()
    elif q[''''''''''''''''type''''''''''''''''] == ''''''''''''''''factoid'''''''''''''''':
        # exact_answer 是嵌套列表 [[answer1], [answer2], ...]
        raw = q.get(''''''''''''''''exact_answer'''''''''''''''', [])
        if isinstance(raw, list) and len(raw) > 0:
            processed[''''''''''''''''exact_answer''''''''''''''''] = [
                item[0] if isinstance(item, list) else item 
                for item in raw
            ]
        else:
            processed[''''''''''''''''exact_answer''''''''''''''''] = []
    elif q[''''''''''''''''type''''''''''''''''] == ''''''''''''''''list'''''''''''''''':
        raw = q.get(''''''''''''''''exact_answer'''''''''''''''', [])
        processed[''''''''''''''''exact_answer''''''''''''''''] = [
            item[0] if isinstance(item, list) else item 
            for item in raw
        ] if isinstance(raw, list) else []
    else:  # summary
        processed[''''''''''''''''exact_answer''''''''''''''''] = None
    
    # 提取片段文本用于 RAG
    processed[''''''''''''''''snippet_texts''''''''''''''''] = [
        s.get(''''''''''''''''text'''''''''''''''', '''''''''''''''''''''''''''''''') for s in q.get(''''''''''''''''snippets'''''''''''''''', [])
    ]
    
    return processed

# 使用示例
questionevent-blocked= load_bioasq_json(''''''''''''''''training14b.json'''''''''''''''')
processed = [preprocess_question(q) for q in questions]

# 按类型分组
by_type = {}
for q in processed:
    by_type.setdefault(q[''''''''''''''''type''''''''''''''''], []).append(q)

for qtype, qs in by_type.items():
    print(f"{qtype}: {len(qs)} questions")

§6.3 PyTorch Dataset 封装

import torch
from torch.utils.data import Dataset, DataLoader
from transformers import AutoTokenizer

class BioASQDataset(Dataset):
    """BioASQ Task B PyTorch Dataset"""
    
    def __init__(self, questions: List[Dict], tokenizer, max_length: int = 512):
        self.questionevent-blocked= questions
        self.tokenizer = tokenizer
        self.max_length = max_length
    
    def __len__(self):
        return len(self.questions)
    
    def __getitem__(self, idx):
        q = self.questions[idx]
        
        # 构建输入:问题 + 检索到的片段(RAG 模式)
        conevent-blocked= " ".join(q[''''''''''''''''snippet_texts''''''''''''''''][:3])  # 取前3个片段
        input_text = f"Question: {q[''''''''''''''''body'''''''''''''''']}\nContext: {context}"
        
        encoding = self.tokenizer(
            input_text,
            max_length=self.max_length,
            padding=''''''''''''''''max_length'''''''''''''''',
            truncation=True,
            return_tensors=''''''''''''''''pt''''''''''''''''
        )
        
        # 按类型构建标签
        if q[''''''''''''''''type''''''''''''''''] == ''''''''''''''''yesno'''''''''''''''':
            label = 1 if q[''''''''''''''''exact_answer''''''''''''''''] == ''''''''''''''''yes'''''''''''''''' else 0
            return {
                ''''''''''''''''input_ids'''''''''''''''': encoding[''''''''''''''''input_ids''''''''''''''''].squeeze(),
                ''''''''''''''''attention_mask'''''''''''''''': encoding[''''''''''''''''attention_mask''''''''''''''''].squeeze(),
                ''''''''''''''''label'''''''''''''''': torch.tensor(label, dtype=torch.long),
                ''''''''''''''''type'''''''''''''''': ''''''''''''''''yesno'''''''''''''''',
                ''''''''''''''''id'''''''''''''''': q[''''''''''''''''id'''''''''''''''']
            }
        elif q[''''''''''''''''type''''''''''''''''] == ''''''''''''''''summary'''''''''''''''':
            # 摘要任务:用 ideal_answer 作为目标
            target_encoding = self.tokenizer(
                q[''''''''''''''''ideal_answer''''''''''''''''],
                max_length=200,
                padding=''''''''''''''''max_length'''''''''''''''',
                truncation=True,
                return_tensors=''''''''''''''''pt''''''''''''''''
            )
            return {
                ''''''''''''''''input_ids'''''''''''''''': encoding[''''''''''''''''input_ids''''''''''''''''].squeeze(),
                ''''''''''''''''attention_mask'''''''''''''''': encoding[''''''''''''''''attention_mask''''''''''''''''].squeeze(),
                ''''''''''''''''labels'''''''''''''''': target_encoding[''''''''''''''''input_ids''''''''''''''''].squeeze(),
                ''''''''''''''''type'''''''''''''''': ''''''''''''''''summary'''''''''''''''',
                ''''''''''''''''id'''''''''''''''': q[''''''''''''''''id'''''''''''''''']
            }
        else:
            # Factoid/List:用 ideal_answer 作为生成目标
            target_encoding = self.tokenizer(
                q[''''''''''''''''ideal_answer''''''''''''''''],
                max_length=200,
                padding=''''''''''''''''max_length'''''''''''''''',
                truncation=True,
                return_tensors=''''''''''''''''pt''''''''''''''''
            )
            return {
                ''''''''''''''''input_ids'''''''''''''''': encoding[''''''''''''''''input_ids''''''''''''''''].squeeze(),
                ''''''''''''''''attention_mask'''''''''''''''': encoding[''''''''''''''''attention_mask''''''''''''''''].squeeze(),
                ''''''''''''''''labels'''''''''''''''': target_encoding[''''''''''''''''input_ids''''''''''''''''].squeeze(),
                ''''''''''''''''type'''''''''''''''': q[''''''''''''''''type''''''''''''''''],
                ''''''''''''''''exact_answer'''''''''''''''': q[''''''''''''''''exact_answer''''''''''''''''],
                ''''''''''''''''id'''''''''''''''': q[''''''''''''''''id'''''''''''''''']
            }

# 使用示例
tokenizer = AutoTokenizer.from_pretrained("microsoft/BiomedNLP-PubMedBERT-base-uncased-abstract")
dataset = BioASQDataset(processed, tokenizer)
dataloader = DataLoader(dataset, batch_size=8, shuffle=True)

§6.4 LLM 评估脚本

import openai
from typing import List, Dict
import time

def evaluate_llm_on_bioasq(
    questions: List[Dict], 
    model: str = "gpt-4o",
    use_rag: bool = True
) -> Dict[str, float]:
    """使用 LLM 评估 BioASQ Task B"""
    
    results = {''''''''''''''''yesno'''''''''''''''': [], ''''''''''''''''factoid'''''''''''''''': [], ''''''''''''''''list'''''''''''''''': [], ''''''''''''''''summary'''''''''''''''': []}
    
    for q in questions:
        # 构建 prompt
        conevent-blocked= ""
        if use_rag and q[''''''''''''''''snippet_texts'''''''''''''''']:
            conevent-blocked= "\n\nRelevant context:\n" + "\n".join(q[''''''''''''''''snippet_texts''''''''''''''''][:3])
        
        if q[''''''''''''''''type''''''''''''''''] == ''''''''''''''''yesno'''''''''''''''':
            prompt = f"Answer the following biomedical question with ''''''''''''''''yes'''''''''''''''' or ''''''''''''''''no'''''''''''''''' only.\n\nQuestion: {q[''''''''''''''''body'''''''''''''''']}{context}\n\nAnswer:"
            responevent-blocked= openai.chat.completions.create(
                model=model,
                messages=[{"role": "user", "content": prompt}],
                max_tokens=5,
                temperature=0
            )
            pred = response.choices[0].message.content.strip().lower()
            pred = ''''''''''''''''yes'''''''''''''''' if ''''''''''''''''yes'''''''''''''''' in pred else ''''''''''''''''no''''''''''''''''
            results[''''''''''''''''yesno''''''''''''''''].append({
                ''''''''''''''''id'''''''''''''''': q[''''''''''''''''id''''''''''''''''],
                ''''''''''''''''gold'''''''''''''''': q[''''''''''''''''exact_answer''''''''''''''''],
                ''''''''''''''''pred'''''''''''''''': pred,
                ''''''''''''''''correct'''''''''''''''': pred == q[''''''''''''''''exact_answer'''''''''''''''']
            })
        
        elif q[''''''''''''''''type''''''''''''''''] == ''''''''''''''''factoid'''''''''''''''':
            prompt = f"Answer the following biomedical question with a short factual answer.\n\nQuestion: {q[''''''''''''''''body'''''''''''''''']}{context}\n\nAnswer:"
            responevent-blocked= openai.chat.completions.create(
                model=model,
                messages=[{"role": "user", "content": prompt}],
                max_tokens=50,
                temperature=0
            )
            pred = response.choices[0].message.content.strip()
            results[''''''''''''''''factoid''''''''''''''''].append({
                ''''''''''''''''id'''''''''''''''': q[''''''''''''''''id''''''''''''''''],
                ''''''''''''''''gold'''''''''''''''': q[''''''''''''''''exact_answer''''''''''''''''],
                ''''''''''''''''pred'''''''''''''''': pred
            })
        
        elif q[''''''''''''''''type''''''''''''''''] == ''''''''''''''''list'''''''''''''''':
            prompt = f"List the items that answer the following biomedical question. Use a comma-separated list.\n\nQuestion: {q[''''''''''''''''body'''''''''''''''']}{context}\n\nAnswer:"
            responevent-blocked= openai.chat.completions.create(
                model=model,
                messages=[{"role": "user", "content": prompt}],
                max_tokens=200,
                temperature=0
            )
            pred = [x.strip() for x in response.choices[0].message.content.split('''''''''''''''','''''''''''''''')]
            results[''''''''''''''''list''''''''''''''''].append({
                ''''''''''''''''id'''''''''''''''': q[''''''''''''''''id''''''''''''''''],
                ''''''''''''''''gold'''''''''''''''': q[''''''''''''''''exact_answer''''''''''''''''],
                ''''''''''''''''pred'''''''''''''''': pred
            })
        
        elif q[''''''''''''''''type''''''''''''''''] == ''''''''''''''''summary'''''''''''''''':
            prompt = f"Provide a summary answering the following biomedical question (max 200 words).\n\nQuestion: {q[''''''''''''''''body'''''''''''''''']}{context}\n\nSummary:"
            responevent-blocked= openai.chat.completions.create(
                model=model,
                messages=[{"role": "user", "content": prompt}],
                max_tokens=300,
                temperature=0.3
            )
            pred = response.choices[0].message.content.strip()
            results[''''''''''''''''summary''''''''''''''''].append({
                ''''''''''''''''id'''''''''''''''': q[''''''''''''''''id''''''''''''''''],
                ''''''''''''''''gold'''''''''''''''': q[''''''''''''''''ideal_answer''''''''''''''''],
                ''''''''''''''''pred'''''''''''''''': pred
            })
        
        time.sleep(0.5)  # API 限速
    
    # 计算指标
    metrics = {}
    
    # Yes/No: Accuracy
    if results[''''''''''''''''yesno'''''''''''''''']:
        correct = sum(1 for r in results[''''''''''''''''yesno''''''''''''''''] if r[''''''''''''''''correct''''''''''''''''])
        metrics[''''''''''''''''yesno_accuracy''''''''''''''''] = correct / len(results[''''''''''''''''yesno''''''''''''''''])
    
    # Factoid: MRR
    if results[''''''''''''''''factoid'''''''''''''''']:
        mrr_sum = 0
        for r in results[''''''''''''''''factoid'''''''''''''''']:
            for i, gold in enumerate(r[''''''''''''''''gold'''''''''''''''']):
                if gold.lower() in r[''''''''''''''''pred''''''''''''''''].lower():
                    mrr_sum += 1.0 / (i + 1)
                    break
        metrics[''''''''''''''''factoid_mrr''''''''''''''''] = mrr_sum / len(results[''''''''''''''''factoid''''''''''''''''])
    
    # List: F-measure
    if results[''''''''''''''''list'''''''''''''''']:
        precisionevent-blocked= 0
        recall_sum = 0
        for r in results[''''''''''''''''list'''''''''''''''']:
            gold_set = set(g.lower() for g in r[''''''''''''''''gold''''''''''''''''])
            pred_set = set(p.lower() for p in r[''''''''''''''''pred''''''''''''''''])
            if pred_set:
                precision_sum += len(gold_set &amp; pred_set) / len(pred_set)
            if gold_set:
                recall_sum += len(gold_set &amp; pred_set) / len(gold_set)
        p = precision_sum / len(results[''''''''''''''''list''''''''''''''''])
        r = recall_sum / len(results[''''''''''''''''list''''''''''''''''])
        metrics[''''''''''''''''list_fmeasure''''''''''''''''] = 2 * p * r / (p + r) if (p + r) > 0 else 0
    
    return metrics

# 使用示例
# metrics = evaluate_llm_on_bioasq(processed[:100], model="gpt-4o")
# print(metrics)

§6.5 模型推荐

任务 推荐模型 理由
Yes/No QA GPT-4o / Qwen3-Plus + RAG ParallaxRAG+Qwen3-Plus 达 93.51% SOTA
Factoid QA GPT-4o / Claude 3.5 Sonnet 长上下文理解 + 实体提取能力
List QA GPT-4o + RAG 多实体列表提取
Summary QA GPT-4o / Claude 3.5 Sonnet 段落级摘要生成
全类型微调 PubMedBERT / BioBERT 生物医学领域预训练
RAG 检索器 Contriever / ColBERT / BioBERT-DR 生物医学领域检索

§6.6 常见坑点

# 坑点 严重度 说明与解决方案
1 LLM 预训练数据污染 ⭐⭐⭐⭐⭐ GPT-4/5 可能在预训练时见过 BioASQ 训练集,导致评估偏高。解决方案:使用最新测试批次或创建变体问题
2 exact_answer 嵌套数组格式 ⭐⭐⭐⭐ Factoid/List 的 exact_answer 是嵌套列表 [[ans1], [ans2]],非扁平列表。解决方案:解析时取 item[0]
3 金标准动态增强 ⭐⭐⭐⭐ 评测后金标准包含参赛系统发现的新答案。解决方案:使用评测前初始金标准进行独立评估
4 Summary 无精确答案 ⭐⭐⭐ Summary 类型 exact_answernull解决方案:仅使用 ideal_answer 评估
5 片段偏移量可能不准 ⭐⭐⭐ 部分早期数据的 offsetInBeginSection 可能因 PubMed 格式变化而偏移。解决方案:以片段文本内容为准
6 注册门槛 ⭐⭐⭐ 官方训练集需在 bioasq.org 注册。解决方案:使用 HuggingFace 版本(无需注册)
7 非商业许可限制 ⭐⭐⭐ 商业使用需获书面许可。解决方案:联系 BioASQ 组织者获取商业授权
8 历届数据格式差异 ⭐⭐ BioASQ1-4 的 JSON 格式与后续版本略有不同。解决方案:使用 BioASQ11+ 版本数据
9 部分问题无 concepts 字段 ⭐⭐ 早期问题可能缺少 MeSH 概念标注。解决方案:使用 UMLS 自动补充
10 Yes/No 类别不平衡 ⭐⭐ Yes 答案占比 ~70%,No 占比 ~30%。解决方案:使用 Macro F1 而非 Accuracy
11 理想答案多版本 ⭐⭐ 部分问题的 ideal_answer 可能是字符串列表(多个可接受答案)。解决方案:评估时取最优匹配
12 测试集仅问题无答案 ⭐⭐ 年度测试批次仅释放问题,答案在评测后公布。解决方案:等待官方公布金标准

§6.7 数据增强策略

策略 方法 适用问题类型
同义词替换 使用 UMLS 同义词替换问题中的实体 全类型
回译增强 英→法→英 回译生成问题变体 全类型
片段裁剪 随机减少提供的片段数量,模拟检索噪声 全类型
负样本构造 为 Yes/No 问题构造错误上下文 Yes/No
交叉类型转换 将 Factoid 转为 List 或反之 Factoid/List
领域迁移 使用相同结构但在不同子领域的模板生成新问题 全类型

§7 质量评估与偏倚分析

§7.1 已知偏倚

# 偏倚类型 描述 严重度 缓解措施
1 专家视角偏倚 问题由 PhD 级生物医学专家创建,反映专家信息需求而非临床或患者需求 ⭐⭐⭐⭐ 补充消费者健康 QA 数据集(如 LiveQA Medical)进行交叉验证
2 英语文献偏倚 文档语料库仅含 English PubMed 文献 ⭐⭐⭐⭐ 使用 MESINESP/HEAD-QA 进行多语言验证
3 选择偏倚 主题选择受 BioASQ 项目优先级和专家兴趣驱动 ⭐⭐⭐ 使用 MedQA/MedMCQA 等不同来源数据集交叉验证
4 金标准反馈循环 评测后金标准包含参赛系统发现,形成系统-评估反馈循环 ⭐⭐⭐ 使用评测前初始金标准进行独立评估
5 Yes/No 类别不平衡 “Yes” 答案占比 ~70%,模型倾向于回答 “Yes” ⭐⭐⭐ 使用 Macro F1 而非 Accuracy;对少数类加权
6 领域分布偏倚 肿瘤学和遗传学问题占比偏高(~35%) ⭐⭐ 按领域分层评估,关注低占比领域性能
7 时间偏倚 训练集累积 2013-2025 年数据,早期问题可能反映过时知识 ⭐⭐ 按年份分组评估,重点关注最新问题

§7.2 标注质量

质量维度 评估方式 结果 说明
问题真实性 专家审核 ✅ 高 所有问题基于专家真实文献阅读需求创建
答案准确性 多专家交叉审核 ✅ 高 精确答案和理想答案均经专家审核
片段相关性 人工标注 ✅ 高 每个片段由创建问题的专家手动提取
文献覆盖度 评测后增强 ⚠️ 中-高 初始金标准可能遗漏相关文献,评测后增强
概念标准化 UMLS 自动标注 ⚠️ 中 部分早期问题缺少概念标注
理想答案一致性 多专家评分 ⚠️ 中 理想答案由单一专家撰写,可能存在主观性

§7.3 泛化性评估

泛化维度 评估方法 风险等级 说明
跨领域泛化 在不同子领域问题上分别评估 ⚠️ 中 模型可能在训练集高频领域表现好,低频领域差
跨类型泛化 跨问题类型迁移学习 ⚠️ 中 Yes/No 和 Factoid 的技能可能不完全迁移
跨时间泛化 在不同年份测试集上评估 ⚠️ 低-中 早期问题可能反映过时知识
跨语言泛化 在 MESINESP/HEAD-QA 上评估 ⚠️ 高 英语模型在非英语医学 QA 上性能显著下降
跨粒度泛化 从文献级到临床级 ⚠️ 高 BioASQ 基于文献,不直接适用于临床场景

§7.4 DAIMS 数据集 AI 就绪评估

评估维度 分项 评分 (0-1) 说明
D1 数据可用性 获取便捷度 0.90 官网注册下载 + Zenodo + HuggingFace 多渠道
许可清晰度 0.85 非商业许可明确,商业使用路径清晰
文档完整性 0.95 官方文档详尽,含格式说明、评估指标、示例
D2 数据质量 标注准确性 0.95 PhD 级专家标注,多轮审核
标注一致性 0.80 理想答案由单一专家撰写,主观性存在
数据完整性 0.90 字段完整,部分早期数据缺 concepts
D3 AI 任务适配 任务明确度 0.95 4 类问题类型清晰,评估指标标准
基准可比性 0.95 13+ 届历史排行榜,参赛团队众多
评估指标完备 0.95 每类问题有专门指标,含人工评估
D4 技术规格 格式标准化 0.90 JSON 格式规范,字段定义清晰
数据规模 0.75 5,389 题,规模适中但小于 MedQA/MedMCQA
工具生态 0.90 HuggingFace/ir_datasets/PyTerrier 支持
D5 可复现性 版本管理 0.85 Zenodo DOI 版本管理,官网历届数据可溯
评估脚本 0.90 官方评估脚本公开
数据划分 0.85 训练/测试划分清晰,但测试集金标准动态增强
D6 多样性 领域覆盖 0.85 覆盖全域生物医学,但肿瘤/遗传学偏高
问题类型多样 0.95 4 类问题覆盖全谱系 QA
语言多样性 0.60 主体为英语,MESINESP/MultiClinSum 扩展中
D7 偏倚控制 偏倚文档 0.80 已知偏倚在论文和文档中讨论
偏倚缓解 0.70 部分偏倚已有缓解建议,但未系统实施
公平性评估 0.60 未有系统性公平性评估研究
D8 伦理合规 隐私保护 1.00 无患者数据,基于公开文献
知情同意 0.90 使用条款明确,注册即同意
伦理审查 0.80 获 NIH 和 EU 资助,符合伦理标准

综合评分:22.5 / 24 = 93.75% — ⭐⭐⭐⭐ 4/5

§7.5 外部验证矩阵

验证数据集 共享维度 验证目的 预期结果
PubMedQA Yes/No QA Yes/No 模型跨数据集泛化 BioASQ 训练的模型应在 PubMedQA 上保持 80%+ 性能
MedQA Factoid 事实型知识泛化 不同评测范式,预期有中等正相关
MedMCQA 选择题 医学知识广度 不同问题格式,预期弱正相关
MMLU Medical 多领域 通用医学知识 预期中等正相关
BioMRC 阅读理解 文本理解能力 预期强正相关
HEAD-QA 多语言 跨语言泛化 预期弱正相关(语言障碍)
LiveQA Medical 消费者 QA 专家→消费者迁移 预期弱相关(受众不同)
MedNLI 文本蕴含 推理能力 预期中等正相关
BioNLI 生物医学 NLI 领域推理 预期强正相关
HEAD-QA (ES) 西班牙语 多语言扩展 预期弱相关

§8 基准表现与生态

§8.1 排行榜

年份 系统/模型 Yes/No Acc Factoid MRR List F1 Summary Manual 备注
2013 BioASQ1 最佳系统 ~65% ~0.35 ~0.30 ~3.0/5 首届,非 LLM 方法
2015 BioASQ3 最佳系统 ~72% ~0.42 ~0.38 ~3.2/5 IR + 机器学习
2017 BioASQ5 最佳系统 ~78% ~0.48 ~0.42 ~3.5/5 深度学习方法引入
2019 BioASQ7 最佳系统 ~82% ~0.52 ~0.45 ~3.6/5 BERT 时代
2021 BioASQ9 + BioBERT ~85% ~0.55 ~0.48 ~3.7/5 领域预训练
2023 GPT-4 (zero-shot) ~89% ~0.58 ~0.50 ~3.8/5 LLM 零样本
2023 GPT-4 + RAG ~90% ~0.62 ~0.55 ~3.9/5 LLM + 检索增强
2024 BioASQ12 最佳系统 ~91% ~0.65 ~0.58 ~4.0/5 多模型集成
2025 Fleming (多LLM集成) ~86% ~0.50 ~0.40 4.2/5 (Batch 2 #1) 13 个开源 LLM 投票
2025 Fudan (Synergy #1) ~90% ~0.65 ~0.60 ~4.0/5 多轮 Synergy 第一
2025 ParallaxRAG+Qwen3-Plus 93.51% Yes/No SOTA
2025 GPT-4o + RAG 91.4% 商用 LLM + RAG
2025 Deepseek-R1-8B 90.77% 开源推理模型

§8.2 SOTA 系统分析

系统 核心方法 关键创新 局限性
ParallaxRAG+Qwen3-Plus 多视角检索 + Qwen3-Plus 生成 多视角查询重写 + 混合检索 仅评估 Yes/No 类型
Fleming (BSRC) 13 个开源 LLM 多数投票/并集 多模型集成,按问题类型定制管道 需要大量 GPU 资源
Fudan RAG + 混合选择策略 MAP / F-measure / AVG Ranking 多策略选择 系统细节未完全公开
GPT-4 + RAG GPT-4 + 检索增强 商用 LLM 的上限表现 成本高,API 依赖

§8.3 评测协议建议

协议 说明 适用场景
Zero-shot 评测 直接提问,不提供上下文 评估 LLM 内在医学知识
RAG 评测 提供 BioASQ 金标准片段作为上下文 评估 RAG 管道效果
Phase A+B 评测 先检索文献,再基于检索结果生成答案 完整 BioASQ 评测
按类型分别评估 Yes/No / Factoid / List / Summary 分别报告 精细能力分析
年代分层评估 按问题创建年份分组评估 时间泛化分析

§8.4 相关数据集

数据集 关系 说明
PubMedQA 互补 Yes/No QA,但基于单一文献
MedQA 互补 选择题 QA,基于医学执照考试
MedMCQA 互补 大规模选择题 QA,基于印度医学考试
BioMRC 互补 生物医学阅读理解
HEAD-QA 多语言扩展 西班牙语医学考试 QA
TREC PM IR 互补 精准医学信息检索
LiveQA Medical 受众互补 消费者健康 QA
MMLU Medical 知识广度互补 多领域医学知识
MedNLI 推理能力互补 生物医学自然语言推理
BioNLI 推理能力互补 生物医学 NLI

§8.5 生态全景图

                    ┌─────────────────────────────┐
                    │      BioASQ 评测生态          │
                    │   (2013-2026, 13+ 届)        │
                    └──────────────┬──────────────┘
                                   │
           ┌───────────┬───────────┼───────────┬───────────┐
           ▼           ▼           ▼           ▼           ▼
     ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
     │ Task A   │ │ Task B   │ │ Synergy  │ │MultiClin │ │  新任务   │
     │ MeSH索引 │ │ 生物医学 │ │ 动态主题  │ │  Sum     │ │ (2026)   │
     │ (已停办) │ │   QA     │ │   QA     │ │多语言摘要│ │ BioNNE-R │
     └──────────┘ └────┬─────┘ └──────────┘ └──────────┘ │ElCardioCC│
                        │                                  │GutBrainIE│
              ┌─────────┼─────────┐                        └──────────┘
              ▼         ▼         ▼
         ┌────────┐┌────────┐┌────────┐
         │ Yes/No ││Factoid ││  List  │
         │  ~27%  ││  ~30%  ││  ~19%  │
         └────────┘└────────┘└────────┘
              │         │         │
              ▼         ▼         ▼
         ┌────────────────────────────────┐
         │         Summary ~24%           │
         │   (人工评估: Readability,      │
         │    Recall, Precision,          │
         │    Repetition)                 │
         └────────────────────────────────┘
                        │
           ┌────────────┼────────────┐
           ▼            ▼            ▼
     ┌──────────┐ ┌──────────┐ ┌──────────┐
     │  PubMed  │ │  Hugging │ │  Zenodo  │
     │BERT/BioBERT│ │  Face   │ │  DOI     │
     │  微调     │ │  快速加载 │ │ 学术引用 │
     └──────────┘ └──────────┘ └──────────┘
                        │
           ┌────────────┼────────────┐
           ▼            ▼            ▼
     ┌──────────┐ ┌──────────┐ ┌──────────┐
     │  GPT-4/5 │ │ Qwen3    │ │ Deepseek │
     │  + RAG   │ │ + RAG    │ │  -R1     │
     │ SOTA:    │ │ SOTA:    │ │ SOTA:    │
     │ 91.4%    │ │ 93.51%   │ │ 90.77%   │
     └──────────┘ └──────────┘ └──────────┘

§8.6 社区与影响

维度 数据
Google Scholar 引用(Tsatsaronis 2015) 1,500+
Google Scholar 引用(Krithara 2023) 100+
历届参赛团队总数 100+
历届参赛系统提交总数 1,000+
覆盖国家 30+
CLEF Workshop 2013-2025 连续 13 届
NIH 资助 5R13LM012214
EU 资助 318652 (FP7)
衍生论文 500+
衍生任务 8+ (Task A/B/Synergy/MESINESP/MultiClinSum/BioNNE-R/ElCardioCC/GutBrainIE)

§9 参考文献

§9.1 核心论文

@article{tsatsaronis2015overview,
  title={An overview of the BIOASQ large-scale biomedical semantic indexing and question answering competition},
  author={Tsatsaronis, George and Balikas, Georgios and Malakasiotis, Prodromos and Partalas, Ioannis and Zschunke, Matthias and Alvers, Michael R and Weissenborn, Dirk and Krithara, Anastasia and Petridis, Sergios and Polychronopoulos, Dimitris and others},
  journal={BMC Bioinformatics},
  volume={16},
  number={1},
  pages={138},
  year={2015},
  publisher={Springer},
  doi={10.1186/s12859-015-0564-6}
}

@article{krithara2023bioasq,
  title={BioASQ-QA: A manually curated corpus for Biomedical Question Answering},
  author={Krithara, Anastasia and Nentidis, Anastasios and Bougiatiotis, Konstantinos and Paliouras, Georgios},
  journal={Scientific Data},
  volume={10},
  number={1},
  pages={170},
  year={2023},
  publisher={Nature Publishing Group},
  doi={10.1038/s41597-023-02055-6}
}

@article{panou2025harnessing,
  title={Harnessing Collective Intelligence of LLMs for Robust Biomedical QA: A Multi-Model Approach},
  author={Panou, Dimitra and Dimopoulos, Alexandros C and Koubarakis, Manolis and Reczko, Martin},
  journal={arXiv preprint arXiv:2508.1480},
  year={2025}
}

§9.2 官方资源

资源 URL
BioASQ 官网 https://bioasq.org/
参赛者区域 https://participants-area.bioasq.org/
Task 14B 指南 https://participants-area.bioasq.org/general_information/Task14b/
第 13 届获奖者 https://bioasq.org/participate/thirteenth-challenge-winners
Zenodo 数据集 (BioASQ11) https://doi.org/10.5281/zenodo.7404897
HuggingFace 数据集 https://huggingface.co/datasets/jmhb/BioASQ
示例数据 (无需注册) https://participants-area.bioasq.org/

§9.3 引用指南

如果您在研究中使用 BioASQ 数据集,请引用以下论文:

  1. Tsatsaronis et al. (2015) — BioASQ 概述论文(必引)
  2. Krithara et al. (2023) — BioASQ-QA 数据集论文(必引)
  3. BioASQ Zenodo DOI — 数据集版本引用

§9.4 变更日志

版本 日期 变更
BioASQ1 2013-04 首次发布,500 题训练集
BioASQ4 2016-03 引入 Phase A/B 分离架构
BioASQ5 2017-09 停止接受 Factoid/List 同义词
BioASQ7 2019-01 新增 Task Synergy
BioASQ8 2020-10 新增 Task MESINESP
BioASQ11 2022-12 Zenodo 发布,Krithara et al. 论文
BioASQ12 2024-09 新增 Task MultiClinSum
BioASQ13 2025-08 CLEF 2025,多 LLM 集成系统涌现
BioASQ14 2026-03 (计划) 新增 BioNNE-R / ElCardioCC / GutBrainIE

§10 AI 使用声明卡

§10.1 AI 辅助声明

项目 说明
AI 工具使用 本条目使用 AI 辅助检索和整理 BioASQ 数据集信息
数据来源 BioASQ 官网 (bioasq.org)、Zenodo (DOI: 10.5281/zenodo.7404897)、HuggingFace (jmhb/BioASQ)、NCSR Demokritos 论文、CLEF 2025 Workshop 论文
人工审核 千方病案医学编辑部交叉审核
信息时效 截至 2026 年 8 月 4 日,涵盖 BioASQ13 (2025) 结果及 BioASQ14 (2026) 计划
免责声明 本条目仅供参考,不构成医疗建议。数据集使用须遵守 BioASQ 许可条款
准确性声明 统计数字基于官方来源,但部分历史数据可能因版本迭代而略有差异
建议反馈 如发现错误或有补充,请参考 BioASQ 官方文档进行交叉验证

§10.2 输入来源校验

输入来源 校验项 状态
BioASQ 官网 (bioasq.org) 任务体系、时间轴、评测协议 ✅ 已校验
Zenodo DOI: 10.5281/zenodo.7404897 数据集结构、字段说明、统计数字 ✅ 已校验
HuggingFace (jmhb/BioASQ) 问题类型分布、数据字段 ✅ 已校验
Tsatsaronis et al. (2015) 历史概述、评测设计 ✅ 已校验
Krithara et al. (2023) 数据集统计、标注方法 ✅ 已校验
CLEF 2025 Workshop 论文 2025 年最新结果、团队排名 ✅ 已校验
BioASQ Participants Area Task 14B 格式说明、评测协议 ✅ 已校验

§10.3 条目状态

项目
条目状态 published
最后更新 2026-08-04
审核方 千方病案医学编辑部
版本 v3.9
数据集 ID bioasq/53
返回 AI Ready 数据集