VoCo-LLaMA: Towards Vision Compression with Large Language Models 译读笔记

VoCo-LLaMA: Towards Vision Compression with Large Language Models

摘要

视觉语言模型(VLMs)在各类多模态任务中取得了显著成功,但其性能常常受限于处理高分辨率图像和视频时有限的上下文窗口以及高昂的计算成本。Vision compression 可以通过减少视觉 token 的数量来缓解这一问题。以往的方法通常使用 external modules 对视觉 token 进行压缩,并强制大语言模型(LLM)去理解这些压缩后的表示,从而导致视觉信息的损失。然而,在压缩学习过程中,并未充分利用 LLM 本身理解视觉 token 的paradigm。本文提出了 VoCo-LLaMA,首个利用大语言模型自身能力进行视觉 token 压缩的方法。在视觉指令微调阶段引入视觉压缩(Vision Compression, VoCo)token,并结合注意力蒸馏(attention distillation)技术,将 LLM 理解视觉 token 的方式distill到对 VoCo tokens 的处理过程中。VoCo-LLaMA 能够实现高效的视觉压缩,并显著提升推理阶段的计算效率。具体而言,本文的方法可在实现 576 倍压缩率的同时,保留原始性能的 83.7%。此外,通过对视频帧的时间序列压缩 token 进行持续训练,VoCo-LLaMA 展现出理解时序关联的能力,在主流视频问答基准上优于以往方法。本文的方法为充分释放 VLMs 上下文窗口的潜力、实现更具可扩展性的多模态应用提供了一条有前景的路径。

1 引言

视觉-语言模型(Visual-Language Models, VLMs)的出现〔25_BLIP2, 30_LLaVA, 60_MiniGPT4, 13_GLM, 3_Qwen-VL, 59_InternLM-XComposer, 29_Instruction_Tuning, 5_Fuyu-8B, 32_World_Model, 47_Gemini1.5〕极大地推动了视觉理解领域的发展。特别是高分辨率图像编码〔29_Instruction_Tuning, 5_Fuyu-8B〕以及引入更多视频帧〔32_World_Model, 47_Gemini1.5〕的方法,已被证明分别能够显著增强大型视觉-语言模型和大型视频-语言模型的能力。然而,大量的视觉token会占据大语言模型宝贵上下文窗口的很大一部分,从而导致高昂的计算开销。例如,在 LLaVA-1.6〔29_Instruction_Tuning〕中使用高分辨率图像输入时,一张 672×672 分辨率的图像会被划分为多个小块,每个小块以 336×336 分辨率进行编码。这一过程会产生由2880个视觉token组成的图像表示,占用了超过一半的上下文长度。随着输入图像数量的增加,用于文本的上下文窗口将进一步受到限制。文献〔32_World_Model, 47_Gemini1.5〕研究了将上下文长度扩展至百万级别以缓解该问题的有效性,但这种方法需要昂贵的计算资源(例如,〔32_World_Model〕需要超过 1000 个 v4 TPU)以及在数据和框架开发方面的大量工程投入。

为了解决这一问题,以往的方法〔25_BLIP2](https://arxiv.org/abs/2301.12597), 60_MiniGPT4, 13_GLM, 59_InternLM-XComposer, 28_LLaMA-VID, 11_InstructBLIP〕采用了 Q-Former〔25_BLIP2〕](https://arxiv.org/abs/2301.12597)或 Re-sampler〔1_Flamingo〕来对编码后的视觉 token 进行compress。

鉴于大语言模型(LLM)能够有效理解未压缩的视觉 token〔31_Instruction_Tuning〕,它本身就具备独立执行 token 压缩的巨大潜力。

相关推荐
u0103055275 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u0103055276 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝7 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u0103055277 天前
Java图像处理实战指南
人工智能·1024程序员节
u0103055278 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u01030552710 天前
Java实用类应用精讲
人工智能·1024程序员节
u01030552710 天前
Java I/O核心操作实战
人工智能·1024程序员节
u01030552711 天前
ArrayList操作详解与实战应用
人工智能·1024程序员节
u01030552712 天前
Java模块化编程实战指南
人工智能·笔记·1024程序员节
u01030552713 天前
使用BufferedReader读取控制台输入
人工智能·1024程序员节