FROZEN TRANSFORMERS IN LANGUAGE MODELS ARE EFFECTIVE VISUAL ENCODER LAYERS

本文主要是介绍FROZEN TRANSFORMERS IN LANGUAGE MODELS ARE EFFECTIVE VISUAL ENCODER LAYERS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文是LLM系列文章,针对《FROZEN TRANSFORMERS IN LANGUAGE MODELS ARE EFFECTIVE VISUAL ENCODER LAYERS》的翻译。

语言模型中的冻结Transformer是有效的视觉编码器层

  • 摘要
  • 1 引言
  • 2 相关工作
  • 3 方法:用于视觉编码的冷冻LLMTransformer
  • 4 LLMTransformer在视觉任务中的适用性
  • 5 面向可视化任务的LLMTransformer分析
  • 6 信息过滤假设
  • 7 结论

摘要

本文揭示了大型语言模型(LLM),尽管仅根据文本数据进行训练,但在没有语言的情况下,对于纯视觉任务来说,它是令人惊讶的强大编码器。更有趣的是,这可以通过一种简单但以前被忽视的策略来实现——使用来自预训练LLM的冻结transformer块作为组成编码器层来直接处理视觉标记。我们的工作突破了利用LLM进行计算机视觉任务的界限,大大偏离了传统实践,传统实践通常需要多模式视觉语言设置以及相关的语言提示、输入或输出。我们证明,我们的方法在各种任务中始终提高了性能,包括纯2D和3D视觉识别任务(例如,图像和点云分类)、时间建模任务(例如动作识别)、非语义任务(例如运动预测)和多模态任务(例如,2D/3D视觉问答和图像文本检索)。这种改进是一种普遍现象,适用于各种类型的LLM(例如LLaMA和OPT)和不同的LLMtransformer块。我们还提出了信息过滤假设,以解释预训练LLM在视觉编码中的有效性——预训练的LLMtransformer块识别信息性视觉标记,并进一步放大其效果。这一假设得到了经验上的支持,即在用LLMtransformer块训练后,特征激活对相关区域表现出更强的关注。我们希望我们的工作能激发我们对利用LLM的新观点,并加深我们对其潜在机制的理解。代码在https://github.com/ziqipang/LM4VisualEncoding可见.

1 引言

2 相关工作

3 方法:用于视觉编码的冷冻LLMTransformer

4 LLMTransformer在视觉任务中的适用性

5 面向可视化任务的LLMTransformer分析

6 信息过滤假设

7 结论

讨论和限制。我们已经验证了经过预训练的冻结语言Transformer在各种视觉任务中的能力。值得注意的是,我们的目标是有条不紊地探索这个调查不足的问题。因此,我们的实验旨在在与公认或有竞争力的基线进行公平比较的情况下,最大限度地提高任务的多样性,而不是为所有任务争取最先进的性能,这也受到我们计算资源的限制。我们把所有任务的实验规模扩大到最先进的水平作为有趣的未来工作。同时,我们还注意到,我们的信息过滤假设没有涵盖几个有趣的问题,例如,如何量化不同层的功能,以及分析训练过程如何促进视觉表征特征与语言transformer的合作,这些也是有意义的方向。
结论。在这项工作中,我们探索了大型语言模型(LLM)作为视觉任务编码器的意外能力,这与它们传统的基于文本的应用程序有很大不同。通过将来自预训练LLM的冻结Transformer块无缝集成到视觉编码器中,我们观察到,在2D图像和视频分类、3D点云识别、非语义运动预测以及2D和3D视觉语言任务等各种视觉挑战中,性能都得到了一致的增强。这一现象以我们提出的信息过滤假设为基础,突出了LLM对更一般的表征学习的内在适应性和多功能性。我们希望我们的见解将促进对LLM应用未知领域的进一步探索,并促进创新战略,以新颖的方式利用其潜力。

这篇关于FROZEN TRANSFORMERS IN LANGUAGE MODELS ARE EFFECTIVE VISUAL ENCODER LAYERS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/252370

相关文章

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

[论文笔记]LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

引言 今天带来第一篇量化论文LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale笔记。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 大语言模型已被广泛采用,但推理时需要大量的GPU内存。我们开发了一种Int8矩阵乘法的过程,用于Transformer中的前馈和注意力投影层,这可以将推理所需

UML- 统一建模语言(Unified Modeling Language)创建项目的序列图及类图

陈科肇 ============= 1.主要模型 在UML系统开发中有三个主要的模型: 功能模型:从用户的角度展示系统的功能,包括用例图。 对象模型:采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图、包图。 动态模型:展现系统的内部行为。 包括序列图、活动图、状态图。 因为要创建个人空间项目并不是一个很大的项目,我这里只须关注两种图的创建就可以了,而在开始创建UML图

速通GPT-3:Language Models are Few-Shot Learners全文解读

文章目录 论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具体分析3. 进一步分析 Results1. 概括2. 具体分析2.1 语言模型

【Visual Studio 报错】未加载 wntdll.pdb(一种可行的解决办法)

调试程序时,会出现下面这个报错 分析原因: 出现未加载 wntdll.pdb 报错大概率是你的指针使用错误 ,比如使用野指针、越界访问、或者堆区空间释放方式错误等。 这里以 堆区空间释放方式错误 为例子 1、堆区开辟的数组空间使用 delete 释放 // 堆区开辟的数组空间使用 delete 释放int* p = new int[10];delete p; 正

查看Excel 中的 Visual Basic 代码,要先设置excel选项

1. excel VB的简单介绍 百度安全验证 2.excel选项设置 excel表格中在选项->自定义功能区域,选择开发工具,visual baisc/查看代码,即可看到代码。 3.excel已经设置,可以直接查看

[VC] Visual Studio中读写权限冲突

前置场景: 编译没有报错,但是运行提示 内存异常: 情景1: 如下代码运行异常,提示引发了异常:写入权限冲突。*** 是 0xFFFFF..... char* str = (char*)malloc(10);str[0] = 0x30;  解决方案:要包含头文件<stdlib.h>  情景2: 在FileA文件调用FileB文件的函数,但是在FileA中却没有声明该B函数的原型

解决Visual C++ 中相互包含头文件的问题

在编MFC应用程序时,经常会遇到头文件相互包含的问题,很是苦恼,于是便求助于强大的CSDN,得到如下答案:   方法一:利用友元类   我一共有两个类,由于要在两个类的头文件里互相应用对方,所以,在每一个类的头文件里面现包含另一个类的头文件,然后在该类的定义中声明另一个类为友元类。如下:    #include "B.h"      class CA: public CDialog