【第四十二周】论文阅读

文章目录

  • 摘要
  • Abstract
  • 一、复现问题解决
    • [1. 模型加载](#1. 模型加载)
    • [2. 显存不够](#2. 显存不够)
  • [二、《When Tokens Talk Too Much: A Survey of Multimodal Long‑Context Token Compression across Images, Videos, and Audios》](#二、《When Tokens Talk Too Much: A Survey of Multimodal Long‑Context Token Compression across Images, Videos, and Audios》)
    • [1. 摘要](#1. 摘要)
    • [2. 主要贡献](#2. 主要贡献)
    • [3. 相关工作](#3. 相关工作)
    • [4. 方法](#4. 方法)
      • [4.1 维度一:按模态分类](#4.1 维度一:按模态分类)
      • [4.2 维度二:按压缩机制分类](#4.2 维度二:按压缩机制分类)
    • [5. 实验](#5. 实验)
  • 总结

摘要

本周开始第二个评估实验,由于数据量较大,运行时间较长,运行间隙阅读了论文《When Tokens Talk Too Much: A Survey of Multimodal Long‑Context Token Compression across Images, Videos, and Audios》,论文是第一个系统性地对多模态长上下文 token 压缩领域进行梳理的综述。


Abstract

This week, I launched the second evaluation experiment. Given the large volume of data, the experiment requires a long runtime. During the interval, I read the paper When Tokens Talk Too Much: A Survey of Multimodal Long-Context Token Compression across Images, Videos, and Audios. As the first systematic review, this paper comprehensively summarizes the research in the field of multimodal long-context token compression.


一、复现问题解决

1. 模型加载

源代码中使用云端api连接模型,而此时模型已经下载到本地,此时可以启动本地 API 服务,操作方法如下:

**方法1:**使用 vLLM 将本地模型包装成 OpenAI 兼容的 API 服务,输入

复制代码
 vllm serve 模型路径 --api-key [key值] --port 端口

然后修改脚本中的 --api_url 参数为 http://localhost:端口号/v1/chat/completions

对于端口号的补充:

复制代码
 - 端口号可以随意指定,只要在 1024-65535 范围内且未被占用。

 - 默认 8000 是 vLLM 的标准默认值,可以直接使用。

 - 遇到冲突时,要么换个端口,要么关掉占用的进程。

 - 修改端口:在 vLLM 启动命令中用 --port 参数即可。

**方法二:**直接代码修改为加载本地模型版本

2. 显存不够

**方法一:**设置环境变量缓解碎片化

在终端输入,它能缓解显存碎片化:

复制代码
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True

**方法二:**降低 max_new_tokens

限制生成最大序列的长度

**方法三:**开启4-bit量化加载

方法能将显存占用从18GB降至5-9GB

在加载模型的代码中添加:

python 复制代码
if model is None:
        # 配置4-bit量化
        quantization_config = BitsAndBytesConfig(
            load_in_4bit=True,
            bnb_4bit_compute_dtype=torch.bfloat16
        )
        model = AutoModelForImageTextToText.from_pretrained(
            model_path,
            quantization_config=quantization_config,
            device_map="auto"
        )

注:需要先安装 bitsandbytes

二、《When Tokens Talk Too Much: A Survey of Multimodal Long‑Context Token Compression across Images, Videos, and Audios》

1. 摘要

论文的核心问题是:多模态大语言模型(MLLM)处理长上下文时,输入 token 数量太多,导致计算开销巨大。高分辨率图像、长视频、长音频都会生成海量 token,而 Transformer 的自注意力机制复杂度随 token 数的平方增长(即 O(n²)),因此这个问题尤其突出。

为了解决这一计算瓶颈,token 压缩成为关键手段。这篇论文是第一个系统性地对多模态长上下文 token 压缩领域进行梳理的综述

它的分类有两个维度:

  • 按模态:图像、视频、音频;
  • 按压缩原理:基于变换、基于相似度、基于注意力、基于查询。

通过这种双重分类,帮助研究者快速定位自己领域的方法,并展望了未来发展方向。论文还维护了一个公开的 GitHub 仓库,持续更新该领域的最新进展。

通俗理解:可以想象 MLLM 同时处理高清照片、几分钟的电影片段和一段音频时,每个像素/每帧/每个声波点都会转换成成百上千个"token"(模型内部的基本单位),导致计算量爆炸。这篇论文的任务就是帮大家梳理已经有哪些"让 token 变少"的办法,并给它们分门别类。


2. 主要贡献

贡献1:首次系统性综述

这是多模态大模型长上下文 token 压缩领域的首篇系统性综述,填补了这一领域综述层面的空白。

贡献2:基于模态特性的分类体系

不同于以往按压缩位置或机制分类的方法,该综述强调压缩策略必须与模态本身的冗余特性深度绑定

  • 图像 → 处理空间冗余
  • 视频 → 处理时空冗余
  • 音频 → 处理时谱冗余

作者团队基于这一理念构建了分类体系,为不同模态的研究者提供了对应的方法工具箱。

贡献3:双重分类框架

在模态分类之上,进一步按底层压缩机制将方法分为四类:

  • 基于变换
  • 基于相似度
  • 基于注意力
  • 基于查询

使研究者既能按"要压缩什么数据"查找,也能按"采用什么压缩思路"查找。

贡献4:完整的研究路线图与公共资源

总结当前研究进展、识别关键挑战、激发未来研究方向,并提供持续更新的 GitHub 仓库作为公共资源。

通俗理解:这篇论文的贡献可以概括为"一张地图"。以前的 token 压缩方法研究得很零散,各做各的,作者团队把这些方法仔细梳理出来,按"对付什么模态"和"用什么手法"画了两套分类。你想了解某个方向的进展,照着这张地图查就行。


3. 相关工作

在论文中,"相关工作"部分其实是现有 token 压缩研究的"碎片化现状"的展示。

从单一模型到多模态模型

早期 token 压缩主要面向纯文本大语言模型,其核心问题是超长文本输入(例如整本书)导致上下文窗口溢出。研究者探索了上下文重排、外部记忆、渐进式对话压缩等方法。但随着多模态模型兴起,输入从"文本"扩展到"视觉+音频"等多通道数据,token 数量远远超过纯文本场景,且不同模态的内在冗余各不相同,问题变得更加复杂。

从视觉编码器到多模态大模型

视觉 token 压缩最早在 Vision Transformer(ViT)中深入探索------ViT 处理高分辨率图像时 token 数量大,计算重。多模态大模型继承了这一难题,但挑战更大:模型既要理解视觉特征,还要处理视觉特征和文本指令之间的跨模态交互。此外,多模态大模型输入图像分辨率越来越高、视频越来越长,视觉 token 数量远超纯图像模型。因此,这篇综述聚焦于多模态大模型这一更复杂且更紧迫的场景。

通俗理解:看相关工作时可以发现,token 压缩的问题以前就有人研究过------文本太长了怎么办?ViT 图像 token 太多了怎么办?但把这些单独的问题放在一起,加上"又是图又是视频又是声音"的多模态大模型,情况就复杂得不是一星半点。这篇论文正是在这些工作的基础上,往前跨了一大步。


4. 方法

方法的分类体系是这篇论文的核心,双重分类体现在两个维度:

4.1 维度一:按模态分类

模态 压缩重点 还原的核心冗余类型
图像 空间冗余 图像相邻像素/区域在空间上高度相似,大量 token 携带视觉上重复的信息
视频 时空冗余 视频在空间冗余之上增加了时间维度:相邻帧之间内容高度重叠
音频 时谱冗余 音频信号的时域和频域存在大量规律性重复,以及不必要的高精度采样点

4.2 维度二:按压缩机制分类

方法类别 核心思路 通俗解释
基于变换 用卷积或线性变换将 token 映射到更低维的空间,例如通过空间降采样减少图像 token 数量 把一张大图压缩成小图,保留重要信息但尺寸变小
基于相似度 比较 token 之间的相似程度,把"长得像"的 token 归并或聚合成一个 token 识别出图像里颜色相近、语义相似的块,把它们合并成一个代表性的块
基于注意力 分析 MLLM 内部的注意力权重,保留对当前任务最重要(注意力得分高)的 token 模型给你"打分",得分高的 token 留下,得分低的淘汰掉
基于查询 设置一组可学习的"查询 token",它们主动从原始视觉 token 中聚合信息,用更少的查询 token 表示整个视觉输入 派几个"代表"去"采访"所有视觉 token,然后把信息汇总回来,只需记住这几个代表就行了

通俗理解:方法部分的核心思想是:不同模态的数据(图像/视频/音频)冗余来源不同,所以要用不同策略去压缩。而压缩这件事又有很多种"手艺":你可以做"压缩",把 token 数量整体减少(变换);也可以做"合并",把相似的 token 合在一起(相似度);还可以做"筛选",挑出最重要的留下(注意力);或者让模型自己学习怎么高效表示(查询)。


5. 实验

这是一篇综述,不是提出一个新方法的原创论文,因此不包含本文作者自己设计的实验。但这不代表论文没有"实验相关"的内容------相反,综述在梳理方法时,会大量介绍和总结现有方法在各类基准上的实验表现。

具体包括:

  • 图像任务实验:不同压缩方法在图像理解、视觉问答等任务上的性能对比------压缩比例、精度损失、推理加速等指标的汇总
  • 视频任务实验:各类方法在视频理解、动作识别等长视频任务上的表现,重点考察在大量视觉 token 下的压缩效果
  • 音频任务实验:语音识别、音频事件检测等任务上压缩方法的表现,关注时域和频域冗余的去除效果

将这些分散在大量原始论文中的实验数据进行系统整理和对比。


总结

模型复现:本地模型可通过 vLLM 部署 API 或直接修改代码加载;显存不足可通过环境变量、降低生成长度、4-bit 量化解决。

论文核心:聚焦多模态大模型 Token 过多的计算瓶颈,为首篇相关综述,按「模态 + 压缩机制」双重分类,梳理现有方法、实验对比,给出研究方向。

相关推荐
lwf0061648 小时前
导数学习日记
学习·算法·机器学习
qeen879 小时前
【编程日记】现阶段总结
学习
-Marks-11 小时前
【C++编程】STL简介 --- (是什么 | 版本发展历程 | 六大组件 | 重要性缺陷以及如何学习)
开发语言·c++·学习·stl·stl版本
Joseph Cooper13 小时前
STM32MP157 Linux驱动学习笔记(四):典型总线与设备模型(SPI/USB)
linux·stm32·学习
2401_8274999913 小时前
数据分析学习05(黑马)-Pandas
学习·数据分析·pandas
jiayong2314 小时前
第 38 课:任务列表里高亮当前正在查看详情的任务
开发语言·前端·javascript·vue.js·学习
lwf00616415 小时前
逻辑回归学习笔记-数学直接解回归方程
笔记·学习·逻辑回归
weixin_qq_1639513616 小时前
hypermill五轴后处理制作需要学习哪些知识点
学习·ug
wsjsf16 小时前
智能代码审查助手的搭建
java·学习·ai编程