CLEFT 基于高效大语言模型和快速微调的语言-图像对比学习

CLEFT: Language-Image Contrastive Learning with Efficient Large Language Model and Prompt Fine-Tuning

github.com

paper

CLEFT是一种新型的对比语言图像预训练框架,专为医学图像而设计。它融合了医学LLM的预训练、高效微调和提示上下文学习,展现出卓越的性能!该框架由耶鲁大学研发。

最新进展证明了对比语言-图像预训练(CLIP)在自监督表征学习方面取得显著成功。然而,类似CLIP的现有方法通常需要大量GPU资源和长时间训练,因为模型和数据集规模较大,这使其不适用于医疗应用场景中,并非所有都有大规模数据集可供使用。同时,手动从与图像相关联的标签中提取语言模型提示可能会忽略丰富信息样本所包含的内容。我们引入了一种创新的语言-图像对比学习方法CLEFT,在充分利用广泛预训练语言和视觉模型优势时实现高效率微调提示。此外,本文还提出了一种有效策略来基于上下文进行提示学习,以缩小临床诊断数据和简单类别标签之间差距,并充分利用其中丰富信息内容。相较于各种基线算法,在多个胸部X光和乳房X光检查数据集上验证结果显示提出的方法达到了最先进水平。与当前BERT编码器相比,所提出参数高效框架可以减少39%总可训练模型大小,并将可训练语言模型减少至仅4%。

动机

问题

  1. 资源消耗大
    • 现有的CLIP(Contrastive Language-Image Pre-training)类方法通常需要大量的GPU资源和长时间的训练,这主要是由于模型和数据集规模庞大。这使得这些方法在医疗领域的应用受限,因为医疗数据往往不如自然图像数据丰富。
  2. 语言模型提示的局限性
    • 现有的CLIP方法中的语言模型提示主要基于与图像绑定的标签手动生成,这可能忽略了训练样本中丰富的信息。
    • 手工制作的提示语缺乏多样性,可能导致文本编码器中的灾难性遗忘现象,并限制模型性能。
  3. 模型大小限制
    • 现有的医疗CLIP方法使用基于BERT的语言模型,其模型大小有限,影响了在嵌入空间中的表达能力,进一步限制了预训练能力。

解决问题的策略

  1. 引入高效的大型语言模型
    • 利用大规模预训练的语言模型和视觉模型的优势,以弥补医疗数据稀缺的问题。
    • 引入GPT-2基础的因果语言模型作为文本编码器,该模型在扩展到数十亿参数时表现出更好的能力。
  2. 参数高效的微调
    • 采用参数高效的微调(PEFT)模块,以减少训练期间的参数数量,同时保持大型语言模型中的稳健预训练知识。
    • 通过在冻结的大型语言模型中注入少量可训练参数,调整注意力层的输出,避免过拟合和灾难性遗忘。
  3. 学习上下文相关的提示
    • 提出一个高效的策略来学习上下文相关的提示,以弥补信息量丰富的临床诊断数据与简单类标签之间的差距。
    • 通过第二阶段的训练,优化可学习的上下文提示标记,提高模型的泛化能力。

方法

1. Boosting CLIP with an LLM
  1. 基础CLIP框架
    • 包括视觉编码器和文本编码器,通过相应的投影头将图像-文本对编码到特征空间,并映射到同一特征空间以桥接两种模态。
  2. PEFT LLM作为文本编码器
    • 使用GPT-2因果语言模型代替BERT模型,因为GPT-2在扩展到数十亿参数时表现出更强的能力。
    • 引入PEFT模块,在每个Transformer块中注入少量可训练参数,以调整注意力层的输出,同时保持大多数参数冻结。
    • 解锁LLM的嵌入层,在预训练期间更新相应的令牌嵌入,以缩小预训练文本数据与CLIP提示之间的领域差距。
  3. CLIP作为知识蒸馏
    • 将预训练的文本编码器视为教师模型,因为它已经有一个完善的嵌入空间,能够区分不同的样本。
    • 视觉编码器作为学生模型,其输出被优化以与教师模型的嵌入空间对齐,从而蒸馏出教师模型中的知识。
2. 学习上下文相关的提示
  1. 替换手工制作的提示
    • 在预训练后,冻结两个编码器,并用一系列可训练的标记替换原始手工制作的提示。
    • 这些可学习的上下文提示标记用于所有类别,以确保其泛化能力。
  2. 优化可学习的提示
    • 使用零样本分类交叉熵损失来优化这些可学习的上下文提示标记。
    • 允许提示标记适应不同的类别,避免潜在的捷径问题。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】线程同步与互斥

目录 线程相关问题 线程安全 常见的线程安全的情况 常见的线程不安全的情况 可重入函数与不可重入函数 常见不可重入的情况 常见可重入的情况 可重入与线程安全的关系 联系 区别 线程同步与互斥 互斥锁 使用 死锁 死锁的四个必要条件 如何避免死锁 条件变量 同…

Unity读取Android外部文件

最近近到个小需求,需要读Android件夹中的图片.在这里做一个记录. 首先读写部分,这里以图片为例子: 一读写部分 写入部分: 需要注意的是因为只有这个地址支持外部读写,所以这里用到的地址都以 :Application.persistentDataPath为地址起始. private Texture2D __CaptureCamera…

【JavaEE】初步认识多线程

🔥个人主页: 中草药 🔥专栏:【Java】登神长阶 史诗般的Java成神之路 🎷 一.线程 1.概念 线程(Thread)是在计算机科学中,特别是操作系统领域里的一个关键概念。它是操作系统能够进行…

Android中的Binder

binder是Android平台的一种跨进程通信(IPC)机制,从应用层角度来说,binder是客户端和服务端进行通信的媒介。 ipc原理 ipc通信指的是两个进程之间交换数据,如图中的client进程和server进程。 Android为每个进程提供了…

【聚类算法】

聚类算法是一种无监督学习方法,用于将数据集中的数据点自动分组到不同的类别中,这些类别也称为“簇”或“群”。聚类的目标是让同一簇内的数据点尽可能相似,而不同簇之间的数据点尽可能不相似。聚类算法广泛应用于多种领域,如数据…

xtrabackup搭建MySQL 8.0 主从复制

xtrabackup搭建MySQL 8.0 主从复制 安装MySQL 8.0.37安装xtrabackupGTIDs初始化从库参考:GTID概述GTID相较与传统复制的优势GTID自身存在哪些限制GTID工作原理简单介绍如何开启GTID复制GTID与传统模式建立复制时候语句的不同点传统复制GTID复制 GTID同步状态简单解析…

Linux系统编程 day09 线程同步

Linux系统编程 day09 线程同步 1.互斥锁2.死锁3.读写锁4.条件变量(生产者消费者模型)5.信号量 1.互斥锁 互斥锁是一种同步机制,用于控制多个线程对共享资源的访问,确保在同一时间只有一个线程可以访问特定的资源或执行特定的操作…

机器学习第一课

1.背景 有监督学习:有标签(连续变量(回归问题:时间序列等)、分类变量(分类)) 无监督学习:没有标签(聚类、关联(相关性分析:哪些相关…

代码随想录算法训练营Day35 | 01背包问题 | 416. 分割等和子集

今日任务 01背包问题 题目链接&#xff1a; https://kamacoder.com/problempage.php?pid1046题目描述&#xff1a; Code #include <iostream> #include <vector> #include <functional> #include <algorithm>using namespace std;int main(void)…

工作随记:我在OL8.8部署oracle rac遇到的问题

文章目录 一、安装篇问题1&#xff1a;[INS-08101] Unexpected error while executing the action at state:supportedosCheck问题1解决办法&#xff1a;问题2&#xff1a;[INS-06003] Failed to setup passwordless SSH connectivity with thefollowing nodeis): [xxxx1, xxxx…

go语言后端开发学习(四) —— 在go项目中使用Zap日志库

一.前言 在之前的文章中我们已经介绍过如何使用logrus包来作为我们在gin框架中使用的日志中间件&#xff0c;而今天我们要介绍的就是我们如何在go项目中如何集成Zap来作为日志中间件 二.Zap的安装与快速使用 和安装其他第三方包没什么区别&#xff0c;我们下载Zap包只需要执…

pod详解 list-watch机制 预选优选策略 如何指定节点调度pod

K8S是通过 list-watch 机制实现每个组件的协同工作 controller-manager、scheduler、kubelet 通过 list-watch 机制监听 apiserver 发出的事件&#xff0c;apiserver 也会监听 etcd 发出的事件 scheduler的调度策略&#xff1a; 预选策略&#xff08;Predicates&#xff09;…

Pytorch_cuda版本的在线安装命令

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 运行效果如下&#xff1a; 这个方法是直接从pytorch官网进行在线下载和安装。 cu121&#xff0c;表示当前您安装的cuda版本是12.1

【Redis】持久化—RDB和AOF机制

目录 什么是持久化&#xff1f; RDB&#xff08;定期备份&#xff09; 触发机制 bgsave命令的运作流程 RDB文件的处理 RDB文件 RDB的优缺点 AOF&#xff08;实时备份&#xff09; AOF工作流程 AOF 缓冲区同步⽂件策略 AOF重写机制 AOF重写流程 Redis根据持久化文件…

2015款到18款奔驰GLC升级为2021款的HU6主机后,实现了触摸屏人机交互和Carplay功能

奔驰GLC是北京奔驰生产的一款中型SUV。有车主将2015款奔驰GLC升级为2021款的HU6主机后&#xff0c;实现了触摸屏人机交互和Carplay功能。该车主分享了使用体验&#xff1a; • Carplay功能&#xff1a;可以直接在车机大屏幕上显示导航、音乐和电话信息&#xff0c;让用户在开车…

联想SR650更换风扇后提示传感器异常“传感器Phy Presence Set已从正常状态转换至非紧急状态”

服务器型号&#xff1a;联想ThinkSystem SR650 故障现象&#xff1a;一台联想 ThinkSystem SR650服务器告警&#xff0c;面板和平台同时报风扇故障 告警信息如下图&#xff1a;&#xff08;面板和平台同时告警&#xff09; 接入bmc后查看发现是6号风扇告警 硬件这里已经无法识…

会C++了,想开始接触C#怎么办?|.Net 架构|从C++到C#的入门教学

前言 高质量博客汇总https://blog.csdn.net/yu_cblog/category_12379430.html成熟常用的开发工具和框架https://blog.csdn.net/yu_cblog/category_12737979.htmlDocker从认识到实践再到底层原理https://blog.csdn.net/yu_cblog/category_12424689.html操作系统和计算机网络从入…

[C++] 深入理解面向对象编程特性 : 继承

文章目录 继承的概念与定义继承的定义定义格式不同继承方式与继承的基类中访问限定符间的影响C中的继承和访问控制总结父类的private成员在子类中的访问限制protected成员的使用场景成员访问方式总结继承方式的默认值实际应用中的继承方式 示例代码 OOP中类之间的关系“is a” …

PLSQL导入导出ORACLE数据提示失败问题修改PLSQL配置

oracle中plsql导入提示无法导入问题 1.首先看下是否环境变量已经配置(具体配置看下面环境变量配置) 2.plsql数据导入中tools-->Preferences中配置如下框中的内容 3.设置 tnsnames.ora文件中看下是否设置有问题 4.PLSQL乱码问题 NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16…

性能测试工具之JMeter

JMeter Apache JMeter应用程序是开源软件,是一个100%纯Java应用程序,旨在负载测试功能行为和衡量性能。它最初是为测试Web应用程序而设计的,但后来扩展到其他测试功能。 JMeter是一个免费、开源、跨平台的性能测试工具,于20世纪90年代后期面世。这是一个成熟、健全且具有…