李沐读论文笔记--大模型时代下做科研的四个思路

news2024/12/27 11:17:21

大模型时代下做科研的四个思路

  • 0. 视频来源:
  • 1. 提高效率(更快更小)
    • 1.1 PEFT介绍(parameter efficient fine tuning)
    • 1.2 作者的方法
    • 1.3 AIM效果
      • 1.3.1AIM 在 K400 数据集上的表现
      • 1.3.2AIM 在 Something-Something 数据集、K700 数据集和 Diving-48 数据集上的表现
  • 2.调用已训练好的模型做应用
  • 3.做即插即用的模块
  • 4.构建数据集,做分析为主的文章,写一篇综述论文

0. 视频来源:

李沐读论文:大模型时代下做科研的四个思路

1. 提高效率(更快更小)

1.1 PEFT介绍(parameter efficient fine tuning)

视频理解方面论文:AIM: Adapting Image Models for Efficient Video Action Recognition
之前的工作粗略分为2类:

  • 时间和空间分开处理
  • 时空一起来做
    在这里插入图片描述

描述:将一个很大的数据集通过预训练得到一个image模型(例如imageNet 1K上训练一个res50的模型)
接下来

  • 在已经与训练好的图片模型之上,单独地增加一个时序处理的模块,例如在TSM中将视频截成几段,然后将视频抽出来的特征进行加权平均
  • 3D 网络,时间空间特征一起学,例如i3d,Video Swing。输入是3D的,模型也是3D的。

不足之处:
虽然效果很好,但是计算代价实在太大,这些模型都需要 Full Fine Tune,尤其是视频数据集非常大,训练cost太大。
论文动机来自Clip,证明了它自己即使直接 zero-shot 就会很好,而且它也说明了在视频方面的任务上:

  • 从有效性方面来说,当有一个极其强大的的预训练好的图像模型后,我们可能不需要 fine-tune 的部分了
  • 防止灾难性遗忘,如果有一个大模型,下游没有很好的数据集(或者说没有很多的数据),硬要 finetune 这个大模型的话,往往会做不好。

于是本文拿到一个好的图像模型后,直接把其参数锁住。然后通过修改周边的方式,来让这个模型具备时序建模的能力,来让图像模型能够直接做视频理解任务。
而 PEFT 有两个普遍的方法:

  • adapter
    论文:Parameter-Efficient Transfer Learning for NLP
    在这里插入图片描述

它是把 Adapter 可以随意地插入 TFM block 中,然后锁住原 TFM 的参数,只训练 Adapter。

这样由于 Adapter 相比 TFM 参数量很小,因此不是特别大

  • prompt tuning
    论文Learning to Prompt for Vision-Language Models
    prompt指的是给模型一个提示,让模型去做你想做的事情。例如在CLIP当中,如果想做分类任务,把想要的class都给这个模型
    tuning体现在prompt的可学习
    hard prompt(手工 prompt):由于手工写的 prompt 一旦写出来就写死了,这会隐含一个先验知识,可能会对最后的效果产生影响。比如下图中前三个蓝色的部分。
    soft prompt:让论文自己学习 prompt,在模型的训练过程中模型的参数锁住不动,只训练prompt。如下图中绿色的部分。

在这里插入图片描述
在这里插入图片描述
上面是文本的分支,和预测的 [CLASS] 一起进入文本编码器,得到文本的特征。
下面图片进入图片编码器,得到一个图像特征。然后这一个图像特征和文本特征做相似度,看哪个最高选哪个。
这里和 CLIP 的区别在于:prompt 变成了一个可以学习的上下文。
通过这种方式把原来的模型锁住,只学习 prompt,减少计算量。
这里只是对文本进行prompt,那么是否可以用在图像上呢?
也可以,例如论文:Visual Prompt Tuning

在这里插入图片描述
VPT论文提出2种方式:

  • VPT Shallow
    图片打成 patch 后先通过一些已经训练好并被冻结的层,得到了输入的sequence(E0),把他和可学习的 prompt 一起丢尽模型里,只训练P0
  • VPT Deep
    看懂了Shallow也就能看懂Deep

小结:PEFT是指当有一个训练好的大模型的时候,我们希望模型是锁住不动的,不光有利于训练还有利于部署,做下游任务的transfer,更重要的是性能不降,甚至反升。正因为非常实用,huggingface专门用来做PEFT的包,可以在github上找到。也有一篇类似综述的论文https://arxiv.org/pdf/2110.04366.pdf

1.2 作者的方法

作者的方法很简单,主要思路就是锁住模型参数,然后往模型里加 Adapter
在这里插入图片描述
有以下方式进行修改:

  1. Spatial Adaptation:别的都锁住,只在 Self-Attention 后面加一层 Adapter。
    作者认为其意义在于:
    不给其添加什么视频理解的能力以及时序建模的能力,只给它加一些可以学习的参数,看看它能不能从图像学习到的特征迁移到视频数据集来,看看能不能解决领域之间有差距的问题。我们也可以对Spatial Adaptation添加时序建模能力,这里的方法五花八。
    2.Temporal Adaptation
    两个 self-attention 加一个 MLP,两个 attention 参数一样。第一个 T-attention 输入的矩阵先 reshape 一下,维度为 (N+1)×T×D,是在时序这个维度上做自注意力。第二个 S-attention 输入的矩阵再 reshape 回来,维度为 T×(N+1)×D
    ,在 sequence length 的维度上做自注意力。
    我们在 T-attention 后面加了一个 adapter,S-attention 后面也加了一个。确保一个学 spatial 另一个学 temporal 。

3.Joint Adaptation
进一步修改在 MLP 旁边加上了 Adapter,希望三个 Adapter 各司其职,各自学各自该学的,最后这个模型结构其实就是 AIM 了。

1.3 AIM效果

1.3.1AIM 在 K400 数据集上的表现

在这里插入图片描述

  • Frozen space-only:也是常说的 LinearProbe,整个 backbone 锁住,只去 tune 最后的 head
  • Finetuned space-only:正常的模型 Finetune,没有考虑时序信息
  • Finetuned space-time:TimesFormer 本身,是一个 Video 的 FullFineTuning 的过程
  • Frozen space-only + spatial adaptation:加上了 spatial adaptation 后,可以发现和 Finetuned space-only 差不多,但是训练参数量只有 3.7 M
  • Frozen space-only + temporal adaptation:加上 temporal adaptation 后,效果直接翻一倍,甚至比Finetuned space-time的59.5还要高,说明模型的优化在视频理解问题中是非常重要的问题。
  • Frozen space-only + joint adaptation adaptation:还能再提升一点点
  • AIM:再把预训练模型从 IN-21K 换成 CLIP,于是还有提升

1.3.2AIM 在 Something-Something 数据集、K700 数据集和 Diving-48 数据集上的表现

在这里插入图片描述
我们可以看到AIM 在K400的数据集上达到87.5Accuracy,可训练参数量显著的低,在Something-Something表现不是最好的,作者给出的解释是可能数据集更加 Temporal Heavy,更注重时序信息,而且很细粒度(把什么东西从左移到右,又把把什么东西从右移到左),这时光是reshape input方式就不太适用,需要一个更强大的时序建模框架

2.调用已训练好的模型做应用

  • 直接利用预训练好的模型,不去做预训练,只去做funting,去扩展到各个不同的领域。
  • 尽量选新的方法或者新的topic去做,因为这里可能没有成熟的数据集和 Benchmark,因此数据和 Setting 都可以自己选,不用担心比不过别人。例如In-Context Learning:上下文学习,Chain-of-thought prompting:思维链提示,Causal learning:因果学习

下面介绍一个使用自监督的目标中心表示的无监督语义分割的论文
论文:Unsupervised Semantic Segmentation with Self-supervised Object-centric Representations
方向是无监督语义分割方向,具体使用方法是Self-supervised Object-centric Representations,利用已经训练好的DINO网络和DeepUSPS和BASNet网络,这些抽特征的网络都是与训练好的。

在这里插入图片描述
主要流程在于怎么样能让这个模型在无监督的情况下找到新的物体?
很多人认为直接通过一个图片抽一个特征其实不太合理,我们认在看东西的时候会有一个聚焦的人或者物体,再看其交互,预判即将发生什么,如果还能 Unsupervised,会更完美。
如果想学习一个 Segmentation 的网络,那么需要某种程度上的 Mask information。
那么最初始的 Mask information 从哪来?这篇论文借助了之前 Saliency Detection(显著性检测)的工作,直接用了 DeepUSPS ,很多之前无监督 Segmentation 工作用的也是它。

  • 给定一张图,给你显著物体的 mask。然后就可以借助这个 mask 把图片中的物体给抠出来。
    在这里插入图片描述
  • 把它抠出来后,resize一下,扔给 DINO 这个网络去抽它的特征Glob-representations。
  • 用这些特征然后做聚类(Clustering),然后就能无监督地判断物体是什么 id,暂时还无法确定这些物体是什么,因此这里称作 Noisy pseudo masks,但变相的有了Mask Label,于是可以直接训练一个Semantic Segmentation Network(语义分割)
  • 另外一个图片可能有多个物体,所以加一个 self-training,多次轮回。

3.做即插即用的模块

  • 这个模块既可以是模型上的一个模块比如Non-Local Modual,在已有的resnet后面加一个Non-Local
  • 或者是一个目标函数把loss换成focal loss
  • 数据增强的方法,比如Mixup
    论文:MixGen: A New Multi-Modal Data Augmentation
    作者在研究多模态模型的时候,发现它们都没有使用数据增强。
  • 比如 CLIP 只用了基础的数据增强方法 Random Resized Crop,解释是图片文本对已经足够多,所以不需要数据增强
  • 在ALBEF 和 BLIP中,虽然用了很好的数据增强,比如 Auto Augment,但是把 Auto Augment里的Color Jittering(对颜色的数据增强:图像亮度、饱和度、对比度变化;彩色变换) 和Random Flip(随机翻转) 去掉了,解释是如果做了这些数据增强,图片的信息会丢失,文本和图片就不一定匹配了。

那么怎么最大程度将原有的信息保留起来?

  • 图像:Mixup,将2张图片线性的差值在一起,虽然人眼看起来比较诡异,但是信息没有丢失

  • 文本:

    • Mixup

    • Random erasing

    • Random Insertion

    • Back Translation

作者的思想是把句子直接拼接在一起
在这里插入图片描述
在这里插入图片描述
通过上述方式得到一个全新的样本,尽管这样的方式会形成一些很别扭的数据,但从整体信息量来说, 最大程度将之前的信息保留起来了。
下面是效果:
在这里插入图片描述
不足之处:
审稿人们觉得这个方法过于简单,一投没过,一个审稿人提出了建设性的意见:数据增强是在没有那么多数据的时候才会去做的选择,但是在多模态的预训练里面,由于已经有大量的数据存在,所以预训练过程没什么用。但是在 Finetuning 过程中,由于下游数据集的数据不多,因此这个方法大概可以应用于 Finetuning 过程中。

4.构建数据集,做分析为主的文章,写一篇综述论文

构建数据集:
论文:BigDetection: A Large-scale Benchmark for Improved Object Detector Pre-training
本论文是把 LVIS,OpenImages 和 Object 365 结合到了一起。这里不是简单的合到一起,而是需要重新分布数据里的类,并且根据任务的需求,决定物体类别有多细粒度。
该数据集有600 类、3.4e6 的训练图片,且有 3.6e7 的目标检测框及注释。
综述论文:
论文:A Comprehensive Study of Deep Video Action Recognition
这是视频动作检测的综述论文,这些论文往往不需要那么多的计算资源,evaluation有时候只要做inference,就算要训练,更多的时候也只需要fine tuning,写这类论文更需要的写作能力,在4个方法中最不需要计算机资源。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《程序员面试金典(第6版)》面试题 16.01. 交换数字(位运算符,异或性质)

题目描述 编写一个函数&#xff0c;不用临时变量&#xff0c;直接交换numbers [a, b]中a与b的值。 示例&#xff1a; 输入: numbers [1,2]输出: [2,1] 提示&#xff1a; numbers.length 2-2147483647 < numbers[i] < 2147483647 解题思路与代码 这道题不让使用额外…

spring getway的配置

1. 创建工程 getway-server 2. 添加 pom 依赖&#xff1a; <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId> </dependency> 3. 添加启动类 4. 添加配置文件&#xff…

【安全防御】IPsec VPN

1.什么是数据认证&#xff0c;有什么用&#xff0c;有哪些实现的技术手段&#xff1f; 在计算机和网络安全领域中&#xff0c;数据认证是指验证数据在传输和存储过程中的完整性、真实性和合法性的过程。数据在传输和存储过程中容易受到数据篡改、损坏或未经授权的访问和修改的…

用Keras单层网络预测银行客户流失率

用Keras单层网络预测银行客户流失率 描述 已知一批客户数据&#xff0c;来预测某个银行的客户是否流失。通过学习历史数据&#xff0c;如果机器能判断出哪些客户很有可能在未来两年内结束在银行的业务&#xff08;这当然是银行所不希望看到的&#xff09;&#xff0c;那么银行…

基于vue+laravel技术框架开发的:PHP不良事件上报系统源码

医院安全&#xff08;不良&#xff09;事件上报系统源码&#xff0c;PHP不良事件上报系统源码 系统定义&#xff1a; 规范医院安全&#xff08;不良&#xff09;事件的主动报告&#xff0c;增强风险防范意识&#xff0c;及时发现医院不良事件和安全隐患&#xff0c;将获取的医…

成都建博会:家居行业数字营销金点子 句句戳心坎,先收藏

四月&#xff0c;不仅是人间最美天&#xff0c;也是第二季度的开始。随着气温上升&#xff0c;行业进入了活跃期。对于西南地区的家居行业从业者来说&#xff0c;来一趟一年一度的成都建博会&#xff0c;总能获得无尽的灵感&#xff0c;对后续更加充满期待。而与同行的交流&…

美国主机常见的安全漏洞与防范方法详解

在今天的数字时代&#xff0c;保护计算机系统和数据安全至关重要。不幸的是&#xff0c;网络安全问题在过去几年中已经成为全球性的问题。攻击者利用各种漏洞和技巧来入侵系统&#xff0c;以窃取敏感信息、加密数据或者破坏系统。在本文中&#xff0c;我们将探讨美国主机常见的…

HTML5 语义元素

文章目录 HTML5 语义元素什么是语义元素?浏览器支持HTML5中新的语义元素HTML5 \<section> 元素HTML5 \<article> 元素HTML5 \<nav> 元素HTML5 \<aside> 元素HTML5 \<header> 元素HTML5 \<footer> 元素HTML5 \<figure> 和 \<figc…

Git Commit message 编写规范

介绍 在 Git 中&#xff0c;每次提交代码&#xff0c;都要写 Commit message&#xff08;提交说明&#xff09;&#xff0c;否则就不允许提交。这个操作将通过 git commit 完成。 git commit -m "hello world"上面代码的-m参数&#xff0c;就是用来指定 commit mes…

你怎么知道我什么都不会

文章目录 查询的存储过程增删改的存储过程返回拼音缩写自动填充拼音缩写的触发器销售完整销售业务存储过程 实现查询销售记录及销售明细退货业务实现营业员对当天销售的扎帐处理存储过程 阿巴阿巴高可用 阿玛阿玛碰运气 文心一言 耶耶耶耶耶 查询的存储过程 创建货品信息查…

kafka--python

文章目录 1、kafka是什么2、docker上部署kafka3、在kafka容器内部署python&#xff0c;并跑通生产者-消费者简单代码4、最新接口4.1、kafka_config.py4.2、kafka_interface.py4.3、run.py4、测试 1、kafka是什么 Producer&#xff1a;即生产者&#xff0c;消息的产生者&#xf…

PICO一方打造:VR音游《闪韵灵境》体验

​《闪韵灵境》本周正式上线&#xff0c;作为PICO一方工作室的首款作品&#xff0c;不少玩家对此寄予厚望。即便是作为一个轻轻度VR音游的用户&#xff0c;经过简短体验&#xff0c;我也发现了闪韵灵境和目前热门的Beat Saber之间的一些差异点。以下是我在简短体验后的一些看法…

Java选择排序、二分查找

一、选择排序 1.选择排序的思想 每轮选择当前的位置&#xff0c;开始找后面的较小值与该位置进行交换。 第一轮&#xff1a;选择当前位置&#xff0c;开始找后面的较小值与该位置进行交换。 5与1交换后&#xff0c;1就在当前位置&#xff0c;因此&#xff0c;1与后面的所有值…

看板与 Scrum:有什么区别?

看板和Scrum是项目管理方法论&#xff0c;以小增量完成项目任务并强调持续改进。但是他们用来实现这些目标的过程是不同的。看板以可视化任务和连续流程为中心&#xff0c;而Scrum更多是关于为每个交付周期实施时间表和分配设定角色。 在看板和Scrum之间做出选择并不总是必要…

【事故】记一次意外把公司项目放到GitHub并被fork,如何使用DMCA下架政策保障隐私

前言 &#x1f34a;缘由 在一个月黑风高的夜晚&#xff0c;正准备休息的我突然接到之前外包老总的亲切问候。一顿输出才知道三年前为了搭建流程化部署&#xff0c;将公司的测试代码放到github上后忘记删除。现在被甲方的代码扫描机制扫到&#xff0c;并且检查到代码已经被其他…

大数据环境生态搭建

文章目录 大数据环境生态搭建一、通用操作1、更改三台节点的主机名2、关闭三台机器 linux 的安全模式3、关闭三台机器的防火墙4、设置三台机器的免密的登录 二、安装 JDK1.8 大数据环境生态搭建 一、通用操作 1、更改三台节点的主机名 输入命令&#xff1a; hostnamectl set…

打通Web2与Web3 欧科云链用数据建桥

在刚刚过去的香港Web3嘉年华系列活动中&#xff0c;欧科云链以链上数据服务商的特别身份带来了新的行业视角&#xff0c;该集团旗下研究院高级研究员蒋照生观察&#xff0c;Web3涵盖的“数据革命”不仅局限于区块链领域&#xff0c;Web2行业同样有需求。 借助区块链数据的透明…

共话开源 - openKylin出席 FOSSASIA Summit 2023 开源盛会!

4月14日&#xff0c;openKylin社区受邀参加FOSSASIA Summit 2023开源盛会&#xff0c;给来自全球的技术开发者带来openKylin社区在RISC-V软硬件生态建设方面的经验与成果介绍&#xff0c;向大家展示中国开源社区的潜力&#xff0c;并同国际技术社区共研RISC-V未来之势。 FOSSA…

Oracle函数记录

一、各个函数介绍 1.OVER(PARTITION BY… ORDER BY…)--开窗函数 1.开窗函数用于为行定义一个窗口&#xff08;这里的窗口是指运算将要操作的行的集合&#xff09;&#xff0c;它对一组 值进行操作&#xff0c;不需要使用GROUP BY子句对数据进行分组&#xff0c;能够在同一…

苹果MT4手机软件怎么下载?下载后怎么使用?

比较了解外汇交易的投资者都知道&#xff1a;自2022年9月24日起&#xff0c;在Apple的App Store应用商店里面苹果MT4手机软件已经显示是不可下载的&#xff0c;究其原因就是苹果MT4手机软件被官方下架了&#xff01;看到这里先不要紧张&#xff0c;因为于2023年3月7日上午&…