【Nature Communications‘24‘06】预训练多模态大语言模型通过 SkinGPT-4 提升皮肤病学诊断能力

文章目录

  • 摘要
  • 引言
  • 结果
    • [SkinGPT-4 的整体设计](#SkinGPT-4 的整体设计)
    • [SkinGPT-4 的交互式、信息丰富且易于理解的皮肤病诊断](#SkinGPT-4 的交互式、信息丰富且易于理解的皮肤病诊断)
    • [SkinGPT-4 通过两步训练掌握医学特征以改进诊断](#SkinGPT-4 通过两步训练掌握医学特征以改进诊断)
    • [经过经认证皮肤科医生的 SkinGPT-4 临床评估](#经过经认证皮肤科医生的 SkinGPT-4 临床评估)
    • [SkinGPT-4 作为 24/7 在线待命的家庭医生](#SkinGPT-4 作为 24/7 在线待命的家庭医生)
    • [SkinGPT-4 诊断的一致性](#SkinGPT-4 诊断的一致性)
  • 讨论
  • 方法
  • 数据可用性
  • 代码可用性

Pre-trained multimodal large language model enhances dermatological diagnosis using SkinGPT-4

阿卜杜拉国王科技大学(King Abdullah University of Science and Technology, KAUST)

Nature communications (Accepted: 26 June 2024)

补充材料:https://www.nature.com/articles/s41467-024-50043-3?utm_source=chatgpt.com
这篇论文的创新在于提出了 SkinGPT-4,一个结合多模态大语言模型和视觉模型的系统,通过自动分析皮肤病图像并生成精确的诊断文本,提供交互式的皮肤病学诊断,提升了医学图像诊断的效率和准确性。
他是 23 年 7 月投稿的,那么就是人家是 23 年初或者 22 年开始做的,那时候视觉语言大模型可能还发展的不太好,所以他这里的方法就很简单,就是简单的将视觉特征与 LLM 做一个对齐,然后是收集了一些皮肤病的数据来训练就可以了。

他的评估就选了 150 个样本,并且是找了一些专家来进行评估的。

摘要

大型语言模型(LLMs)近年来被认为在推动医学诊断方面具有巨大的潜力,尤其是在皮肤病学诊断中。皮肤和皮下疾病在全球非致死性疾病负担的主要贡献者中排名靠前,因此这是一项非常重要的任务。

在此我们提出 SkinGPT-4,这是一种基于多模态大语言模型的交互式皮肤病诊断系统。

我们通过收集大量皮肤疾病图像(包括 52,929 张公开和专有图像),以及临床概念和医生笔记,并设计两步训练策略,使预训练视觉 Transformer 与名为 Llama-2-13b-chat 的大语言模型实现对齐。

我们与经认证的皮肤科医生一起,对 SkinGPT-4 在 150 个真实病例中的表现进行了定量评估。

借助 SkinGPT-4,用户可以上传自己的皮肤照片用于诊断,系统能够自主评估图像、识别皮肤状况的特征和类别、进行深入分析,并提供交互式治疗建议。

251119:背景-》任务重要性-》提出什么-》怎么做的-》怎么评估的-》实现效果

引言

皮肤和皮下疾病是全球非致死性疾病负担的第四大主要原因,影响着大量人群,其患病率在所有年龄和地区中约为 30% 到 70%。然而,皮肤科医生一直短缺,尤其是在农村地区,而就诊成本正在上升。结果,诊断的责任通常落在非专科医师身上,例如全科医生、护士执业者和医师助理,他们可能具备有限的知识和培训,且诊断准确率较低。为了扩大医学专业人员可获得的服务范围,存储转发式远程皮肤病学的使用变得异常普及,其方式包括传输受影响皮肤区域的数字图像(通常使用数码相机或智能手机拍摄)以及用户提供给皮肤科医生的其他相关医疗信息。随后,皮肤科医生会远程审阅病例并提供关于诊断、检查、治疗和随访建议。然而,皮肤病学诊断领域面临三大显著障碍。首先,可用于诊断患者的皮肤科医生数量不足,尤其是在农村地区。其次,准确解读皮肤疾病图像具有相当大的挑战性。最后,生成对患者友好的诊断报告通常是皮肤科医生耗时且费力的工作。

技术的进步促进了多种工具和技术的发展,以帮助皮肤科医生进行诊断。例如,人工智能(AI)工具在图像诊断皮肤疾病中的应用得益于近期深度学习(DL)的发展,如皮肤癌分类、皮肤病理学、预测新的风险因素或流行病学、识别甲真菌病、量化斑秃、对猴痘病毒感染的皮肤病灶进行分类等。在这些研究中,大多数主要集中在使用皮肤镜图像识别皮肤病灶。然而,皮肤镜在皮肤科门诊之外通常并不容易获得。一些研究探索了使用临床皮肤癌照片、甲真菌病以及来自教学网站的皮肤病灶图像。然而,这些方法多为特定诊断目标而设计,作为分类任务,它们仍需要皮肤科医生进一步分析以出具报告和做出临床决策。这些方法无法自动生成自然语言的详细报告,也无法与患者进行交互式对话。目前,还没有这样的诊断系统能够让用户通过提交图像来自我诊断皮肤状况,并自动、交互式地分析图像并生成易于理解的文本报告。

在过去几个月中,大型语言模型(LLMs)领域取得了显著进展,展现出卓越的语言理解能力以及执行复杂语言任务的潜力。其中最受期待的模型之一是 GPT-4,它是一种大规模多模态模型,已展现出卓越的能力,例如生成准确且详细的图像描述,为异常视觉现象提供解释,根据手写文本描述构建网站,甚至充当家庭医生。尽管取得这些显著进展,GPT-4 的某些功能仍未向公众开放,并且为闭源模型。用户需要付费并通过 API 使用某些功能。作为一个可访问的替代方案,由 OpenAI 开发的 ChatGPT 已展现出通过与患者对话辅助疾病诊断的潜力。借助其先进的自然语言处理能力,ChatGPT 能够解读患者提供的症状和病史,并就潜在诊断或转诊至适当皮肤科专科医生提出建议。然而,需要注意的是,目前大多数 LLM 仍仅限于文本交互。尽管如此,多模态大语言模型在医学诊断中的发展仍处于早期阶段,特别是考虑到医学诊断领域中基于图像的数据十分普遍,其中皮肤科诊断是一项非常重要的任务,但缺乏关于利用多模态大语言模型提升诊断能力的相关研究。

直接提供皮肤图像用于自动皮肤科诊断并生成文本报告的想法,可以极大帮助解决皮肤病诊断领域中前述三大挑战。然而,目前尚无方法能够做到这一点。但在相关领域中,ChatCAD 是最先进的方法之一,它设计了多种网络来分析 X 光片、CT 扫描和 MRI 图像,并生成多样化的输出,随后将这些输出转换为文本描述。这些文本描述随后作为输入提供给 ChatGPT,以生成精炼的报告,并基于给定图像提供交互式解释和医疗建议。然而,他们提出的视觉-文本模型仅限于某些任务。同时,对于 ChatCAD,用户需要通过 ChatGPT 的 API 上传文本描述,而这可能引发数据隐私问题,因为医疗图像和文本描述都包含患者的私人信息。为了解决这些问题,MiniGPT-4 是一种开源方法,它允许用户在本地部署,与最先进的大语言模型交互处理图像,并使用自然语言进行互动,而无需对预训练的大模型进行微调,只需一个小的对齐层。

MiniGPT-4 旨在结合大型语言模型的能力与从预训练视觉编码器中获得的视觉信息。为实现这一点,该模型使用 Vicuna 作为其语言解码器,Vicuna 构建于 LLaMA 之上,能够执行复杂的语言任务。为处理视觉信息,它采用了 BLIP-2 中使用的相同视觉编码器,该编码器由一个 ViT 主干与预训练的 Q-Former 组合而成。视觉模型和语言模型均为开源。为弥合视觉编码器与语言模型之间的差距,MiniGPT-4 使用了一个线性投影层。然而,MiniGPT-4 的训练数据集是 Conceptual Caption、SBU 和 LAION 的组合,这些数据集与医学图像,尤其是皮肤科图像无关。因此,将 MiniGPT-4 直接应用于皮肤科正式诊断等特定领域仍具有挑战性。同时,由于 Vicuna 的限制,MiniGPT-4 无法支持商业用途,这一点有可能通过结合其他更先进的大语言模型得到改进。

受当前最先进的多模态大语言模型的启发,我们提出了 SkinGPT-4,这是一种基于多模态大语言模型的互动式皮肤科诊断系统(图 1)。SkinGPT-4 在两个方面带来创新 。首先,SkinGPT-4 是一种与 Llama-2-13b-chat 对齐的多模态大语言模型。其次,SkinGPT-4 是一种专为皮肤科诊断设计的多模态大语言模型。为实现 SkinGPT-4,我们设计了一个框架 ,使预训练视觉 Transformer 与预训练大语言模型 Llama-2-13b-chat 对齐。为训练 SkinGPT-4,我们收集了数量庞大的皮肤疾病图像(包括 52,929 张公开和专有图像),以及临床概念和医生笔记(表 1)。我们设计了两步训练流程来开发 SkinGPT-4,如图 2 所示。在初始步骤中,SkinGPT-4 将视觉和文本的临床概念对齐,使其能够识别皮肤病图像中的医学特征,并使用自然语言表达这些医学特征。在后续步骤中,SkinGPT-4 学习准确诊断具体类型的皮肤疾病。这种全面的训练方法确保系统在分析和分类各种皮肤状况方面表现优异。

借助 SkinGPT-4,用户能够上传自己的皮肤照片用于诊断。系统会自主评估图像,识别皮肤状况的特征与类别,进行深入分析,并提供交互式治疗建议(图 3)。同时,SkinGPT-4 的本地部署能力和对用户隐私的重视,使其成为寻求可靠、精准皮肤疾病诊断的患者的理想选择。为展示 SkinGPT-4 的稳健性,我们对 150 个真实病例进行了定量评估,这些病例由经认证的皮肤科医生独立审阅(图 4 和补充信息)。结果表明,SkinGPT-4 始终提供了皮肤疾病的准确诊断。

尽管 SkinGPT-4 不能替代医生,但它极大增强了用户对自身医疗状况的理解,促进患者与医生之间的沟通,加速皮肤科医生的诊断流程,促进分诊效率,并具有推动以人为中心的医疗与医疗公平的潜力,特别是在医疗服务不足的地区。总之,SkinGPT-4 在皮肤病诊断领域实现了重要飞跃,是大语言模型时代的重要进展,并为多模态大语言模型在医学诊断中的应用提供了宝贵的探索。

结果

SkinGPT-4 的整体设计

SkinGPT-4 是一个交互式系统,旨在如图 1 所示,为皮肤疾病图像提供自然语言形式的诊断。该流程从用户上传皮肤图像开始,图像随后由视觉 Transformer(ViT)和 Q-Former 模型进行编码,以理解其内容。ViT 模型将图像分割成更小的图块,并提取诸如边缘、纹理和形状等关键特征。之后,Q-Former 模型根据 ViT 模型识别出的这些特征生成图像的嵌入,其过程基于 transformer 架构,使模型能够考虑图像的上下文。对齐层促进视觉信息与自然语言的同步,而大语言模型 Llama-2-13b-chat 则生成基于文本的诊断结果。SkinGPT-4 使用大量皮肤疾病图像以及临床概念和医生笔记进行训练,从而实现交互式皮肤病诊断。该系统能够以交互式且用户友好的方式帮助用户自我识别皮肤疾病。

图 1 | SkinGPT-4 示意图。SkinGPT-4 是一个基于多模态大语言模型的交互式皮肤病诊断系统。为了实现 SkinGPT-4,我们设计了一个将预训练视觉 Transformer 与名为 Llama-2-13b-chat 的大语言模型对齐的框架。SkinGPT-4 使用大量(52,929 张)公开和内部皮肤疾病图像进行训练,并配合临床概念和医生笔记。通过 SkinGPT-4,用户可以上传自己的皮肤照片进行诊断,SkinGPT-4 能够自主确定皮肤状况的特征和类别、进行分析、提供治疗建议,并实现交互式诊断。右侧为交互式诊断示例。

SkinGPT-4 的交互式、信息丰富且易于理解的皮肤病诊断

SkinGPT-4 为患者和皮肤科医生带来了多重优势。其中一个显著好处在于它利用了专门针对皮肤疾病的全面且可信赖的医学知识。这使 SkinGPT-4 能够提供交互式诊断、解释和皮肤疾病的建议(补充视频 1),而这对 MiniGPT-4 来说是一个挑战。与 MiniGPT-4 不同的是,MiniGPT-4 缺乏与相关医学知识的训练和特定领域的适应性,而 SkinGPT-4 克服了这一限制,增强了其在皮肤科领域的能力。为了展示 SkinGPT-4 相较于 MiniGPT-4 的优势,我们提出了两个真实案例的交互式诊断示例,如图 3 所示。在图 3a 中,展示了一位面部患有日光性角化病的老年女性的图像。在补充图 S1 中,则展示了一位患有指尖湿疹的患者的图像。

对于日光性角化病的案例(图 3a),MiniGPT-4 识别到了如小的红色丘疹和纹理变化等特征,但错误地将皮肤疾病诊断为痤疮。而 SkinGPT-4 识别出了如斑块、结节、脓疱和瘢痕等特征,并将其诊断为日光性角化病,这是一种由长期紫外线(UV)照射引起的常见皮肤病。在交互式对话中,SkinGPT-4 还建议皮肤疾病的原因可能是日晒,这一点也得到了经认证皮肤科医生的验证。对于指尖湿疹的案例(补充图 S1),MiniGPT-4 虽能识别一些特征,如裂纹和皮屑,但无法准确诊断疾病,并将病因归为干燥天气和过度洗手。相比之下,SkinGPT-4 识别出了干燥、瘙痒、脱屑等皮肤疾病特征,并将疾病类型诊断为指尖湿疹,这也得到了经认证皮肤科医生的验证。

总而言之,缺乏皮肤科知识和领域特定的适应性对 MiniGPT-4 在实现准确皮肤病诊断方面构成了重大挑战。相比之下,SkinGPT-4 成功且准确地识别了图像中显示的皮肤疾病特征。它不仅指出了潜在的疾病类型,还提供了可能的治疗建议。这进一步强调了领域特定适应性对于 SkinGPT-4 在皮肤病诊断中发挥作用的关键性。

SkinGPT-4 通过两步训练掌握医学特征以改进诊断

为了进一步展示 SkinGPT-4 通过学习皮肤疾病图像中的医学特征来提升皮肤科诊断能力,我们进行了消融研究,如图 3 所示,通过仅使用步骤 1 数据集或步骤 2 数据集来训练 SkinGPT-4。正如方法部分所述并在图 2 中展示的那样,我们为 SkinGPT-4 设计了一个两步训练流程。最初,我们使用步骤 1 数据集使 SkinGPT-4 熟悉皮肤科图像中的医学特征,并使 SkinGPT-4 能够使用自然语言表达皮肤疾病图像中的医学特征。随后,我们使用步骤 2 数据集训练 SkinGPT-4,以获得更精确的疾病类型诊断。

图 2 | 我们用于 SkinGPT-4 两步训练的数据集示意图。每张图像下方的注释表示临床概念和皮肤疾病类型。此外,我们为图像提供了来自经认证皮肤科医生的详细描述,以用于步骤 2 数据集。为了避免引起不适,我们使用了半透明灰色框来遮掩显示的皮肤疾病图像。

在日光性角化病的案例中(图 3a),仅使用步骤 1 数据集训练的 SkinGPT-4 展现了其识别相关医学特征的能力,如斑块、痂皮、红斑以及脐状陷。这些精确且全面的形态学描述准确捕捉了图像中皮肤疾病的特征。然而,当 SkinGPT-4 仅使用步骤 1 数据集进行训练时,它会错误地将该皮肤状况诊断为病毒感染,这表明加入步骤 2 数据集对于更准确识别疾病的重要性。相比之下,仅使用步骤 2 数据集训练时,SkinGPT-4 未能捕捉皮肤疾病的准确形态描述,并错误地将其诊断为由过度皮脂分泌导致的疾病。这突出了整合步骤 1 数据集的必要性,以有效识别和理解皮肤科诊断中至关重要的特定医学特征。

相比之下,使用我们的两步训练方法时,SkinGPT-4 能够同时识别医学特征并将该皮肤疾病诊断为日光性角化病。对于更简单的案例,例如补充图 S1 所示的指尖湿疹案例,SkinGPT-4 也能够提供更详细的皮肤疾病图像描述,涵盖医学特征并准确识别疾病类型。总之,我们实施的两步训练流程使 SkinGPT-4 能够有效理解并掌握皮肤科图像中的医学特征,从而显著提高诊断准确性,这对在复杂案例中精确识别医学特征并准确确定疾病类型尤为关键。

251119:这个消融实验就是放了两个示例啊?

经过经认证皮肤科医生的 SkinGPT-4 临床评估

为了评估 SkinGPT-4 的可靠性和稳健性,我们进行了一个涉及大量真实病例(150 个)的综合研究,并将其诊断结果与经认证皮肤科医生的诊断进行比较。结果呈现在表 2 与补充信息中,并在图 4 中显示,SkinGPT-4 始终提供与经认证皮肤科医生一致的准确诊断。

如图 4a 所示,在 150 个病例中,有相当比例的 SkinGPT-4 诊断(80.63%)被经认证皮肤科医生评估为正确或相关。这一评估包括强烈同意(75.00%)和同意(5.63%)。此外,SkinGPT-4 对疾病原因和潜在治疗方案的回答被认为信息丰富(82.50%)且有用(85.63%)。此外,SkinGPT-4 还被证明是医生在诊断过程中的宝贵工具(87.50%),并帮助患者更好地理解自身疾病(83.70%)。SkinGPT-4 的本地部署能力确保用户隐私,同时实现高度一致性(92.50%),进一步提升了用户愿意使用 SkinGPT-4 的意愿(77.50%)。

总体而言,该研究表明 SkinGPT-4 能够提供可靠的诊断,帮助医生完成诊断过程,促进患者理解,并优先保护用户隐私,使其成为皮肤科领域的宝贵工具。

图 4 | 皮肤科医生线下与线上对 SkinGPT-4 的临床评估

a. 基于问卷的皮肤科医生对 SkinGPT-4 的线下评估。条形图表示皮肤科医生对皮肤疾病病例一致同意的百分比。

b. SkinGPT-4 响应时间(n = 20)与线上咨询皮肤科医生的响应时间相比较低(通过双尾 Student's t 检验,P < 0.00001)。所有箱形图代表第一个四分位数、中位数和第三个四分位数。上须表示最大值,但不会超过第三个四分位数的 1.5 倍的四分位距。下须表示最小值,但不会低于第一个四分位数的 1.5 倍四分位距。源数据作为源数据文件提供。

c. SkinGPT-4 响应一致性测试。x 轴表示测试样本,y 轴表示诊断结果。

SkinGPT-4 作为 24/7 在线待命的家庭医生

与皮肤科医生的在线咨询相比(通常需要等待数分钟才能得到回复),或与皮肤科医生的线下就诊相比(通常需要等待数周才能预约),SkinGPT-4 提供了多项优势。首先,它提供 24/7 全天候服务,确保用户随时都能获得医疗建议。此外,SkinGPT-4 提供快速的响应时间,通常在数秒内即可完成,如图 4b 所示,这使其成为患者在非门诊时间需要立即诊断时快速且便捷的选择。

此外,SkinGPT-4 提供初步诊断的能力,使患者能够就是否需要寻求面诊做出明智的决定。该功能可以帮助减少不必要的线下就诊,为患者节省时间与金钱。在皮肤科医生短缺的农村地区或资源匮乏的地区,这种改善医疗获取途径的潜力尤为重要。在这些地区,患者常常需要长时间等待,或需跋涉长距离才能就诊。借助 SkinGPT-4,患者能够快速便捷地获取初步诊断,从而减少面诊需求,减轻这些地区医疗系统的压力。

SkinGPT-4 诊断的一致性

GPT 通常根据概率生成格式各异的结果,因此在医学诊断中必须谨慎考虑 AI 生成内容的风险和一致性。为展示 SkinGPT-4 诊断结果的一致性,我们随机选取了 45 个样本(每类 5 个,如表 2 所示)。对于每个样本,我们进行了 10 次独立诊断。如图 4c 所示,对同一图像的诊断具有 93.73% 的一致性比例。对于不一致的案例,经认证皮肤科医生观察到可能存在多种皮肤类型的特征,例如良性肿瘤可能被误认为是黑色素瘤皮肤癌。总体而言,SkinGPT-4 的诊断结果一致且可靠。

讨论

我们的研究展示了利用大语言模型(LLMs)视觉输入以提升皮肤科诊断的潜力。随着更先进的大语言模型(如 GPT-4)的出现,诊断的准确性和质量有望进一步提高。然而,解决使用 ChatGPT 和 GPT-4 作为 API 所带来的隐私问题至关重要,因为这需要用户上传私人数据。相比之下,SkinGPT-4 提供了隐私问题的解决方案。通过允许用户在本地部署模型,用户关于数据隐私的担忧得到了有效解决。用户能够在自己的系统中自主使用 SkinGPT-4,从而确保其个人信息的安全与保密性。

在真实场景中部署 SkinGPT-4 可能会面临挑战,主要原因在于用户上传图像的差异性。导致这种差异的因素包括智能手机摄像头质量差异、图像前后处理的不同、多样的拍摄角度,以及光照条件的变化。此外,皮肤疾病严重程度的多样性也带来了挑战。在 SkinGPT-4 的训练过程中,我们缺乏专门的数据来使模型能够准确识别皮肤疾病的严重程度。然而,如补充图 S2 所示,即使在不同拍摄角度、光照条件、像素密度和分辨率下,SkinGPT-4 仍然在诊断不同严重程度的痤疮图像时表现出稳健且可接受的性能,这些图像按照中国《痤疮治疗指南(2019 修订版)》进行分类。

如补充图 S3 所示,我们还为用户提供了一份指南,指导他们尽可能规范地拍摄图像。该方法有助于标准化上传图像的格式,从而提升 SkinGPT-4 准确识别皮肤疾病特征的能力。

复杂皮肤疾病的诊断对 SkinGPT-4 构成了额外挑战。在实际情况中,复杂的皮肤疾病经常出现,且往往包含多种皮肤疾病的组合,并呈现出多样化的特征。目前,缺乏包含多标签皮肤病图像及其对应皮肤科医生诊断的数据集。弥补这一数据缺口是未来研究的关键方向,以进一步推动 SkinGPT-4 在复杂皮肤疾病诊断中的应用。

大型语言模型的幻觉问题是另一个潜在挑战。在医学诊断领域,向患者提供错误信息可能会带来致命后果。鉴于当前的大语言模型基于多种数据源进行训练,确保生成医学事实的绝对准确性是一个亟需深入研究的领域。潜在的解决方案可能包括为医疗目的训练更专业的 LLMs,并实施类似投票机制的迭代诊断生成方法。这进一步强调了基于 LLM 的方法在医学中作为辅助医生进行以人为本诊断的工具,而非取而代之的作用。

当前关于 Fitzpatrick V--VI(深色皮肤色调)的研究相对有限,且最先进的皮肤科 AI 算法在深色皮肤病变上的表现显著逊于其在浅色皮肤上的效果,尤其在经活检确认的病例中更为明显。主要挑战在于某些深色皮肤疾病的早期特征不够明显,导致诊断更具挑战性。因此,深色皮肤人群往往在更晚阶段才获得诊断,导致更高的发病率、死亡率及相关成本。雪上加霜的是 Fitzpatrick V--VI 数据的匮乏,例如 Diverse Dermatology Images(DDI)数据集量较小,无法满足深度学习模型尤其是基于 LLM 的模型(如 SkinGPT-4)的训练需求。

在本研究中,我们的数据集主要由 Fitzpatrick I--IV 皮肤色调构成,这无意中限制了模型在诊断 Fitzpatrick V--VI 个体皮肤疾病时的效果。为解决这一限制,未来研究工作将包括系统性收集 Fitzpatrick V--VI 数据,并针对性训练 SkinGPT-4,以增强其对 Fitzpatrick V--VI 患者的诊断能力。

在患者与皮肤科医生的咨询过程中,医生通常会提出额外的问题,以获取关键的信息,从而做出精确诊断。相比之下,SkinGPT-4 依赖用户提供的信息来辅助诊断过程。此外,医生常常与患者进行富有同理心的互动,因为这种情感连接可能对诊断过程有所帮助。由于这些因素,目前 SkinGPT-4 仍难以完全取代皮肤科医生。然而,SkinGPT-4 作为患者和皮肤科医生的工具仍具有重要价值。它可以极大加速诊断过程,并提升整体服务效率。通过利用其能力,SkinGPT-4 使患者能够获得关于皮肤状况的初步见解,并帮助皮肤科医生提供更高效的医疗服务。尽管它无法完全替代皮肤科医生的专业知识和同理心特质,但 SkinGPT-4 仍是皮肤病诊断领域的宝贵补充资源。

随着像 SkinGPT-4 这样的基于大型语言模型的应用不断发展,并通过获取更加可靠的医学训练数据而持续改进,在线医疗服务实现重大进步的潜力巨大。SkinGPT-4 在提升患者就医体验和医学服务质量方面可能发挥关键作用。必须强调,没有任何人工智能系统是绝对可靠且完全无误诊与误导信息的。因此,SkinGPT-4 并非旨在取代皮肤科医生,而是作为一种不断发展和持续优化的工具,促进患者与医生之间的沟通。我们对 SkinGPT-4 的期望是为患者提供更多有关皮肤疾病的信息,同时为医生提供宝贵的辅助诊断支持。因此,我们在软件页面中加入了明确的免责声明和使用指南,强调遵循医学建议的重要性,并强烈建议在获得具体诊断结果时咨询合格医生。这些预防措施旨在鼓励负责任的使用,确保用户在医学情境下理解该软件的局限性。我们将继续开展研究,以进一步开发并完善这项技术。

方法

伦理

本研究采用一种深度学习方法,该方法使用公开可获得的匿名皮肤病图像,以及来自医院的匿名内部皮肤病图像。所有研究活动严格遵循既定的伦理规范。本研究的伦理审核由北京安贞医院伦理委员会(北京安贞医院,隶属首都医科大学)批准,伦理批准编号为 ID 2024002X。来自阿卜杜拉国王科技大学(KAUST)生物安全与生物伦理委员会的伦理批准编号为 23IDEBICO01。对于公开可获得的匿名皮肤病图像,我们严格遵循相关数据集的规定与限制,因此未获得患者知情同意。对于内部数据集,我们从所有图像被纳入研究的参与者处获得了知情同意。我们使用医院记录的去标识化图像数据,这在皮肤科诊断中是一种常见做法。为确保数据匿名性,所有敏感隐私信息已系统化移除。此次使用该特定数据集的授权包含在知情同意范围内,我们未收集任何患者的受保护健康信息(PHI),确保了其隐私性和保密性。

数据

我们的数据集包括两个公开数据集和一个内部数据集,其中第一个公开数据集用于步骤 1 训练,第二个公开数据集和内部数据集用于步骤 2 训练。

第一个公开数据集名为 SKINCIN,是第一个由领域专家密集标注的皮肤病数据集,可提供对多种疾病过程有用的注释。SKINCIN 是一个由皮肤科医生密集标注的皮肤疾病数据集,包含来自 Fitzpatrick 17k 皮肤病数据集的 3230 张图像,这些图像由 48 个临床概念标注,如表 1 所示,其中 22 类至少包含 50 张代表该概念的图像,并包含来自 Diverse Dermatology Images 数据集的 656 张皮肤病图像。Fitzpatrick 17k 数据集的注释通过活检结果进行验证;相比之下,所有 DDI 数据集的疾病诊断均通过活检确认。SKINCIN 提出的 48 个临床概念包括疱疹、水疱、斑块、脓肿、脓疱、疱、斑、结节、溃疡、结痂、糜烂、萎缩、渗出、紫癜/瘀点、裂隙、角化、干燥、毛细血管扩张、鳞屑、瘢痕、脆弱、硬化、蒂状突出、外生赘疣、疣状/乳头瘤、穹窿状、扁平、棕色(色素沉着)、半透明、白色(色素减退)、紫色、黄色、黑色、红斑、粉刺、苔藓化、蓝色、脐状、毛囊炎、鲑红色、风团、丘疹、爬行道、灰色、色素沉着等。

第二个公开数据集包含 18,856 张图像,按照 15 类疾病由经认证的皮肤科医生标注,包括痤疮和酒渣鼻、恶性肿瘤(日光性角化病、基底细胞癌等)、皮炎类别(特应性皮炎、湿疹、红斑、药疹、接触性皮炎等)、毛囊疾病、细菌感染(蜂窝组织炎、脓疱等)、轻度疾病(白癜风、日晒损伤等)、结缔组织疾病(红斑狼疮等)、良性肿瘤(脂溢性角化病等)、男性生殖器疾病(珍珠状丘疹等)、真菌感染(甲真菌、癣等)、寄生虫疾病(疥疮、虱病等)、荨麻疹、疱疹及其他疾病。

我们的内部数据集包含 30,187 对皮肤病图像及对应医生描述。步骤 2 训练使用的完整数据集共包含 49,043 对图像与文本描述,如表 2 所示。所有案例均通过皮肤科医生的标准诊断流程完成诊断。简单案例未经过活检确认,但复杂案例均通过活检和组织病理检查确认。

在整个模型训练阶段,公开与内部数据集的匿名化处理均得到了保证。敏感信息(包括患者性别、年龄、姓名和国籍)均被移除。此外,对于部分皮肤疾病图像,所有可识别的生物特征均被移除以符合 HIPAA 标准。在 SkinGPT-4 的本地部署过程中,由于方法可在无网络连接且不保留任何患者数据的情况下使用,因此完全符合 HIPAA 标准。重要的是,用户在本地使用 SkinGPT-4 时无需向外部实体披露任何受保护健康信息(PHI),从而始终遵守 HIPAA 所规定的基本原则。

SkinGPT-4 的模型结构细节

SkinGPT-4 由多个组件组成,包括冻结的图像编码器 ViT、冻结的 Q-Former、可训练的线性对齐层,以及冻结的大语言模型 Llama-2-13b-chat。

当患者上传一张图像(记作 x ∈ R H × W × C x \in R^{H \times W \times C} x∈RH×W×C)时,图像首先会经历一个重塑过程,形成一系列展开的二维图块,表示为 x p ∈ R N × ( P 2 ⋅ C ) x_p \in R^{N \times (P^2 \cdot C)} xp∈RN×(P2⋅C)。其中, ( H , W ) (H, W) (H,W) 表示原始图像的分辨率, C C C 表示通道数, ( P , P ) (P, P) (P,P) 表示每个图块的分辨率, N = H W / P 2 N = HW/P^2 N=HW/P2 表示图块总数。在 SkinGPT-4 的情况下, H H H 和 W W W 均为 224, C C C 为 3, P P P 为 14。这些图块随后被展平并通过 ViT 内的预训练线性投影映射到 D D D 维空间。此外,位置嵌入(记作 E pos E_{\text{pos}} Epos)会添加到图块嵌入中,以保留位置信息,遵循公式(1)。

随后应用一个 transformer 编码器,其包含多头自注意力层(MSA)与 MLP 模块交替堆叠。每个模块前都使用层归一化(LN),并在每个模块后添加残差连接,如公式(2)和(3)所示。SkinGPT-4 使用的预训练 ViT 模型具有以下参数:嵌入维度为 1408,深度为 39,注意力头数为 16。这些参数共同提高了图像编码过程的有效性和效率。

z 0 = [ x class ; x p 1 E ; x p 2 E ; ... ; x p N E ] + E pos , E ∈ R ( P 2 ⋅ C ) × D , E pos ∈ R ( N + 1 ) × D (1) z_0 = [x_{\text{class}}; x_p^1 E; x_p^2 E; \ldots; x_p^N E] + E_{\text{pos}}, \quad E \in R^{(P^2 \cdot C) \times D},\ E_{\text{pos}} \in R^{(N+1) \times D} \tag{1} z0=[xclass;xp1E;xp2E;...;xpNE]+Epos,E∈R(P2⋅C)×D, Epos∈R(N+1)×D(1)

z l ′ = M S A ( L N ( z l − 1 ) ) + z l − 1 , l = 1 ... L (2) z_l' = MSA(LN(z_{l-1})) + z_{l-1},\quad l = 1 \ldots L \tag{2} zl′=MSA(LN(zl−1))+zl−1,l=1...L(2)

z l = M L P ( L N ( z l ′ ) ) + z l ′ , l = 1 ... L (3) z_l = MLP(LN(z_l')) + z_l',\quad l = 1 \ldots L \tag{3} zl=MLP(LN(zl′))+zl′,l=1...L(3)

每个由 ViT 生成的图像表示 z z z 都会与由文本 transformer 生成的文本表示 t t t 对齐, t t t 表示预训练 Q-Former 中 [CLS] token 的输出嵌入。随后,Q-Former 的最后隐藏层会经过线性对齐层,其输入大小等同于 Q-Former 的隐藏维度,而输出大小与 Llama-2-13b-chat 的隐藏维度匹配。

为使 Llama-2-13b-chat 根据上传图像生成所需文本,会使用特定格式的 prompt。该 prompt 结构如下:

"### Instruction: <Img> <Image> </Img> Could you describe the skin disease in this image for me? ### Response:"。

Prompt 的第一部分为 "### Instruction: <Img>",最后部分为 "</Img> Could you describe the skin disease in this image for me? ### Response:",它们均由 Llama-2-13b-chat 进行分词和嵌入。中间部分 "<Image>" 则被来自可训练线性对齐层的输出取代。所有嵌入(包括 prompt 各部分)会被拼接并输入至 Llama-2-13b-chat 的编码器,从而生成所需文本输出。


SkinGPT-4 的两步训练

SkinGPT-4 使用大量皮肤疾病图像以及临床概念和医生笔记进行训练(图 1)。在第一步中,我们使用步骤 1 训练数据集训练 SkinGPT-4。该数据集由成对的皮肤病图像及对应的临床概念描述组成。通过在该数据集上训练,模型能够掌握与皮肤病相关的临床概念细节。

在第二步中,我们进一步使用步骤 2 数据集对模型进行微调,该数据集包含额外的皮肤病图像以及更精炼的医生笔记。该迭代训练过程促进了多种皮肤疾病的准确诊断,因为 SkinGPT-4 融合了医生笔记中的更深入医学洞察。

通过遵循这一两步微调方法,SkinGPT-4 获得了对皮肤疾病临床概念的增强理解,并具备了生成准确诊断的能力。


模型训练与推理的超参数与资源

在两步训练中,最大 epoch 数设为 20,每个 epoch 的迭代步数设为 5000,warmup 步数设为 5000,学习率设为 1e-4,最大文本长度设为 160。整个微调过程约耗时 24 小时,使用八块 NVIDIA A100(80GB)GPU。

要完全在本地部署 SkinGPT-4,必须使用 Linux 系统(例如 Ubuntu 18.04)。为加速运行,我们推荐至少 30GB 显存的 GPU(如 NVIDIA V100)。在无 GPU 的情况下,SkinGPT-4 也可运行在 CPU 上,但至少需要 30GB 内存(RAM)。

SkinGPT-4 使用 Python 3.7、PyTorch 1.9.1 和 CUDA 11.4 开发。关于完整依赖项列表,请参考"代码可用性"部分的说明。

SkinGPT-4 的临床评估

为了评估 SkinGPT-4 的可靠性和有效性,我们整理了一个包含 150 个真实皮肤疾病病例的数据集,如表 2 所示。我们使用四个特定提示与 SkinGPT-4 进行交互式诊断会话:

  1. 你能描述这张图像中的皮肤疾病吗?
  2. 请提供一段文字列出你在图像中观察到的额外特征。
  3. 基于前述信息,请提供该皮肤疾病成因的详细解释。
  4. 对于该案例,应推荐什么治疗和药物?

为进行临床评估,五位经认证的皮肤科医生被提供同样四个问题,并要求他们根据给定的皮肤疾病图像作出诊断。随后,皮肤科医生被展示 SkinGPT-4 生成的结果,并被告知这些结果由 LLMs 生成。接下来的主要目标是比较 SkinGPT-4 与皮肤科医生的诊断结果,评估其可用性。然后,皮肤科医生对 SkinGPT-4 生成的结果进行评分(强烈同意、同意、中立、不同意、强烈不同意),用于图 4a 中的评估表格,其中包括以下问题:

  1. SkinGPT-4 的诊断是否正确或相关。
  2. SkinGPT-4 的描述是否具有信息量。
  3. SkinGPT-4 的建议是否有用。
  4. SkinGPT-4 是否能帮助医生完成诊断。
  5. SkinGPT-4 是否能帮助患者更好理解其疾病。
  6. 如果 SkinGPT-4 能够本地部署,它是否能保护患者隐私。
  7. 使用 SkinGPT-4 的意愿。

特别是对于第 3 和第 5 个问题,我们进一步收集了 SkinGPT-4 用户的意见,这些用户通常不具备深厚的皮肤科背景,以展示 SkinGPT-4 对一般用户的友好性。这些结果使我们能够全面评估 SkinGPT-4 在皮肤科医生和患者中的表现。

统计与可重复性

我们使用 Python 进行统计评估。对于两组之间的统计比较,采用双尾 Student's t 检验。所有实验至少重复三次。未使用统计方法预先确定样本量。分析中未排除任何数据,实验未随机化。研究人员在实验和结果评估过程中未对分组情况进行盲法处理。

报告摘要

有关研究设计的更多信息可在本文所附的 Nature Portfolio Reporting Summary 中查阅。

数据可用性

支持本研究结果的数据分为共享数据和受限数据。共享数据包括 SKINCON 数据集和 Dermnet 数据集。

SKINCON 数据集可访问:

https://skincon-dataset.github.io/

Dermnet 数据集可访问:

https://www.kaggle.com/datasets/shubhamgoel27/dermnet

本研究中使用但未展示的受限内部皮肤病图像,可通过合理请求向通讯作者获取。论文附带提供源数据。

代码可用性

为促进学术交流,并在数据与隐私安全框架下,SkinGPT-4 所提出的代码已公开,可访问:

https://github.com/JoshuaChou2018/SkinGPT-4

对于非商业用途,研究者可根据上述链接提供的许可协议签署后,与 J.Z. 或 X.G. 联系以获取最新的非商业训练模型权重。

相关推荐
Learn-Share_HY9 小时前
[Python]如何用uv套件建置python專案與虛擬環境?
python·ai·virtualenv·uv·server·mcp·cline
天草二十六_简村人1 天前
docker安装index-tts,实现文本转语音的本地私有化部署
运维·docker·ai·容器·ai编程
TDengine (老段)1 天前
优化 TDengine IDMP 面板编辑的几种方法
人工智能·物联网·ai·时序数据库·tdengine·涛思数据
Thexhy1 天前
Java大模型后端开发全流程指南
java·ai·大模型
linuxxx1101 天前
高考志愿填报辅助系统
redis·后端·python·mysql·ai·django·高考
努力的光头强1 天前
《智能体设计模式》从零基础入门到精通,看这一篇就够了!
大数据·人工智能·深度学习·microsoft·机器学习·设计模式·ai
哥布林学者1 天前
吴恩达深度学习课程二: 改善深层神经网络 第三周:超参数调整,批量标准化和编程框架(四)编程框架
深度学习·ai
三寸3372 天前
硬刚GPT 5.1,Grok 4.1来了,所有用户免费使用!
人工智能·ai·ai编程
组合缺一2 天前
Solon AI 开发学习 - 1导引
java·人工智能·学习·ai·openai·solon