Skip to content

多模态数据工程

"Data is the new oil" —— 在多模态领域,数据的质量与规模直接决定模型上限。数据工程不仅是收集,更涉及复杂的清洗、过滤与合成策略。


数据工程全景


LAION-5B:工业级数据清洗

LAION-5B 是目前最大的开源多模态数据集,包含 58.5 亿图文对。

构建流水线

关键过滤步骤

步骤技术目的
URL 过滤黑名单匹配排除低质/违规站点
图像下载并行爬取 + 重试获取原始图像
CLIP 过滤计算图文相似度保证语义相关性
去重感知哈希 (pHash)去除重复图像
NSFW 过滤CLIP 分类器过滤成人内容

CLIP Score 阈值

python
# LAION 过滤逻辑
def filter_sample(image, text):
    image_emb = clip.encode_image(image)
    text_emb = clip.encode_text(text)
    score = cosine_similarity(image_emb, text_emb)
    
    # 英文数据阈值
    if language == 'en':
        return score >= 0.28
    # 多语言数据阈值
    else:
        return score >= 0.26

CLIP 过滤的双刃剑

优势

✅ 保证图文语义相关
✅ 自动过滤低质数据
✅ 可大规模并行处理

VS
劣势

❌ 继承 CLIP 偏见
❌ 过滤罕见概念
❌ 某些艺术风格被排除

CLIP 偏见传播

如果 CLIP 无法识别某种艺术风格或生僻概念,相关数据就会被过滤掉。这导致下游模型在这些领域覆盖率不足,形成"偏见闭环"。

LAION 数据集家族

数据集规模语言特点
LAION-400M4 亿英文早期版本
LAION-5B58.5 亿多语言主力数据集
LAION-Aesthetic1.2 亿英文高美学评分
LAION-COCO6 亿英文类 COCO 格式

ShareGPT4V:高质量 Caption 合成

传统网络爬取数据的 alt 文本往往过于简短,缺乏对图像细节的描述。

问题示例

来源Caption 示例
网络 alt 文本"beach photo"
人工标注"A person surfing on a wave"
GPT-4V 生成"The image captures an exhilarating moment of a surfer riding a powerful wave. The surfer, clad in a black wetsuit, demonstrates remarkable balance and skill..."

ShareGPT4V 数据闭环

GPT-4V Prompt 设计

markdown
请详细描述这张图片,包括但不限于:
1. 主要对象及其属性(颜色、形状、大小)
2. 对象之间的空间关系
3. 场景的整体氛围和背景
4. 任何文字或符号
5. 图片的艺术风格或拍摄技术
6. 可能的世界知识关联

请用详尽的段落形式描述,而非简单的列表。

数据质量对比

指标LAION CaptionShareGPT4V Caption
平均长度~12 词~150 词
细节覆盖仅主体全面细节
空间关系
世界知识

训练效果

实验证明,使用高密度 Caption 预训练:

  • 视觉特征与语言概念对齐更精确
  • 细粒度任务(OCR、定位)显著提升
  • 幻觉问题减少

动态分辨率:AnyRes

问题:固定分辨率的局限

传统方法将所有图像缩放到固定分辨率(如 336×336):

原始图像缩放后问题
高清照片 4K336×336细节丢失
文档截图336×336文字模糊
长图/宽图336×336严重变形

LLaVA-NeXT AnyRes 方案

网格配置

python
GRID_CONFIGS = [
    (1, 1),  # 正方形小图
    (1, 2),  # 宽图
    (2, 1),  # 高图
    (2, 2),  # 大正方形
    (1, 3),  # 超宽图
    (3, 1),  # 超高图
    (2, 3),  # 宽大图
    (3, 2),  # 高大图
]

def select_grid(image_width, image_height, patch_size=336):
    aspect_ratio = image_width / image_height
    # 选择最匹配宽高比的网格配置
    best_grid = min(GRID_CONFIGS, 
                    key=lambda g: abs(g[0]/g[1] - aspect_ratio))
    return best_grid

Token 数量计算

配置子图数子图 Token全局 Token总计
1×115765761152
2×2423045762880
3×2634565764032

意外收获:零样本视频理解

AnyRes 的设计意外带来视频理解能力:

  • 视频帧 = 动态分辨率的图像序列
  • 将多帧作为"子图"输入
  • 无需专门视频训练

数据格式标准

预训练格式

json
{
  "image": "path/to/image.jpg",
  "caption": "A detailed description of the image..."
}

指令微调格式

json
{
  "image": "path/to/image.jpg",
  "conversations": [
    {"from": "human", "value": "<image>\nDescribe this image."},
    {"from": "gpt", "value": "This image shows..."}
  ]
}

多图对话格式

json
{
  "images": ["img1.jpg", "img2.jpg"],
  "conversations": [
    {"from": "human", "value": "<image>\n<image>\nCompare these two images."},
    {"from": "gpt", "value": "The first image shows... while the second..."}
  ]
}

数据质量评估

自动化指标

指标计算方式用途
CLIP Score图文余弦相似度语义相关性
Aesthetic ScoreLAION 美学模型图像质量
Text Complexity词汇多样性/长度Caption 丰富度
Perplexity语言模型困惑度Caption 流畅度

人工评估维度

维度评估内容
准确性Caption 是否真实描述图像
完整性是否覆盖主要视觉元素
细节度空间关系、属性是否充分
相关性是否有无关信息

实践建议

数据收集策略

阶段数据类型规模质量要求
预训练网络爬取10M+中等
多任务公开数据集1M+较高
指令微调人工/合成100K+极高

常见陷阱

数据泄漏

确保训练数据与评测数据无重叠!使用去重和交叉检查。

分布偏差

网络数据存在严重的长尾分布,罕见概念覆盖不足。考虑数据增强或合成补充。


参考资源

资源说明
LAION-5B数据集主页
ShareGPT4V高质量 Caption
LLaVA-NeXTAnyRes 技术
img2dataset数据下载工具

基于 VitePress 构建