【眼科大模型】Ophtha-LLaMA2:视觉模型提取图像特征 + LLM基于特征生成眼底病变的诊断报告

Ophtha-LLaMA2:视觉模型提取图像特征 + LLM基于特征生成眼底病变的诊断报告

    • 提出背景
    • 设计思路
      • 选择大模型基座
      • 生成诊断报告

 


论文:https://arxiv.org/pdf/2312.04906.pdf

 

提出背景

目标是开发一个全面的眼科模型,可以根据不同仪器的检查报告准确快速地诊断疾病。

Ophtha-LLaMA2,通过三种不同的眼科图像(OSA, OCT, CFP)进行诊断,并给出相应的诊断:

  • 光学相干断层扫描(OCT):这种技术提供眼部组织的高分辨率横截面成像。

  • 瞳孔面积分析仪(OSA):用于检测和评估睑板腺的功能和结构。

  • 彩色眼底摄影(CFP):用于观察和记录眼底的状况。

在这里插入图片描述

  • 对于OSA图像(眼睑腺的图像),发现是上眼睑的腺体管道直且均匀密集,没有明显的腺体丢失也没有腺体管道的堵塞。是正常的睑板腺(双眼)。

  • 对于OCT图像(光学相干断层扫描图像),发现是双侧视网膜色素上皮(RPE)和其下方小的突起,这些突起显示出高反射信号。是玻璃体疣(双眼)。

  • 对于CFP图像(彩色眼底照相图像),发现是黄白色的渗出物从黄斑区域排出,两眼都有,并伴有多处视网膜出血。是糖尿病视网膜病变(双眼)。

具体到该模型能诊断的疾病种类,这将取决于模型训练时使用的数据集覆盖了多少种眼科疾病,以及模型设计时考虑了哪些诊断标准。

理论上,如果数据集足够广泛且包含多种疾病的代表性案例,模型就能学习到诊断这些疾病的能力。在实际应用中,模型的诊断能力还需要经过临床试验和验证。

效果测评
在这里插入图片描述
在主流大模型中,最强。
 


设计思路

  1. 数据准备

    • 从眼科数据库中收集大量眼底照片(CFP),每张照片都有详细的医生诊断报告。
    • 使用预训练的计算机视觉模型(如ResNet、YOLO、医学方面视觉算法)从眼底照片中提取视网膜特征。
    • 将图像特征和对应的医生诊断报告结合,生成一个训练数据集。
  2. 模型训练与微调

    • 使用收集的数据集对Ophtha-LLaMA2模型进行领域适应性微调,特别关注眼底病变的特征和相关术语。
    • 通过多任务学习策略,让模型学习如何从视网膜特征生成结构化的诊断文本。
  3. 推理与报告生成

    • 当收到新的眼底照片时,模型首先使用同样的计算机视觉模型(ResNet、YOLO、医学方面视觉算法)提取图像特征。
    • 然后,Ophtha-LLaMA2基于这些特征生成一份详细的诊断报告,报告中包含可能的病变类型、严重程度和建议的后续步骤。
  4. 评估与验证

    • 通过与眼科医生的诊断报告进行对比,评估模型生成报告的准确性和可靠性。
    • 采用匿名化的真实患者数据进行测试,以确保评估的真实性和合规性。
  5. 反馈循环

    • 根据医生的反馈和模型在实际应用中的表现,不断调整和优化模型的性能。

 


选择大模型基座

眼科数据的特点是高度专业化和细节丰富,这就要求模型能够处理和理解长距离依赖关系,并且在训练和推理过程中保持高效和准确。

假设我们的目标是开发一个能够根据眼底图像生成详细文本描述的模型,这种描述能够帮助眼科医生快速了解患者的可能病变情况。

为什么选取LLaMA2 ?

  • RMSNorm层:增加 RMSNorm 层有助于模型在训练过程中保持更稳定的梯度流,这对于训练深层模型尤为重要,因为它可以减少训练过程中的梯度消失或爆炸问题。

  • RoPE位置编码:使用 RoPE 增强了模型对长距离依赖的理解,这在处理医学图像描述时特别重要,因为细微的病变特征及其在文本描述中的正确表达往往需要对图像上下文的全面理解。

  • KV Cache和GQA机制:引入 KV Cache 可以减少重复计算,提高模型运行效率;而 GQA(Grouped Query Attention)机制则通过对注意力查询进行分组处理,提高了模型处理复杂查询时的精度和效率。

通过这些结构,模型现在能够更准确地从眼底图像中识别出细小的病变特征,并将这些特征准确地映射到专业的医学术语上,生成的文本描述不仅准确,而且包含了丰富的细节,为医生提供了更有价值的信息。

  1. Input Embedding: 这是模型接收输入的第一层,将输入词或标记转换为嵌入向量。

  2. Transformer Block: 这是模型核心,通常由多个相同的块堆叠而成(在图中以 “N x” 表示)。每个块通常包含两个主要部分:多头自注意力机制(Attention)和前馈神经网络(FeedForward)。

  3. RMSNorm: 根源均方归一化(Root Mean Square Layer Normalization)是一种归一化技术,用于在Transformer块的不同层之间稳定训练。它在多头自注意力和前馈网络之前被应用。

  4. RoPE: 相对位置编码(Relative Positional Encoding)是一种用于捕捉序列中元素间相对位置关系的技术。

  5. Softmax: 在自注意力机制中使用,用于将注意力分数转换为概率分布。

  6. FeedForward Network: 包含线性层和激活函数,通常在经过自注意力机制处理后进一步转换特征。

  7. Output Probabilities: 最后的输出层,通常是线性层后跟一个Softmax函数,用于将Transformer的输出转换为预测概率。
     


生成诊断报告

生成适用于LLMs的完整提示:

  • 例子:为模型设计提示,如“根据以下OCT和CFP图像数据,生成病人的眼科诊断报告”,引导模型专注于关键信息。

利用LLMs的文本摘要能力生成医疗报告的诊断部分:

  • 例子:模型分析输入的图像描述和检查结果,自动生成一份包含病变类型、推荐治疗方法的诊断报告摘要。

大模型的摘要能力是无敌的好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/398761.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GitHub | 在 GitHub 上在线展示 Vue 项目

简洁版&#xff1a;上传所有代码 << 构建项目并上传 dist 目录 << 设置仓库 << 访问 Step1&#xff1a;在 GitHub 上新建仓库&#xff0c;并将 Vue 项目的代码 push 到该仓库中。坑点在于&#xff0c;如果你是从 GitHub 上 clone 的别人的项目&#xff0c;那…

vulnhub练习 DC-1复现及分析

一、搭建环境 1.工具 靶机&#xff1a;DC-1 192.168.200.17 攻击机&#xff1a;kali 192.168.200.13 2.注意 攻击机和靶机的网络连接方式要相同&#xff0c;另外DC-1的网络连接方式我这里采用NAT模式&#xff0c;是与kali的网络连接模式相同的&#xff08;当然亦可以选用桥…

国产chat gpt推荐

下述网站响应非常快 会持续更新的! 付费&#xff1a; 小名言 免费&#xff1a; AIchatOS 百度的文心一言

unity学习(32)——跳转到角色选择界面(父子类问题)

新问题 应该是两个脚本之间缺少继承关系 its children 解决起来很简单&#xff0c;把ResceneScript也绑到canvas上就可以了 。 此时&#xff0c;在账号密码正确的情况下&#xff0c;是可以完成场景切换。 对应的代码如下&#xff1a; TMP_Text d GameObject.FindWithTag(&…

板块一 Servlet编程:第五节 Cookie对象全解 来自【汤米尼克的JAVAEE全套教程专栏】

板块一 Servlet编程&#xff1a;第五节 Cookie对象全解 一、什么是CookieCookie的源码 二、Cookie的具体操作&#xff08;1&#xff09;创建Cookie&#xff08;2&#xff09;获取Cookie&#xff08;3&#xff09;设置Cookie的到期时间&#xff08;4&#xff09;设置Cookie的路径…

<网络安全>《42 网络攻防专业课<第八课 - SQL注入漏洞攻击与防范>》

1 SQL注入漏洞利用及防范 1 SQL注入的地位 2 SQL注入的危害及本质 这些危害包括但不局限于&#xff1a; 数据库信息泄漏&#xff1a;数据库中存放的用户的隐私信息的泄露。网页篡改&#xff1a;通过操作数据库对特定网页进行篡改。网站被挂马&#xff0c;传播恶意软件&#…

writing classes ... [xxx of xxxx] 执行时间太长

一、问题展示 二、解决方法 打开设置【File - Settings…】修改堆大小

OpenGL学习——16.多光源

前情提要&#xff1a;本文代码源自Github上的学习文档“LearnOpenGL”&#xff0c;我仅在源码的基础上加上中文注释。本文章不以该学习文档做任何商业盈利活动&#xff0c;一切著作权归原作者所有&#xff0c;本文仅供学习交流&#xff0c;如有侵权&#xff0c;请联系我删除。L…

MySQL 窗口函数温故知新

本文用于复习数据库窗口函数&#xff0c;希望能够温故知新&#xff0c;也希望读到这篇文章的有所收获。 本文以&#xff1a;MySQL为例 参考文档&#xff1a; https://www.begtut.com/mysql/mysql-window-functions.html 使用的样例数据&#xff1a;https://www.begtut.com/m…

Linux|centos7| rust语言的编译开发环境快速部署

前言&#xff1a; rust语言是干什么的&#xff0c;怎么用这些我就不在这里废话了&#xff0c;免得浪费大家的时间&#xff0c;我目前只知道rust音译为铁锈&#xff0c;它的可执行主程序叫cargo&#xff0c;音译为货物 这个语言和python&#xff0c;Java&#xff0c;go等等语言…

每日学习总结20240220

每日总结 20240220 岁月极美&#xff0c;在于它必然的流逝&#xff1b;春花&#xff0c;秋月&#xff0c;夏日&#xff0c;冬雪。 ——三毛 1.svn操作 通过svn创建一个仓库 请写出一套配置 配置文件包括svnserve.conf passwd authz 三个文件 添加用户xiaoming 密码为lx,使得能…

LabVIEW读取excel日期

LabVIEW读取excel日期 | Excel数据表格中有日期列和时间列&#xff0c;如下表所示&#xff1a; 通过LabVIEW直接读取Excel表格数据&#xff0c;读出的日期列和时间列数据与原始表格不一致&#xff0c;直接读出来的数据如下表所示&#xff1a; 日期、时间列数据异常 问题产生原因…

三次握手,四次挥手的大白话版本

三握四挥 首先我们要知道握手和挥手是在做什么&#xff0c;握手是为了让客户端和服务端建立连接&#xff0c;挥手是为了让客户端和服务端断开连接&#xff0c;握手时客户端主动发起请求&#xff0c;挥手双方都能发起请求。 三次握手 有必要解释一下&#xff0c;SYN的意思是同…

OLED示例程序、keil的调试模式

调试方式 串口调试&#xff1a;通过串口通信&#xff0c;将调试信息发送到电脑端&#xff0c;电脑使用串口助手显示调试信息 显示屏调试&#xff1a;直接将显示屏连接到单片机&#xff0c;将调试信息打印在显示屏上 Keil调试模式&#xff1a;借助Keil软件的调试模式&#xf…

Vue模版语法之属性绑定v-bind

双大括号不能在 HTML 属性中使用。想要响应式地绑定一个属性&#xff0c;应该使用 v-bind 指令 1. 使用v-bind绑定属性 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>新建页面</title><sc…

pclpy 安装和使用

pclpy 安装和使用 一、安装pclpy二、问题与解决方法三、测试四、测试结果五、相关链接 一、安装pclpy pclpy是点云库(PCL)的Python绑定。使用CppHeaderParser和pybind11从头文件生成。这个库正在积极开发中&#xff0c;目前Windows只支持python 3.6 x64 和 python3.7&#xff…

Arcgis小技巧【17】——如何修改ArcGIS中影像的背景颜色

一、问题分析 在ArcGIS中&#xff0c;有时候会遇到影像有背景色&#xff0c;看上去很不美观。 尤其在多个影像叠加的时候&#xff0c;更是会造成遮挡的问题。 二、解决办法 首先&#xff0c;用【识别】工具在背景色是点击一下&#xff0c;查看弹出的窗口&#xff0c;记住背景…

Leetcode1206(设计跳表)

例题&#xff1a; 分析&#xff1a; 我们先来找一找跳表与单链表的相同点和不同点。 相同点&#xff1a; 跳表和单链表一样&#xff0c;都是由一个一个的节点组成的链表。 不同点&#xff1a; ①&#xff1a;跳表中的元素已经是排好序的&#xff08;图中从小到大&#xff09;&…

Spring Cloud Alibaba-04-Sentinel服务容错

Lison <dreamlison163.com>, v1.0.0, 2023.09.10 Spring Cloud Alibaba-04-Sentinel服务容错 文章目录 Spring Cloud Alibaba-04-Sentinel服务容错高并发带来的问题服务雪崩效应常见容错方案Sentinel入门什么是Sentinel微服务集成Sentinel安装Sentinel控制台 实现一个接…

【Vue】v-for中:key中item.id与Index使用的区别

先说结论&#xff0c;推荐使用【:key"item.id"】而不是将数组下标当做唯一标识&#xff0c;前者能做到全部复用 场景&#xff1a;删除无序列表中的<li>标签 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&q…