周五晚上,你窝在沙发里点开一部三小时的电影。看到第 40 分钟,手机一震,你回完消息再抬头,屏幕里主角正在和反派激烈对峙——你完全不记得他们为什么打起来。你疯狂倒带、倍速回放,终于在第 12 分钟找到那条被忽略的线索。这种体验,AI 每天都在经历:它“看”长视频时,同样会忘、会找、会在海量画面里迷路。更麻烦的是,AI 的小本本(上下文窗口)比你的记忆还小——一小时的视频足够把它的“脑容量”撑爆。 幸运的是,人类很早就发明了对付长片的办法:不逐帧硬记,而是先看预告片了解大局,边看边记笔记,再按需求随时回放某个片段。长视频理解正是把这套“观影智慧”教给 AI。本文会用一条贯穿始终的比喻——“让 AI 像人一样追完一部三小时电影”,带你认识分层建模、记忆机制、片段检索、高效注意力和长上下文这些核心概念。你将看到:让 AI 看懂一小时视频的关键,从来不是塞一个更大的模型,而是给它一套聪明的“观影策略”。

岗位关联

掌握长视频理解,意味着你能独立设计影视分析、课程总结、长直播审核等真实系统,把多模态 AI 从“只看图”推向“看长片、答长问”的工程能力——这是视频大模型时代最稀缺的落地技能之一。

目录
  1. 可视化演示
  2. 长视频挑战
  3. 分层建模
  4. 记忆机制
  5. 片段检索
  6. 高效注意力
  7. 长上下文
  8. 应用落地
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示连续分配、链接分配和索引分配三种磁盘文件分配策略的磁盘块布局,对比碎片化程度和访问效率。

本节配有交互动效(进入视口后自动加载,约 3KB)。

连续分配(Contiguous Allocation) 每个文件占用连续的磁盘块 顺序访问高效但易产生外部碎片 F1[0-3] F2[4-6] F3[7-8] 连续分配适合固定大小文件,动态增长困难。

长视频挑战

周五晚上,你打开一部三小时的电影。看到第 40 分钟,手机震了一下——你回完消息再抬头,屏幕里主角正在和反派对峙,你一脸茫然:他们为什么打起来?这就是“上下文丢失”。AI 看长视频时也一样:它的小本本(上下文窗口)翻到最前面,第一次出现的关键线索早就被冲掉了。一小时的视频,按每秒一帧抽取就是 3600 帧,每帧再转成几百个 token,总量轻松破百万,而模型的小本本只有几万页——根本记不下。

“记不下”是长视频理解的第一难点。视频本身是高度冗余的,相邻帧几乎一样,但关键转折可能就藏在某一帧里。模型既不能把全部帧都吞进去,又不能随便丢掉可能的关键帧。真正的矛盾在于:上下文窗口有限,而有效信息稀疏地散布在漫长的时序中。

用框架的眼光看,标准注意力机制要求每帧与所有帧两两比较,计算成本随帧数平方增长:

所以长视频理解的第一步,不是“看得更多”,而是“聪明地少看”——先承认记忆有限,再用分层、记忆、检索这些技巧安排有限的注意力。真正会看电影的人,不会逐帧背诵,而是记住关键情节点,随时准备回放。

Cost=O(L2)\displaystyle \text{Cost} = O(L^2)
这是一个“一小时的视频需要几百万次比较”的组合爆炸问题。
  1. 序列长度 $L$$L$ 表示视频抽帧后的总帧数,一小时按每秒 1 帧就是 $L = 3600$。
  2. 平方复杂度$O(L^2)$ 表示每帧都要与其他所有帧比较一次相似度,总共大约 $3600^2 = 1296$ 万次比较。
  3. 对比线性成本若只与固定窗口内 $k$ 帧比较,成本降为 $O(Lk)$,因为 $k \ll L$,这才是可行方向。

分层建模

你会怎么向朋友推荐一部三小时的长片?你不会从头到尾逐帧复述,而是先说“这是一个复仇故事”,再挑两三场重头戏讲细节。AI 也是这样:直接用完整序列做精细理解的代价太高,不如先粗后细——先看懂“段落在讲什么”,再深入具体情节。这套思路就是分层建模。

分层建模的第一层是“分段聚合”。把视频切成 8~16 秒的小段,每段内几百帧先压成一个段级特征;第二层再把这些段特征按时间顺序交给全局模型。因为段的数量远远小于帧的数量,全局模型处理起来就轻松多了。这也契合人看片的习惯:眼睛每秒接收 24 帧,大脑记住的却是一幕幕“场景”。

分段聚合最朴素的实现,是取窗口内所有帧特征的均值:

当然,生产系统不会只用均值。更成熟的做法是第一层用小型视觉模型捕捉局部动作和物体,第二层用时序模型建模段与段之间的关系,第三层才做全局推理。层级越高,看得越“粗”,但视野越“广”。就像看电影:先记住几个章节名,再回忆每章的转场,最后才去抠每句台词——信息一层层收敛,但骨架始终在。

segj=1w∑i=1wf(j−1)w+i\displaystyle \text{seg}_j = \frac{1}{w} \sum_{i=1}^{w} f_{(j-1)w+i}
公式的实质是“把一小段视频变成一行摘要”。
  1. 窗口长度 $w$$w$ 表示每个分段包含多少帧,比如 16 秒视频每秒 1 帧,则 $w = 16$。
  2. 窗口内帧索引$f_{(j-1)w+i}$ 是第 $j$ 段中第 $i$ 帧的特征向量,$(j-1)w$ 是第 $j$ 段的起始位置。
  3. 平均池化$\frac{1}{w} \sum_{i=1}^{w}$ 把窗口内所有帧的特征逐元素求平均,得到一个紧凑的段级特征 $\text{seg}_j$。

记忆机制

看三个小时的电影,你不可能把每句台词都背下来,但你会边看边记笔记:“第 12 分钟,女主拿到神秘钥匙”“第 80 分钟,钥匙打开地下室”——到结尾时,你靠这本笔记回答“钥匙到底有什么秘密”。模型同样需要这样一本笔记,术语叫记忆池。

记忆机制要回答三个问题:记什么、怎么更新、忘什么。记什么:只记录有信息量的片段,比如场景切换、人物入场、关键动作,而不是把每一帧都塞进去。怎么更新:新信息到来时,与记忆池中旧内容做融合——最近的情节通常会覆盖或修饰之前的记忆。

记忆更新最经典的形式是“指数滑动平均”:

除了滑动更新,工程上常用的还有“摘要记忆”:每当窗口满了,就用一个小模型把窗口内容写成一句摘要存进记忆池;如果记忆池满了,再按重要性丢弃最不重要的摘要。这就像观影笔记写满一页后,你会划掉无关紧要的支线,把主线越写越粗。好的记忆机制不是硬盘无限大,而是像人一样——有取舍地记。

mt=α vt+(1−α) mt−1\displaystyle m_t = \alpha \, v_t + (1-\alpha) \, m_{t-1}
简单理解:新记忆占七成、旧记忆留三成,信息有继承也有更新。
  1. 新信息 $v_t$$v_t$ 表示当前时刻从视频段中提取的新特征,可以理解为“刚刚看完的这场戏”。
  2. 旧记忆 $m_{t-1}$$m_{t-1}$ 是上一时刻记忆池中的状态,代表“之前所有情节的浓缩”。
  3. 更新率 $\alpha$$\alpha$ 是权衡新旧的权重,取值范围 $(0,1)$。$\alpha$ 越大,新信息占比越高,记忆越容易被当前情节改写。
  4. 更新后的记忆 $m_t$$m_t$ 是加权求和的结果,既要“记住新的”,又不能“完全忘掉旧的”。

片段检索

电影看到结尾,你想回放“雨中分别”那场戏。你不会从头加速重看,而是直接拖动进度条到大约 90% 的位置——因为你记得那场戏快结束时出现。模型也一样:当用户问“主角什么时候发现真相”时,模型不会把一小时视频重新看一遍,而是先定位到记忆池中最相关的几段,再精确检索。

这个过程就是片段检索,包含三步:关键帧定位、索引构建、粗排精排。关键帧定位:在每个视频段中挑出能代表整段的帧,比如画面变化最大的那一帧。索引构建:将这些关键帧的特征向量做成索引表(如向量数据库),查询时先快速筛出候选。

候选排序最常用的度量是余弦相似度:

粗排用轻量的近似最近邻索引从几百万候选里筛出几百个,精排才用重模型对这几百个做精细打分。这和你下载电影的搜索框是一样的:先按片名粗筛,再对比海报和简介精挑。长视频理解里,检索就是模型的“进度条”——它决定了回答一个问题是秒回还是要等一分钟。

sim(q,m)=∑i=1dqimi∑i=1dqi2∑i=1dmi2\displaystyle \text{sim}(q, m) = \frac{\sum_{i=1}^{d} q_i m_i}{\sqrt{\sum_{i=1}^{d} q_i^2}\sqrt{\sum_{i=1}^{d} m_i^2}}
余弦相似度衡量两个向量的“方向是否一致”,分数越高越相关。
  1. 查询向量 $q$$q$ 是用户问题的向量表示,比如“主角何时发现真相”编码成一个 $d$ 维向量。
  2. 记忆向量 $m$$m$ 是视频段或关键帧的向量表示,同样处于 $d$ 维空间。
  3. 分子点积$\sum_{i=1}^{d} q_i m_i$ 计算两个向量对应维度的乘积之和,衡量“同方向的匹配程度”。
  4. 分母归一化$\sqrt{\sum q_i^2}\sqrt{\sum m_i^2}$ 对两个向量长度做归一化,让分数不受向量长短影响,只看方向一致性。

高效注意力

看足球比赛时,你的目光不会均匀扫过每一寸草皮——球在哪里,视线就在哪里。看长视频也一样:模型没必要对每一帧的每一个像素都给予相同关注,只需要把注意力集中在当前关键事件周围。如果注意力机制还是平方复杂度,一小时视频根本处理不动,所以必须让注意力“偷懒”,而且有策略地偷懒。

高效注意力家族里有三兄弟。局部窗口注意力:只看前后 $k$ 帧,完全不管远距离——相当于你盯着球附近的球员。稀疏注意力:在局部之外,每隔一段距离采样一帧参与计算——相当于用余光扫一眼远处有没有人跑位。线性注意力:用核技巧把注意力矩阵分解,把复杂度从 $O(L^2)$ 压到 $O(L)$——相当于不再两两配对,而是每个人先跟“裁判”汇报,再由裁判汇总。

广义上,稀疏注意力写成“只对部分键做 softmax”:

局部窗口保留细节,稀疏采样照顾全局,线性变换提速——三者结合,长视频模型才真正能在可接受的成本内“看完”整部片子。就像解说员不会反复描述草坪,只会跟着球讲:观众该看到的细节一个不少,冗长的空档全部跳过。

Attn(q,K,V)=∑j∈S(q)softmaxj ⁣(qK⊤dk)Vj\displaystyle \text{Attn}(q, K, V) = \sum_{j \in \mathcal{S}(q)} \text{softmax}_j\!\left(\frac{qK^{\top}}{\sqrt{d_k}}\right) V_j
意思是:分母分子都只在选中的键子集 $\mathcal{S}(q)$ 上计算,其余键直接忽略。
  1. 查询向量 $q$$q$ 是当前帧或被查询位置的向量,是注意力的“目光焦点”。
  2. 键集合 $K$ 与值集合 $V$$K$ 是所有候选帧的“标签”,$V$ 是它们的“内容”,注意力先匹配标签再加权内容。
  3. 缩放因子 $\sqrt{d_k}$$d_k$ 是键的维度,除以 $\sqrt{d_k}$ 防止点积数值过大导致 softmax 梯度消失。
  4. 键子集 $\mathcal{S}(q)$$\mathcal{S}(q)$ 是本次计算实际参与的键集合,可以是局部窗口、跳帧采样或聚类代表帧。
  5. 加权求和$\sum_{j \in \mathcal{S}(q)} \text{softmax}_j(\cdot) V_j$ 用归一化后的权重对值向量加权求和,得到当前帧的输出。

长上下文

再好的记忆机制,也有个前提:模型得记住“位置”。如果模型不知道第 2 分钟和第 100 分钟谁先谁后,情节因果关系就全乱了。位置编码就像是给视频每一帧贴上“第几分钟”的标签,让注意力机制知道“谁是前面的伏笔、谁是后面的高潮”。

经典的做法是 Transformer 里的正弦位置编码:用一组周期性变化的数值来标记每个位置的“时间戳”。更关键的是,训练时模型只见过 4096 个位置,推理时却要处理 100 万个位置——位置编码如果不会“外推”,就越界崩掉。长上下文技术要做的事,就是让模型在没见过的更长位置上依然表现正常。

正弦位置编码的公式:

工程上除了这类编码外推,还有更务实的上下文管理:把视频分成若干段落,每段一个摘要指纹,全局推理时只加载最相关的几段摘要进上下文;或者用 KV 缓存复用技术,让已算过的帧特征不重复计算。这就像你看一本厚书,不是把所有页码全部背下来,而是记住目录和关键章节的页码,需要时再翻到对应页。长上下文不是“无限内存”,而是“聪明的内存调度”。

PE(t,2i)=sin⁡ ⁣(t100002i/d)\displaystyle \text{PE}(t, 2i) = \sin\!\left(\frac{t}{10000^{2i/d}}\right)
周期函数天然具备“插值外推”能力,训练见过的范围之外不全是未知区域。
  1. 位置 $t$$t$ 表示帧在视频中的绝对位置,比如第 3600 帧就是 $t = 3600$。
  2. 维度 $2i$$2i$ 表示向量的某个偶数维度,偶数维用 $\sin$,奇数维用 $\cos$,配合起来区分位置先后。
  3. 分母 $10000^{2i/d}$分母随维度 $i$ 增大而指数变大,让低维度编码变化快、高维度变化慢,形成多尺度周期。
  4. 正弦函数 $\sin$$\sin(\cdot)$ 使编码值有界且周期重复,模型学会“周期相位”后,就能预测更远位置的编码。

应用落地

铺垫完理论,回到真实世界:一个影视公司要你做一个“AI 看片助手”,把两小时的电影自动生成剧情梗概、高光片段时间戳和角色关系图。你会如何设计?答案是:把前面六节串成一条流水线——抽帧、分层、记忆、检索、注意力压缩,最后再针对业务做输出。

以电影分析为例,流水线长这样:输入影片 → 抽帧(每秒 1 帧)→ 第一层小模型识别镜头和场景 → 第二层时序模型按段落生成剧情摘要 → 记忆池浓缩全局 → 用户提问时触发片段检索,定位具体桥段 → 生成最终报告。整个过程不再是“一次性读完全片”,而是“边看边整理笔记,随时按需翻页”。

评估这类系统的效果,不能只看“回答得像不像”,要看“关键片段找得准不准”。业界常用 F1 分数:

部署时还要注意推理成本:长视频的特征抽取极其昂贵,常用做法是离线把视频切段、提前抽好特征存向量库,用户提问时只做检索和轻量推理;在线则用流式框架逐段消费视频,边接收边压缩,用户等到结束时已经拿到了记忆池。让 AI 真正“看懂一小时视频”,需要的不是一个更大的模型,而是一条聪明的流水线和一把好用的“进度条”。

F1=2×P×RP+R\displaystyle F_1 = \frac{2 \times P \times R}{P + R}
F1 是精确率和召回率的调和平均,兼顾“找到的全不全”和“找得准不准”。
  1. 精确率 $P$$P = TP/(TP+FP)$,表示模型找出的片段中,真正是用户想要的比例。
  2. 召回率 $R$$R = TP/(TP+FN)$,表示所有应该找到的片段中,模型真的找出来的比例。
  3. 调和平均$\frac{2PR}{P+R}$ 对 $P$ 和 $R$ 取调和平均,只有两者都高时,$F_1$ 才高——不会因为偏科得高分。

AI 应用场景

影视分析助手

阶段:离线分层建模 + 片段检索

解决的问题:传统方式下,影视策划需要人工拉片,一部 2 小时电影花 2~3 天才能产出剧情梗概和高光时刻表。AI 用分层建模把影片切成段、逐段生成剧情摘要,再用记忆池浓缩全局,最后通过片段检索回答“第几分钟发生了什么”,将拉片时间压缩到 20 分钟。

具体案例:某视频平台接入“AI 拉片”功能,用户输入“男女主角第一次相遇”或“反派身份揭露”这类问题,系统返回对应的精确时间戳和一段文字描述,由影视编辑核对后用于推荐文案和会员运营。

在线课程总结

阶段:流式分层 + 长上下文管理

解决的问题:90 分钟录播课信息密度低、知识点分散,学员很难快速定位重点。AI 把课程按章节切换切段,每段压缩成知识点摘要,再聚合到记忆池,最终输出 5 分钟精华版和知识点时间戳目录,让学员从“看一遍”变成“按需学”。

具体案例:某教育机构部署课程总结服务,每天自动处理数千节新课,生成“重点回顾 01:23-04:10 讲解矩阵乘法”这类结构化笔记,同时保留问答入口:学员问“老师什么时候讲了范数”,系统从记忆池检索出准确片段。

长直播内容审核

阶段:流式记忆更新 + 片段检索复核

解决的问题:连续 3 小时直播无法靠人工全程盯屏,传统抽帧审核容易漏掉瞬时的违规画面。AI 用高效注意力实时标记可疑片段,异常特征写入记忆池;若用户投诉某个时间点,再通过片段检索迅速调取该时段完整上下文,由人工复核。

具体案例:某直播平台接入了“异常片段定位”模块,审查员在转存系统里输入“22:13:05 附近疑似广告导流”,系统直接给出该片段及前后各 30 秒的重建上下文,审核效率提升约 70%。

Python 演示

python68 行
import numpy as npfrom collections import deque  class HierarchicalVideoMemory:    """分层长视频理解:滑动窗口 + 压缩记忆池 + 片段检索"""     def __init__(self, window=10, capacity=8, dim=64):        self.window = window          # 滑动窗口长度        self.capacity = capacity      # 记忆池容量        self.dim = dim                # 特征维度        self.short_term = deque()     # 短期窗口        self.memory_pool = []         # (importance, vector)        self._step_count = 0     def feed_frame(self, frame):        # 注入一帧特征        self.short_term.append(frame)        self._step_count += 1        if len(self.short_term) >= self.window:            segment = np.mean(self.short_term, axis=0)            fused = self._fuse_context(segment)            self._write_memory(fused)            self.short_term.clear()     def _fuse_context(self, segment):        # 与最相关记忆融合,保留时序信息        if not self.memory_pool:            return segment        top = self.memory_pool[0][1]        return 0.7 * segment + 0.3 * top     def _write_memory(self, segment):        # 按重要性保留前 capacity 条记忆        importance = float(np.linalg.norm(segment))        self.memory_pool.append((importance, segment))        self.memory_pool.sort(key=lambda x: x[0], reverse=True)        del self.memory_pool[self.capacity:]     def retrieve(self, query, top_k=3):        # 余弦相似度检索最相关记忆        scores = [np.dot(query, m) / (np.linalg.norm(query) *                  np.linalg.norm(m) + 1e-8) for _, m in self.memory_pool]        order = np.argsort(scores)[::-1][:top_k]        return order.tolist()     def global_summary(self):        # 全局总结:加权记忆 + 关键片段        total_w = sum(w for w, _ in self.memory_pool) + 1e-8        vec = sum(w * m for w, m in self.memory_pool) / total_w        return {            "summary_len": len(self.memory_pool),            "key_moments": self.retrieve(vec),        }  if __name__ == "__main__":    rng = np.random.default_rng(42)    mem = HierarchicalVideoMemory(window=10, capacity=8, dim=64)    # 模拟 120 秒视频,每秒 1 帧    for i in range(120):        frame = rng.random(64)        if i % 25 == 0:            frame += 3.0  # 模拟关键事件特征增强        mem.feed_frame(frame)    result = mem.global_summary()    print("memory size:", result["summary_len"])    print("key moments:", result["key_moments"])
目的:用 120 帧模拟视频,演示“滑动窗口聚合 → 记忆池压缩 → 余弦检索 → 全局总结”的完整分层记忆流程。
  1. def feed_frame(self, frame):每来一帧就注入系统,窗口满了自动触发一次段级汇总。
  2. segment = np.mean(self.short_term, axis=0)把窗口内所有帧特征取平均,得到“这一小段讲了什么”。
  3. fused = self._fuse_context(segment)与当前最重要记忆做加权融合,让段信息带上历史语境。
  4. self.memory_pool.sort(key=lambda x: x[0], reverse=True)按重要性降序排列,保证记忆池永远保留最重要的条目。
  5. del self.memory_pool[self.capacity:]超出容量的一刀切掉,模拟“遗忘”。
  6. np.dot(query, m) / (np.linalg.norm(query) * np.linalg.norm(m) + 1e-8)余弦相似度,判断用户问题和哪条记忆最贴近。

常见误区

误区“长视频理解效果不好,一定是帧抽得太少。把每秒 24 帧全喂进去,模型应该能'看到'所有细节。”

正解帧数翻倍,注意力成本至少翻四倍(平方增长),而相邻帧的信息高度冗余。合理的做法是抽帧后先分层,用段落摘要代替原始帧,让模型看“浓缩剧情”而不是“全部像素”。就像读书不是每页逐字背,而是先抓章节主旨。

为何常见:很多人习惯性认为“输入越多信息越全”,忽视了模型的计算瓶颈和信号稀疏性。

误区“只要上下文窗口够大,直接把整部电影转成 token 丢给模型就行,一步到位。”

正解即便窗口容纳得下,平方注意力也扛不住;而且超长序列中有效信息密度低,模型容易被海量无关细节淹没。正确做法是分层 + 记忆机制:先分段压缩,再用记忆池维护全局,最后按需检索。窗口再大也不该把整个仓库搬进大脑。

为何常见:大语言模型的成功让很多人以为“长文本 = 大窗口”,忽略了视频多模态标记远超文本 token 量的事实。

误区“每层都比上一层粗糙,最后肯定把关键线索搞丢了,不如直接用全局模型。”

正解分层丢的是“冗余”,不是“关键”。第一层压缩时,模型会用重要性打分保留显著变化帧;记忆池更新的同时保留检索路径,需要细节时可以回跳到原始帧。就像导演讲故事会省略无关旁白,但关键线索永远有特写镜头。

为何常见:初学者把“压缩”等同于“有损删除”,没意识到压缩是有目标导向的信息筛选。

误区“记忆池容量调到最大,把所有片段的摘要都存下来,模型就过目不忘了。”

正解记忆池越大,检索噪音越高,注意力要扫描的候选也越多,成本和错误率同步上升。有效记忆不是“全保存”,而是“保存最重要的 + 随时能找回被丢掉的”——所以真实系统会配合两级存储:热记忆池只有几十条,冷存储是完整向量库,按需调回。

为何常见:把记忆机制类比成计算机内存,误以为“内存越大越好”,忽略了信息检索的精度与成本权衡。

面试题

Q1. 一小时视频按每秒 1 帧抽帧后,token 总量远超模型上下文窗口,最合理的处理手段是什么?

单选题 · easy

  • A.让模型自行截断处理
  • B.分层分段理解再聚合← 正确答案
  • C.只保留视频首帧信息
  • D.降低视频分辨率

答案:B。分层分段先把视频切成小段、逐段理解再聚合,既保留全程信息又让每段都在窗口内。A 会丢失中间关键剧情,C 只留首帧等于没看,D 分辨率与 token 量关系不大且伤害画质信息。就像看长片不能只背开头,而要分段做笔记。

Q2. 分层建模中“先粗后细”的含义是什么?

单选题 · easy

  • A.先看全局走向再看细节← 正确答案
  • B.先看画面颜色再看字幕
  • C.先识别演员再推剧情
  • D.先快进再回放全片

答案:A。分层建模先做粗粒度理解(段级摘要、全局脉络),再细粒度分析局部动作和物体,与“先看预告片了解大局,再补细节”是同一个逻辑。B、C 是低层视觉任务而非分层策略,D 是人工观看习惯,不是建模思路。

Q3. 以下哪个选项属于长视频“记忆池”的正确策略?

单选题 · easy

  • A.把每一帧永久保存
  • B.只使用当前帧信息
  • C.压缩关键信息入池← 正确答案
  • D.随机丢弃一半帧数

答案:C。记忆池的核心是“有取舍地记”——把有信息量的片段压缩成摘要存入,满了按重要性丢弃。A 会撑爆内存且引入检索噪音,B 丢失所有历史线索,D 随机丢弃可能丢掉关键转折。这就像观影笔记只记主线,而不是逐帧抄台词。

Q4. 滑动窗口 + 摘要记忆相比全量注意力的最大优势是什么?

单选题 · mid

  • A.保证看全每一帧画面
  • B.复杂度降为线性增长← 正确答案
  • C.彻底消除时序依赖
  • D.不需要任何预训练

答案:B。滑动窗口只让当前帧与附近 $k$ 帧交互,成本从 $O(L^2)$ 降到 $O(Lk)$,呈线性增长。A 是反的——它恰恰不逐帧全看;C 消除时序依赖是坏事;D 完全不现实,任何理解系统都需要预训练。

Q5. 片段检索中“粗排 → 精排”的流程主要做了什么?

单选题 · mid

  • A.按颜色粗筛候选集
  • B.轻量索引筛候选再精算← 正确答案
  • C.把所有候选片段逐个精算
  • D.随机抽取一段作为答案

答案:B。粗排用轻量近似最近邻索引从海量候选里快速筛出几百个,精排才用重模型逐条精细打分,兼顾速度和精度。A 用颜色做语义粗筛不可靠,C 全量精算太慢,D 随机抽取没有答案质量保证。这就像先按片名筛出几部电影,再对比海报简介挑一部。

Q6. 为什么长视频理解需要分层建模?

多选题 · mid

  • A.单层注意力计算量过大← 正确答案
  • B.全局记忆可以按需检索← 正确答案
  • C.视频本身有层级结构← 正确答案
  • D.分层能减少模型参数量

答案:ABC。分层能显著降低单层注意力的计算量(A),段级特征配合记忆池让全局理解按需检索(B),视频天然是“帧→镜头→场景→剧情”的层级结构(C)。但分层通常不会减少模型总参数量,反而可能因多级网络增加参数(D 错)。这就像看书按章、节、段组织,而不是逐字硬背。

Q7. 稀疏注意力机制的核心思想是什么?

单选题 · mid

  • A.关注全部视频帧
  • B.只对关键子集算注意力← 正确答案
  • C.丢弃全部视频内容
  • D.只处理最后一帧

答案:B。稀疏注意力只在每个查询对应的键子集 $\mathcal{S}(q)$ 上计算权重,比如局部窗口加跳帧采样,大幅降低计算量。A 是标准全量注意力,C 和 D 直接丧失了信息。好比看球赛只盯球周围的球员,用余光扫远处跑位。

Q8. 以下哪些策略可以缓解长视频上下文超限问题?

多选题 · hard

  • A.位置编码外推法← 正确答案
  • B.上下文压缩摘要法← 正确答案
  • C.量化压缩模型显存← 正确答案
  • D.不断提高视频帧率

答案:ABC。位置编码外推让模型在更长位置上依然有效(A),上下文压缩把长序列浓缩为摘要节约窗口(B),模型量化降低显存占用使更大输入可运行(C)。D 提高帧率只会增加 token 量,让上下文更紧张。这就像写观后感时用更简洁的措辞,而不是抄更多原文。

Q9. 位置编码外推的核心作用是什么?

单选题 · hard

  • A.天然支持更长序列← 正确答案
  • B.提高单帧画面清晰度
  • C.加快视频下载速度
  • D.降低模型参数量

答案:A。正弦位置编码具有周期性,模型学会周期相位后,能对训练时未见过的大位置数值做出合理编码,从而外推到更长序列。B 是画质问题,C 是网络传输问题,D 是模型压缩问题,都与位置编码无关。这就像学会“每 12 小时一个循环”后,能推算任意时刻的钟表位置。

Q10. 长视频理解系统上线部署时,哪些优化环节是必要的?

多选题 · extreme

  • A.模型量化压缩规模← 正确答案
  • B.缓存复用中间特征← 正确答案
  • C.分段并行批量推理← 正确答案
  • D.放弃检索整段推理

答案:ABC。模型量化降低显存和延迟(A),缓存复用已算过的帧特征避免重复计算(B),分段并行批量推理能充分利用 GPU 吞吐(C)。D 放弃检索意味着每次提问都重新过完整段视频,成本和延迟完全不可接受。这就像看完电影做好索引,别人问剧情时直接翻笔记,而不是再放一遍。