开源重标注MedQA与皮肤病鉴别诊断数据集的技术洞察

开源重标注的MedQA与皮肤病鉴别诊断数据集

处理标注者意见不一致在人工智能领域正变得越来越重要,特别是对于大型语言模型的评估,以及在健康等专业领域。过去几年,我参与了多个需要处理标注者分歧以评估AI模型的项目。不幸的是,我意识到许多公开可用的数据集并未提供原始标注。对于一些数据集,如CIFAR10,后续工作可能提供了人工标注(例如CIFAR10-H),但这仍是例外。这也使得有效分享专业知识和基准测试不同方法变得困难。

在本文中,我想分享今年我们发布的两个数据集:首先是基于我们在皮肤状况分类中模糊真值工作的“皮肤病鉴别诊断”数据集[1, 2]。其次是我们在Med-Gemini工作[3]中收集的“重标注MedQA”数据集。两者都包含各种格式的原始标注,并已在GitHub上提供,包括分析代码。

重标注MedQA

MedQA数据集,特别是包含美国医学执照考试培训题目的USMLE部分,已成为评估和比较医学大语言模型的关键基准。无论是“某机构”的MedPrompt论文还是我们关于Med-Gemini的工作,都强调了在MedQA上的准确性。然而,仔细观察典型的MedQA问题后,人们担心自发布以来是否所有问题仍然适合评估。例如,我们发现了包含辅助信息的问题,这些信息未在上下文中提供。上面的图1包含了一个例子。此外,虽然原始论文对临床医生在该数据集上的表现进行了基准测试,但问题本身是从考试准备网站获取的。这也意味着问题和答案的时效性不明确,与临床医生的讨论表明MedQA的标签可能存在错误。

为了确保我们在MedQA上报告可靠的数字,我们决定重标注MedQA USMLE测试集,以(a)确定引用缺失信息的问题,(b)识别标签错误,以及(c)找到允许多个正确答案的问题。为了实现这一点,我们遵循了一个两步骤的研究设计。首先,我们要求临床医生在展示真实答案之前自己回答一个MedQA问题,然后给予他们修改答案的选择——同意或不同意真实标签。如果他们认为多个答案可能正确,我们允许标注者选择多个答案。每个问题至少获得3个标注。为了处理这三位标注者之间的分歧,我们使用了一种简单的自助抽样策略来用这些新标签评估LLM。具体操作如下:我们对每个问题重复进行有放回抽样,抽取3位标注者,然后通过一致投票来决定是否在评估中排除一个问题。排除原因可能是(a)信息缺失,(b)标签错误,或(c)多个答案被认为正确。然后我们计算所有自助样本的平均准确率,并创建了图3来总结发现。

完整数据可在下面的GitHub找到,包括执行上述分析并生成图3的Colab笔记本。

GitHub上的数据

带有我们注释的MedQA问题可在medqa_relabelling.csv中找到,每项标注包含以下列:

  • 索引列;
  • time:标注任务耗时(毫秒);
  • worker_id:匿名标注者ID;
  • qid:问题ID;
  • question:MedQA问题;
  • AD:MedQA的答案选项;
  • answer_idx:MedQA的真实答案;
  • info_missingimportant_info_missing:标注者是否指出问题中信息缺失以及该信息是否被评定为对回答问题至关重要;
  • blind_answerableseen_answerable:标注者在揭示真实答案之前和之后是否确定一个或多个选项可以回答问题;
  • blind_answersseen_answers:如果问题可回答,所选的答案;
  • seen_change:标注者在揭示真实答案后是否更新了他们的答案。

皮肤病鉴别诊断

虽然标注者分歧目前在大语言模型的背景下备受关注,但它在许多标准分类任务中也很重要。例如,在根据图像进行皮肤状况分类的背景下,我们经常允许皮肤科医生选择多个可能的状况,并按可能性排序。这种排序也可以包括并列情况。我将这种格式称为鉴别诊断,这也是数据集名称的由来。允许每个示例有多个标注可能会导致非常复杂的分歧情况,如图4所示的一个特定棘手示例。

通常,我们希望聚合所有这些标注,以获得一个单一的真实状况,然后我们可以据此评估准确性,例如以top-k准确率的形式。在我们附带的论文中,我们探索了各种统计模型来聚合有分歧的标注者。然而,我们也可以像上面处理MedQA一样采用自助抽样方法:我们抽取固定数量的标注者进行有放回抽样,并将这些标注聚合成一个单一排名;然后我们将该排名的top-1作为真实状况来评估模型。对分歧的标注者进行自助抽样会导致获得的真实状况更频繁地变化,这在跨自助样本平均时会被考虑进去。

同样,数据可在GitHub上获取——这包括我们模型的预测和皮肤科医生的标注;它不包含原始图像,因为它是作为标注者聚合方法的基准:

GitHub上的数据

数据集分布在以下文件中:

  • data/dermatology_selectors.json:专家标注,为部分排名。这些部分排名被编码为所谓的“选择器”:对于每个病例,有多个部分排名,每个部分排名是一个分组类别列表。如下所示示例来自图1,描述了一个部分排名,其中“血管瘤”排名第一,后面是一组三个状况,包括“黑素细胞痣”、“黑色素瘤”和“O/E”。在JSON文件中,状况被编码为数字,数字与状况名称的映射可以在data/dermatology_conditions.txt中找到。
    ['Hemangioma'], ['Melanocytic Nevus', 'Melanoma', 'O/E']
    
  • data/dermatology_predictions[0-4].json:模型A到D在[1]中的预测,为1947 x 419的浮点数组,使用numpy.savetxtfmt='%.3e'格式保存。
  • data/dermatology_conditions.txt:每个类别的状况名称。
  • data/dermatology_risks.txt:每个状况的风险类别,其中0对应低风险,1对应中风险,2对应高风险。

结论

通过这两个数据集——重标注MedQA和皮肤病鉴别诊断,我们希望在类似的基准测试上实现更可靠的评估,并促进更多关于聚合潜在分歧标注者的研究。

[1] Stutz, David, et al. "Evaluating AI systems under uncertain ground truth: a case study in dermatology." arXiv preprint arXiv:2307.02191 (2023).
[2] Stutz, David, et al. "Conformal prediction under ambiguous ground truth." arXiv preprint arXiv:2307.09302 (2023).
[3] Saab, Khaled, et al. "Capabilities of gemini models in medicine." arXiv preprint arXiv:2404.18416 (2024).
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

posted @ 2025-12-11 16:19  CodeShare  阅读(17)  评论(0)    收藏  举报