2、多模态基础:文本、图像、音频、视频等模态的表示方法、数据特点与预处理技术
多模态大模型的核心挑战在于如何让模型理解并关联来自不同传感器或数据源的信息。文本、图像、音频、视频在物理属性、采样方式、信息密度和语义粒度上存在本质差异,因此需要为每种模态设计合适的数值表示,并针对其噪声特性进行预处理。本章将系统梳理四种主要模态的表示方法、数据特点与预处理技术,为后续的模型架构设计和融合策略奠定数据基础。
2.1 文本模态:离散符号的稠密化表示
核心原理
文本是离散符号序列,其表示经历了从独热编码(One-hot)到静态词向量(Word2Vec、GloVe),再到上下文相关的动态表示(BERT、系列)的演进。当前主流多模态大模型采用子词(Subword)分词技术(如BPE、WordPiece、SentencePiece),将文本切分为有限词表大小的序列,再通过嵌入层(Embedding Layer)映射为稠密向量。每个对应一个高维向量(通常768~4096维),序列长度通常控制在512~2048个。
| 表示方法 | 维度 | 上下文感知 | 典型应用 |
|---|---|---|---|
| One-hot | 词表大小(数万) | 否 | 传统统计模型 |
| Word2Vec / GloVe | 100~300 | 否 | 传统深度模型 |
| ELMo | 1024 | 双向LSTM | 早期预训练 |
| BERT / | 768~4096 | Transformer | 多模态大模型基础 |
预处理流程
- 文本清洗:去除HTML标签、特殊符号、控制字符,统一Unicode编码,处理表情符号(保留或替换为特殊)。
- 分词:使用与预训练模型一致的分词器(如的BPE、LLaMA的SentencePiece),确保词表一致。
- 截断与填充:固定序列长度(如512),超长截断,不足填充[PAD] ,并生成Attention Mask。
- 特殊注入:添加[CLS]、[SEP]、[IMG]、[AUD]等跨模态标记,用于区分不同模态输入。
2.2 图像模态:像素矩阵到Patch序列
核心原理
图像以像素矩阵(H×W×C)存储,C通常为3(RGB)或1(灰度)。传统CNN通过卷积核提取局部特征,而ViT(Vision Transformer)将图像划分为固定大小的Patch(如16×16像素),每个Patch展平后经线性投影得到Patch Embedding,并添加位置编码。多模态大模型(如LLaVA、Qwen-VL)通常采用ViT作为视觉编码器,输出视觉序列,与文本序列拼接后输入LLM。
数据特点与预处理
- 分辨率与尺寸:原始图像尺寸不一,需Resize到固定尺寸(如224×224、336×336)。高分辨率图像可先切块再缩放,保留细节。
- 归一化:像素值从[0,255]归一化到[0,1]或标准化到均值为0、方差为1(使用ImageNet统计量:mean=[0.485,0.456,0.406],std=[0.229,0.224,0.225])。
- 数据增强:随机裁剪、水平翻转、颜色抖动、旋转等,增强模型泛化能力。注意:多模态任务中,图像增强不应破坏与文本描述的语义对应关系。
- Patch化:将图像切分为N个Patch,N = (H/P)×(W/P),P为Patch大小。每个Patch展平后经线性层映射为D维向量。
2.3 音频模态:波形到频谱的时频变换
核心原理
音频本质是一维时间序列(采样率通常为16kHz或8kHz),直接输入原始波形需要极长的序列长度(1秒音频=16000个采样点),计算开销大。因此,主流做法是将波形转换为梅尔频谱图(Mel Spectrogram):先分帧(如25ms帧长、10ms帧移),加窗(Hamming窗)后做FFT得到功率谱,再通过Mel滤波器组(通常80~128个滤波器)压缩频率维度,最后取对数。梅尔频谱图可视为二维图像(时间×频率),从而复用图像处理技术。
预处理流程
- 重采样:统一采样率(如16kHz),避免不同来源音频采样率不一致。
- 预加重:使用一阶高通滤波器 y(t)=x(t)-αx(t-1)(α≈0.97),提升高频分量。
- 分帧加窗:帧长25ms、帧移10ms,加Hamming窗减少频谱泄漏。
- FFT与Mel滤波:对每帧做512点FFT,经Mel滤波器组压缩为80维。
- 对数压缩与归一化:取log(1+·)压缩动态范围,再按全局均值和方差归一化。
2.4 视频模态:时空维度的联合建模
核心原理
视频是图像序列(帧)与音频的复合体,额外引入时间维度。视频表示方法分为三类:2D帧采样(均匀抽帧后逐帧编码)、3D卷积(直接对视频立方体卷积)、时空Patch(将视频切分为3D Patch,如16×16×4,即空间16×16、时间4帧)。多模态大模型通常采用稀疏采样策略:从视频中均匀抽取N帧(如8帧或16帧),每帧经图像编码器提取特征,再通过时间Transformer建模帧间关系。
数据特点与预处理
| 维度 | 挑战 | 预处理策略 |
|---|---|---|
| 时间长度 | 视频时长差异大(秒~小时) | 均匀抽帧(如每秒1帧)或分段采样 |
| 空间分辨率 | 分辨率不统一(720p/1080p/4K) | Resize到固定尺寸(如224×224) |
| 帧间冗余 | 相邻帧高度相似 | 关键帧提取或帧差法 |
| 多模态同步 | 音画不同步 | 时间戳对齐,偏移校正 |
预处理流程
- 抽帧:按固定帧率(如2fps)或均匀间隔抽取,避免运动信息丢失。
- 光流计算:对于动作识别任务,可计算相邻帧的光流(如TV-L1算法),提供运动信息。
- 时空Patch化:将视频切分为T×H×W的Patch序列,每个Patch包含时间维度和空间维度。
- 掩码策略:在视频-语言预训练中,随机掩码部分帧或Patch,训练模型重建,增强时序理解。
2.5 跨模态对齐与统一预处理策略
核心原理
多模态模型的核心难点在于将不同模态的表示映射到统一语义空间。常见策略包括:对比学习(如CLIP,拉近匹配图文对的距离)、交叉注意力(如Flamingo,在LLM层间插入视觉交叉注意力)、Q-Former(如BLIP-2,用可学习Query向量从视觉特征中提取信息)。无论哪种策略,预处理阶段都需要保证各模态的序列长度、特征维度、归一化方式协调一致。
统一预处理清单
- 维度对齐:视觉、音频、文本的嵌入维度必须一致(如4096),否则需加投影层。
- 序列长度控制:文本≤512 ,图像≤256 Patch,音频≤1500帧(约15秒),视频≤32帧。超长部分截断或降采样。
- 归一化一致性:各模态特征在输入LLM前需进行LayerNorm,避免数值范围差异过大。
- 掩码机制:为每个模态生成独立的Attention Mask,区分有效和填充。
2.6 案例复盘:多模态对话系统的数据预处理管线
某智能客服系统需支持用户上传图片+语音提问,模型需理解图文音混合输入并生成回答。初始方案直接拼接各模态原始特征,效果不佳。经分析,问题出在预处理环节:语音采样率不统一(8kHz~48kHz),图像尺寸差异大,文本长度参差不齐。
优化后的预处理管线:
- 音频:统一重采样至16kHz,提取80维Mel频谱,固定时长5秒(不足填充,超长截断),生成长度掩码。
- 图像:Resize至336×336,归一化,切分为14×14 Patch,添加位置编码。
- 文本:使用SentencePiece分词,截断至256 ,添加[IMG]和[AUD]标记。
- 对齐:将视觉(196个)、音频(500个)、文本(256个)拼接,总长度952,经投影层统一为4096维。
结果对比:优化后,模型在图文音联合理解任务上的准确率从61.3%提升至78.5%,推理速度提升22%(因序列长度更紧凑)。复盘经验:预处理不是简单的数据清洗,而是模型性能的关键杠杆。每个模态的采样参数、归一化方式、序列长度都直接影响训练稳定性和最终效果。建议在项目初期就建立标准化的预处理流水线,并针对不同模态设计独立的验证集,确保预处理不会引入信息丢失或噪声。