开源重标注MedQA与皮肤病DDx数据集
处理评分者分歧在AI领域变得越来越重要,特别是对于大型语言模型(LLM)以及在健康等专业领域。过去一年中,帮助开源了两个数据集,用于研究健康领域的评分者分歧:对MedQA(评估医学LLM的关键基准)的重标注,以及包含皮肤病分类鉴别诊断评分的数据集。两者均可在GitHub上获取。
处理评分者分歧
处理评分者分歧变得越来越重要,特别是对于评估大型语言模型(LLM),也包括健康等领域。过去几年中,参与了多个需要处理评分者分歧以评估AI模型的项目。不幸的是,发现许多公开数据集的原始评分并未提供。对于某些数据集,如CIFAR10,后续工作可能提供了人类评分(在CIFAR10的情况下,该数据集称为CIFAR10-H),但这仍是例外。这也使得有效分享专业知识和基准测试不同方法变得困难。
本文分享今年发布的两个数据集:首先,基于皮肤状况分类中模糊真实标签工作的“皮肤病DDx”数据集[1, 2];其次,作为Med-Gemini工作一部分收集的“重标注MedQA”数据集[3]。两者包括各种格式的原始评分,并已在GitHub上提供,包括分析代码。
重标注MedQA
MedQA数据集,尤其是其包括美国医学执照考试培训问题的USMLE部分,已成为评估和比较医学LLM的关键基准。某机构的MedPrompt论文以及Med-Gemini的工作都强调了在MedQA上的准确性。然而,仔细查看典型的MedQA问题引发了担忧,即自发布以来所有问题是否仍适合评估。例如,发现问题包括辅助信息(如实验室报告或图像)未在上下文中提供。上图图1包含一个示例。此外,虽然原始论文基准测试了人类临床医生在数据集上的表现,但问题本身是从考试准备网站获取的(见论文中的表A.1)。这也意味着问题和答案的最新程度不清楚,与临床医生的讨论表明MedQA的标签可能存在问题。
为确保报告可靠的MedQA数字,决定重标注MedQA USMLE测试集,以(a)确定引用缺失信息的问题,(b)识别标签错误,以及(c)找到允许多个正确答案的问题。为实现这一点,遵循了两步研究设计,如图2所示,首先要求临床医生自己回答MedQA问题,然后显示真实标签并给予更正答案的选项——同意或不同意真实标签。如果评分者认为多个答案可能正确,允许选择多个答案。每个问题获得至少3个评分。为处理这三个评分者之间的分歧,使用简单的自举策略来用这些新标签评估LLM。工作流程如下:重复每个问题替换采样3个评分者,然后执行一致投票以决定是否在评估中排除问题,因为(a)缺失信息,(b)标签错误,或(c)多个答案被视为正确。然后平均所有自举的准确性,并创建图3以总结发现。
完整数据可在以下GitHub找到,包括执行上述分析并生成图3绘图的Colab。
GitHub上的数据
带注释的MedQA问题可在medqa_relabelling.csv中找到,包括每个评分的以下列:
- 索引列;
- time:注释任务时间(毫秒);
- worker_id:匿名工作者ID;
- qid:问题ID;
- question:MedQA问题;
- A through D:MedQA的答案选项;
- answer_idx:MedQA的真实答案;
- info_missing和important_info_missing:评分者是否指示问题中信息缺失以及该信息是否被评级为对回答问题重要;
- blind_answerable和seen_answerable:评分者在揭示真实答案前(blind_)和后(seen_)是否确定一个或多个选项回答问题;
- blind_answers和seen_answers:如果问题可回答,所选答案;
- seen_change:评分者在揭示真实答案后是否更新了答案。
皮肤病DDx
虽然评分者分歧当前在LLM背景下备受关注,但在许多标准分类任务中也重要。例如,在从图像进行皮肤状况分类的背景下,经常允许皮肤科医生按可能性顺序选择多个可能状况。这种状况排序也可以包括并列。将这种格式称为鉴别诊断(ddx),这也激发了数据集的名称。允许每个示例多个评分可以导致相当复杂的分歧实例,如图4所示的一个特别棘手的示例。
通常,会希望聚合所有这些评分以获得单个真实状况,然后可以评估准确性,例如以top-k准确性形式(比较前k个预测与单个真实状况)。在伴随论文中,探索了各种统计模型来聚合分歧的评分者。然而,也可以遵循如上MedQA的自举方法:替换采样固定数量的评分者,并将这些评分聚合为单个排名;然后取该排名的top-1作为真实状况并评估模型。自举分歧评分者导致获得的真实状况更频繁变化,这在跨自举平均时被考虑。
数据再次在GitHub上提供——这包括来自模型的预测和皮肤科医生评分;不包括原始图像,因为其旨在作为评分者聚合方法的基准。
GitHub上的数据
数据集分割在以下文件中:
-
data/dermatology_selectors.json:专家注释作为部分排名。这些部分排名编码为所谓的“选择器”:对于每个案例,有多个部分排名,每个部分排名是分组类别(即皮肤状况)的列表。以下示例来自图1,描述了一个部分排名,其中“血管瘤”排名第一,随后是一组三个状况,包括“ melanocytic痣”、“黑色素瘤”和“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.savetxt以fmt=’%.3e’保存。
-
data/dermatology_conditions.txt:每个类别的状况名称。
-
data/dermatology_risks.txt:每个状况的风险类别,其中0对应低风险,1对应中风险,2对应高风险。
结论
通过重标注MedQA和皮肤病DDx两个数据集,希望在此类基准上实现更可靠的评估,并促进更多关于聚合潜在分歧评分者的研究。
[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).