July 27, 2025
7.21-7.27
闲谈
什么是闲谈?我想个人自有个人的看法。
于我而言,闲谈就是跳脱出日常行事的条条框框,敞开心扉地聊一聊最近的所思所想。
那么,最近都发生了什么事呢?
……
疲于实习期间每日流水账般的实习日志的我,终于迎来了三周实习生活的句号,那就是23日的答辩。答辩很简单,很容易水过去,于是也没做什么准备,只是上台即兴讲几句罢了。因工作都出自自己手中,讲起来便顺理成章。说到我们的实习项目成果,乃是一个多模态知识融合的PPT生成系统,其中不乏许多对现有技术的融合应用,也有一点我们自己的思考。
其中一个蛮有意思的点,也是当前尚未充分解决的开放性问题,就是:在不引入额外的视觉大模型的前提下,如何从一段冗长的——可能长达几十分钟甚至上百分钟——的视频中,有效地提取出其中的“关键帧”。
针对这个问题,目前可以提出几种相对朴素但具有启发性的方法设想:
- 固定间隔抽帧法:每隔一段预设的较长时间(该时间长度作为一个可调节的超参数),从视频中截取一帧画面,直接作为候选关键帧。该方法简单高效,但存在漏检或重检重要画面的风险。
- 音频转写引导法:先从视频中分离出音频部分,并对其进行语音识别(获得带时间戳的文本),接着对文本进行关键字段/事件的标注(可借助语言大模型完成)。最终依据关键内容的时间戳回溯定位到视频中对应时刻的画面帧,这些帧即作为潜在关键帧。
- 光流变化检测法:引入光流场(Optical Flow)的概念,对视频按原始帧率进行分帧后,计算相邻帧之间的像素级运动幅度。依据变化程度设定阈值,提取那些发生显著视觉变换的帧,或者反过来,保留长时间内几乎没有变化的帧(可能对应静态的展示页等),作为“关键帧”候选。
- 多模态语义检索法:对按固定时间间隔抽取的视频帧,提取其视觉嵌入向量,并构建一个帧级向量库(可类比为一个小型RAG索引)。将音频转写后的文本同样计算文本嵌入,通过形状变换后与图像嵌入做相似度检索,挑选相似度最高的前k帧作为语义上最匹配的“关键帧”。
这几种方法是稍微动一动脑子就可以想出来的,但在业界的实际操作中,我猜测会用一种意料之外的简单粗暴的方法进行大一统。
另外一个与我实现的音频转文本模块息息相关的问题,是如何最大限度地提升整体处理效率。在实际试验中我发现,这一问题实际上可以进一步拆解为两个子问题:
其一,对于单条较长的音频片段,如何设计合理的并行处理方案以加速整体推理过程;
其二,对于多条长度不一的音频片段集合,如何实现资源分配上的负载均衡,以避免处理瓶颈或资源浪费。
以下是我在探索过程中总结的一些事实基础:
- 串行处理运行在单个核心上,仅需加载一次模型,所有任务按时间顺序依次处理,模型无需重复初始化,具有较小的内存占用与启动开销。
- 并行处理可分布在多个核心上执行,但每个核心都需独立加载模型,带来额外的初始化成本。任务集合被切分后分别分配至不同核心并发执行。
- 系统中存在一个固定的模型加载时延 t,以及一个固定的单个任务执行时延 T。这两个参数构成了性能评估中的关键基线。
- 对于单条音频片段,可预先进行切割操作,模拟成多条长度相同的子音频片段,从而支持多进程并行处理;唯一需要额外处理的是最终结果的顺序拼接与对齐。
- 由于操作系统本身资源有限,系统中存在一个适宜的最大并行核心数 M,超过此数值可能会引发调度竞争,反而降低整体效率或导致不稳定。
- Trade-off 观察:对于一组给定的 t 与 T 值,当并行核心数超过某一阈值 N 时,由于模型重复加载与资源争抢的代价上升,整体吞吐效率可能反而低于串行执行。
谈完实习,接下来就谈谈对实习后的贵州之旅的几点回味:
我对省会城市的资源集中程度有了新的认识。贵阳作为贵州的省会,在这里生活其实不大能体验到传统印象里贵州的许多特征。就像待在郑州也不大能体验到河南的许多名胜古迹一样。
贵州的自然景观实在是让我这种常年待在混凝土森林的城市人眼前一亮,也丝毫不亚于我在加州期间游览过的一些自然景观的独特之处。虽然游人还是一如既往的多,天气还是一如既往的热,但是沉浸在山水之间你会抛却这一切杂念。
美食。这是无论如何也不能忽视的一点。
……
短暂的休憩后,从西安回到郑州,布置好家中一隅的工位,处理好一些暂存的任务,便过渡到了一种相对自洽的状态。我希望自己能在接下来的一个月里葆有内心的平静和头脑的清醒,多一些思考,少一些浮躁。
那么,让我们开始吧!