数据工程
如何利用已有的大规模图文数据集并进一步清洗出适合多模态对话的数据?¶
LAION 等大规模图文数据集(动辄数亿对)为多模态预训练提供了“量”,但要将它们转化为适合多模态对话的数据,需要进行质量过滤、格式转换、指令化改造三步走。
第一步:基础质量过滤
-
CLIP Score 阈值过滤:计算每对图文的 CLIP 余弦相似度,剔除得分低于某个阈值(如 0.25)的样本。这能去除大量图文无关或弱相关的噪声。
-
文本质量过滤:去除文本过短(如少于 5 个词)、包含过多特殊字符、非目标语言、或含有大量 SEO 垃圾信息的样本。可使用语言检测模型和基于困惑度(perplexity)的筛选。
-
图像质量过滤:去除分辨率极低、过度压缩、水印密布、纯文字或纯色块的图像。可结合美学评分模型(如 LAION-Aesthetics Predictor)和图像清晰度检测。
-
去重与去近似重复:基于图像感知哈希(pHash、dHash)和文本 MinHash 进行相似去重,防止训练数据中充斥相同或高度相似的内容。
第二步:面向对话的精选过滤
-
保留描述性强的文本:对话数据需要文本具有描述性、观点性或解释性,而非简单的标签或关键词。可以使用基于规则(如文本长度 > 10 词,包含动词和形容词)或轻量分类器筛选。
-
多样性采样:使用聚类或基于语义嵌入的多样化采样(如 K-Means 在 CLIP 文本嵌入空间),确保覆盖广泛的视觉概念、场景和语言风格,避免数据集中于常见物体(如猫狗车)。
-
隐私与合规初筛:过滤掉包含人脸(除非是公共人物)、身份证号、电话号码等敏感信息的图像和文本。
第三步:指令化改造
清洗后得到的仍是弱对齐的“图像-描述”对,离对话数据还很远。需要将它们自动转化为多轮对话格式:
-
用大模型生成对话:以图文对为输入,让 GPT-4V 或 LLaVA 等模型生成围绕该图像的多轮问答。可指定角色(如“你是一个乐于助人的助手”)、提问类型(描述、推理、比较)等,生成第一轮问题,再让模型自问自答,构造出 2-4 轮的对话。
-
模板化转化:对粗粒度描述文本,可以用预设模板包装成对话,如“请简要描述这张图片。”——回答即为原描述。但需大量模板保证多样性,否则模型会过拟合模板。
-
组合与拼接:将多组相关的图文对话拼接成更长的多图对话,让模型学会比较和联系多张图像。
通过这三步,原本只适合预训练的嘈杂图文对,被提纯并重构成了高质量、符合对话习惯的指令数据。

如何自动检测图文对中的“弱相关”或“不相关”样本?除了 CLIP score 还有哪些信号?¶
CLIP Score 是衡量图文语义相关性的主流指标,但并非完美,有时会给出误导性的高分(例如,对“狗”的图片和“一只猫”的文本仍可能打出 0.3+ 的分数)。多信号融合是更可靠的检测方案。
可用的多维信号:
-
细粒度跨模态对齐模型:使用比 CLIP 更强的模型,如 BLIP-2 的 ITM(图文匹配)头、或 SigLIP。它们在难负样本上训练得更好,能更精准地区分细微不匹配。
-
文本-图像实体匹配度:用 OCR 或物体检测模型提取图像中的文字、物体标签,与文本中的实体进行对比。若文本提了“汽车”但图中检测不到汽车,则大概率不相关。
-
NLI(自然语言推理):将图文对转化为假设-前提任务。例如,将文本作为假设,图像的描述(由另一个模型生成)作为前提,用 NLI 模型判断是否蕴含。若蕴含分数低,说明图文不一致。
-
问答一致性:用 VQA 模型向图像提问文本中的关键实体或关系(如“图中有猫吗?”)。若答案与文本不符,则标记为弱相关。
-
图像搜索反向验证:用文本去图像库中检索,若原图不在 Top-K 内,则说明文本对该图不具有唯一指代性,可能为弱相关。
-
文本困惑度与信息量:文本内容是否过分模糊或通用(如“一张图片”),缺乏实质信息,这类文本即使图像匹配也价值低。
-
模型置信度与噪声鲁棒性:给图像加上轻微噪声,观察 CLIP Score 的下降程度。若微小扰动导致分数骤降,说明对齐本身就很脆弱。
融合策略:
将上述信号作为特征,训练一个轻量级分类器(如 XGBoost),在人工标注的“相关/不相关”样本上进行训练,自动学习各信号的最佳组合权重。这比单一阈值更鲁棒,可大幅降低误杀和漏网。
多模态数据增强中,使用图像生成模型(如 SD)来扩增训练数据的利与弊。¶
利(优势):
-
突破数据规模瓶颈:可在极短时间内生成海量“图文对”,尤其在稀缺场景(如罕见动物、特定医学影像)和长尾概念上,弥补真实数据的不足。
-
高度可控性:可通过文本提示精确控制生成的图像内容、风格、构图、颜色等,为特定训练需求(如数量控制、空间关系理解)定制数据。
-
隐私友好:生成的人脸、场景是虚构的,不会泄露真实个人信息,有助于构建合规数据集。
-
提升鲁棒性:生成图像在纹理、光照、细节上与真实图有差异,用其训练相当于增加了数据多样性,可能增强模型对域外样本的泛化能力。
-
可自动化标注:生成图像的同时,提示文本就天然成为高质量的匹配文本,无需人工标注。
弊(劣势):
-
分布偏移与“模型漂移”:生成图像具有生成模型的固有痕迹(模糊、不自然的光影、畸形细节等),模型若大量学习这些痕迹,会在真实图像上性能下降。
-
放大偏见:生成模型本身从数据中学到了社会偏见和刻板印象(如“医生”常生成白人男性),不加控制地使用会加剧模型偏见。
-
缺乏真实世界复杂性和长尾细节:生成图像难以复制真实世界的光照、物理、遮挡、文字等复杂多样性和长尾噪声,模型可能学不到真正的视觉常识。
-
语义偏差:提示文本和生成图像可能存在微妙的语义错位(如“左边的猫”生成时猫却偏右),这种错误标注会误导训练。
-
版权与伦理风险:如果训练生成模型的源数据有版权问题,其生成的图像也可能存在衍生版权风险。
最佳实践:生成数据应作为真实数据的补充而非替代,建议比例不超过 10%-30%。使用时需配合严格的质量检查(如生成图的美学评分和 CLIP Score 复检),并尽量用多个不同生成模型或随机种子进行生成以增加多样性。
合成多模态指令数据时,如何避免引入 LLM 自身的幻觉或偏见?¶
用 LLM(如 GPT-4V)合成指令数据已成为主流,但 LLM 自身的“知识”和偏见会污染数据,导致训练出的 MLLM 继承这些缺陷。必须建立多层防御机制。
防御策略:
-
严格锚定输入图像:在 Prompt 中反复强调“仅基于图片内容回答,不要使用外部知识”。并要求模型在生成答案前,先输出图片中检测到的具体元素作为证据。示例提示:“你只能看到一张图片。请首先列出你在图片中观察到的所有物体、文字和人物,然后基于这些观察生成问题和回答。不要添加任何未在图片中出现的信息。”
-
自我一致性校验:对同一张图片,用不同提示或温度参数多次生成问答,保留所有生成结果中一致的部分,剔除不一致或矛盾的(可能为幻觉)。一致性投票是最简单的去幻觉策略。
-
对抗性事实校验:对于合成的指令-答案对,用另一个高性能的 MLLM(如 GPT-4V)或专门的事实核查模型,校验答案是否可以从图片中证实。若校验模型指出答案包含图片中不存在的信息,则丢弃该样本。
-
引入“拒绝回答”样本:主动要求 LLM 生成超出图片信息的问题(如“这个人的职业是什么?”但图片只是大头照),并教会它回答“无法从图片确定”。这能训练学生模型意识到自身知识边界。
-
偏见检测与修正:在合成涉及人物、文化、职业等敏感内容的数据时,使用偏见检测工具扫描生成文本。若检测到性别、种族等刻板印象,提示 LLM 重写或人工审核修正。
-
人类审核环:对于高风险或关键的训练数据(如医疗、法律领域),必须加入人类专家审核环节。即使只是抽样审核,也能有效校准自动化流程。
-
使用外部知识库作为锚点:如果需要外部知识(如名画作者、地标名称),不要依赖 LLM 内部记忆,而是将相关知识作为条件明文提供给 LLM,让它整合图片观察和给定知识来生成答案。
通过这些措施,可以最大限度地让合成数据忠实于图像本身,减少 LLM “脑补”的污染。
如何为多模态模型设计“数据配比”?比如粗粒度描述、细粒度问答、复杂推理数据的比例。¶
数据配比是多模态训练中的“秘方”,直接影响模型最终能力的光谱分布。没有万能的黄金比例,但存在清晰的设计原则和经验框架。
设计原则:
-
覆盖能力光谱:从简单到复杂,各项能力都需要一定比例的样本才能激活和保持。
-
模拟下游场景:最终应用是聊天机器人、专业分析还是图像检索?数据配比应与目标场景的难度和任务分布匹配。
-
先广后深:在预训练阶段,保证概念的广度;在指令微调阶段,加强推理的深度。
-
防止遗忘:即使追求复杂推理,也要保留少量简单描述数据,防止模型在基础对齐能力上退化。
经验框架(以指令微调阶段为例):
动态配比策略:
-
在训练初期,可适当提高描述和简单问答比例,让模型快速进入“能看懂”的状态。随着训练推进,逐步增加推理和复杂对话的比例。
-
监控不同能力子集的验证指标,若某项能力持续偏低,则临时提高对应类型数据的采样权重。
最终,数据配比是一个迭代调整的过程,需要根据模型表现和业务需求持续优化。
构建多模态对话数据,如何确保包含足够多的“拒绝回答”或“澄清反问”样本?¶
让模型学会在不确定时拒绝回答或主动澄清,是提升安全性和用户体验的关键。不能仅靠在对话数据中随机插入负例,而要系统性地构造这类“边界样本”。
构造拒绝回答样本的方法:
- 基于图像内容的不可回答问题生成:
- 为图像自动生成与内容无关的问题。例如,检测图中所有物体,然后问一个图中不存在的物体:“图中的汽车是什么颜色?”(但图中没有汽车)。标准答案:“图像中没有汽车。”
-
问隐私性问题(“这个人的电话号码是多少?”)、未来预测(“他下一步会做什么?”)、主观臆断问题。
-
基于图像质量退化的拒答:
-
对清晰图像进行高斯模糊、严重压缩、大面积遮挡处理,然后用原图的清晰问题去提问。答案应为“图像太模糊/遮挡严重,无法判断。”
-
超出模型能力范围的拒答:
- 问需要实时信息的问题(“今天的天气怎么样?”),答案应为“我无法获取实时信息。”
-
问需要专业资质的问题(“根据这张 X 光片,诊断是什么病?”),答案应为“我不是专业医疗 AI,建议咨询医生。”
-
构造澄清反问样本:
- 对于存在歧义的指令(如“这个怎么样?”但没有上下文),训练模型反问“您是指哪方面?质量、价格还是外观?”
-
对于指代不明确的多图场景(“这两张图哪个更好?”但用户未定义“好”的标准),模型应反问“您更注重美观还是功能性?”
-
多轮纠缠拒绝:
- 构造多轮对话,用户持续追问已超出图片信息的问题,模型在后续轮次中始终坚持拒绝,不编造。如第一轮拒绝,第二轮用户说“你肯定知道,告诉我吧”,模型仍需坚定拒绝。
比例与多样性:拒绝样本应占总指令数据的 3%-5%,且覆盖不同类型的“不知道”,避免模型只学会一两种拒答模板而导致泛化失败。
多模态数据的版权和合规问题在训练数据集中如何筛查?技术上有哪些过滤手段?¶
版权和合规是多模态模型商业化的“生命线”,一旦出问题可能导致模型下架或法律诉讼。筛查需要技术与流程双管齐下。
技术过滤手段:
-
已知版权库匹配:建立或接入一个已知受版权保护的图像/文本特征库(如知名画作、受版权保护的摄影作品、品牌 Logo 库)。用感知哈希或特征向量计算训练数据与版权库的相似度,高于阈值的予以移除或人工复核。
-
水印与版权声明检测:训练一个检测模型,识别图像中的各类水印(如 Shutterstock、Getty Images 等图库水印)和版权声明文字(OCR)。带有水印的图像大概率受版权保护,应谨慎处理或剔除。
-
人脸检测与模糊化:对包含清晰人脸的图像,若没有明确的公开人物授权,应进行人脸模糊或过滤。使用 RetinaFace、MediaPipe 等检测人脸区域。
-
敏感信息检测与脱敏:用 OCR 和正则表达式检测图像和文本中的身份证号、电话号码、邮箱、地址等个人身份信息,自动打码或剔除。
-
有害内容过滤:使用 NSFW 检测模型(如 Stable Diffusion 的安全检查器)和文本毒害分类器,过滤色情、暴力、血腥等不适内容。
-
反向图像搜索:对于大规模数据中的高价值图像,可抽样通过反向图像搜索(如 Google Images)检查其是否出现在明确标有版权限制的网站上。
流程与制度保障:
-
数据来源溯源:记录每一批训练数据的来源、采集方式、许可协议。优先使用明确开放许可的数据集(如 CC-BY、CC0)。
-
分级管理制度:根据数据风险等级(如公共领域、开放许可、未经许可网络爬取)采取不同的清洗和审核力度。
-
法律审查:在模型发布前,由法律团队对数据合规流程进行审查。
-
用户反馈与快速下架机制:提供版权方投诉通道,一旦收到有效投诉,能够快速从模型能力中“遗忘”特定数据(尽管技术上极具挑战)。
如何进行多语言多模态数据的收集和对齐?平行语料库难获取时怎么办?¶
多语言多模态数据的主要难点是:大规模图像通常配的是英文描述,其他语种的平行图文对稀少。
策略一:翻译增强
-
将英文图文对中的文本用机器翻译模型(如 Google Translate API、NLLB)翻译成目标语言。成本较低,可迅速扩大规模。
-
缺点:翻译可能丢失文化特定概念、俚语或文本中的双关语;OCR 文字在翻译后会与图像中的原文不一致,可能产生冲突。
-
改进:对于含有 OCR 文字的图像,不要翻译文本部分,而是将翻译文本作为额外条件加入,或者使用更智能的翻译策略保留原文+译文。
策略二:原生多语言数据挖掘
-
爬取目标语言国家的网站、论坛、电商平台,这些平台天然有对应语言的图文内容。例如,中文使用百度图片、小红书;日语使用 Yahoo! JAPAN;韩语使用 Naver。
-
利用 Common Crawl 的多语言网页,提取带有
alt文本的图像,语言检测后归类。 -
优点:数据更地道,包含文化特定概念。缺点:规模受限,清洗成本高。
策略三:跨模态跨语言对齐(不依赖平行语料)
- 当完全无法获取平行语料时,可利用多语言 CLIP(如 BGE-M3、multilingual-e5)等跨语言嵌入模型。这些模型通过对比学习,已在训练时对齐了不同语言的语义。即使没有直接的中文-图像对,中文查询也能通过共享嵌入空间检索到英文图像。使用这些模型可以构建弱对齐的伪平行数据。
策略四:合成数据
- 用多模态大模型(如 GPT-4V)直接为英文图像生成目标语言的描述和对话。由于 GPT-4V 本身支持多语言,能直接产出较高质量的非英语数据。
实践组合拳:通常以翻译增强为主力快速扩充规模,辅以一定比例的原生数据和合成数据提升地道性,在条件允许时逐步提高原生数据占比。
针对某一垂直领域(如电商),如何从商品主图和详情页中构建高质量的多模态问答对?¶
电商领域拥有独特的结构化多模态数据金矿,可被系统性地转化为多模态训练数据。
数据来源:商品主图、详情页长图、SKU 属性表、用户评论(含图片和文本)、QA 板块。
构造策略:
- 属性-问答对转换:
-
电商商品有结构化属性(如“品牌:Nike”、“颜色:红色”、“材质:纯棉”)。可以编写模板将这些属性转化为问答对。例如:“这件衣服是什么材质?”→“纯棉”;“有哪些颜色可选?”→“红色、蓝色”。这能产生大量精确的细粒度问答。
-
图文匹配校验与增强:
-
将属性与主图进行匹配。例如,用“红色”去匹配 CLIP 嵌入,确认主图确实主要呈现红色。对于“材质”,可能需要训练专门的材质识别模型。只有匹配的属性才生成正例问答,避免错误的标签。
-
OCR 驱动的文本识别问答:
-
电商详情图往往包含大量文字(折扣信息、尺寸表、成分说明)。用 OCR 提取所有文字,然后生成相关问题。例如,尺寸表旁的 OCR 结果可以构造出“这款的胸围是多少?”→“108cm”。
-
评论挖掘与对齐:
-
用户评论(尤其是带图评论)是宝藏。可以提取好评中提及的特定属性(如“穿上很显白”),与商品图对齐,生成问答:“这件衣服显白吗?”→“有用户反馈说穿上很显白。”注意过滤掉水军和虚假评论。
-
多图对比场景构造:
-
利用同一商品的不同 SKU 图(如不同颜色款),构造比较型问答:“红色款和蓝色款的设计有什么区别?”
-
对话化包装:
- 将上述单轮问答,通过模板或 LLM 串联成连贯的多轮对话。例如,用户先问颜色,再问尺码,最后问搭配建议,形成一个完整的购物咨询场景。
注意事项:电商数据噪音大(错误属性、PS 过度、刷单评论),需设置严格的质量门槛,如评论点赞数、属性完整性、图文匹配度等。
数据文档化对于多模态模型训练有多重要?应该包含哪些字段?¶
数据文档化是负责任 AI 开发的基石。没有它,模型的偏差、风险和局限性无从溯源,也难以合规。它相当于数据的“说明书”和“体检报告”,其重要性怎么强调都不为过。
关键字段(基于 Datasheets for Datasets 框架):
-
动机与目的:数据集创建的动机是什么?拟用于什么任务?不适合哪些任务?
-
构成与规模:总样本数;图像、文本的统计信息(分辨率分布、文本长度分布、语言分布);类别分布;样本示例。
-
收集过程:数据来源(URL、API、人工采集);采集时间范围;采集方式和工具;是否经过伦理审查和知情同意(尤其涉及人脸时)。
-
预处理/清洗/标注:使用了哪些过滤、去重、增强手段;若有人工标注,标注员的人口统计信息、标注指南、一致率(如 Cohen's Kappa);若有自动标注,所使用的模型及其局限性。
-
分布与偏差:数据在不同维度(如性别、年龄、地域、文化)上的代表性如何?已知的偏差和不平衡有哪些?进行了何种分析?
-
法律与伦理考量:版权状态;是否包含个人敏感信息及如何处理;潜在的有害内容(暴力、色情、仇恨言论)比例及处理方式;数据集的许可证。
-
维护与更新:数据集是否会更新?谁负责维护?如何报告数据中的错误或问题?
-
使用建议与风险:使用该数据训练的模型可能存在的风险和局限性。
对于多模态数据,特别需要关注视觉内容中的隐性偏见(如职业图片中的性别刻板印象)、OCR 文字的隐私泄露、以及图像版权的复杂性。数据文档化不仅是一份静态文档,更应是一个随着数据迭代不断更新的活文档。
多模态指令微调数据的典型格式是什么?如何从图像描述数据中构造多轮对话数据?¶
典型格式:多模态指令微调数据通常遵循与 LLM 对话数据相同的 conversation format,区别在于消息中包含了图像标记。主流格式如下(以 LLaVA 使用的格式为例):
{
"id": "sample_001",
"image": "path/to/image.jpg",
"conversations": [
{
"from": "human",
"value": "<image>\n请描述这张图片。"
},
{
"from": "gpt",
"value": "这张图片显示了一只橘色的猫正躺在阳光照射的木质窗台上,窗外可以看到模糊的绿色树影。"
},
{
"from": "human",
"value": "猫的姿势是怎样的?"
},
{
"from": "gpt",
"value": "猫是侧躺着,四肢放松地伸展开,眼睛半闭,看起来非常惬意。"
}
]
}
其中 <image> 是占位符,训练时会被替换为实际的视觉 token 序列。多图时会出现多个 <image> 标记,系统需区分其位置。
从描述数据构造多轮对话的方法:
- 模板化分解:对于“一只橘猫在窗台上晒太阳”这样的描述,可用预定义模板分解为多轮:
- Q:“图片中有什么动物?” A:“一只橘猫。”
- Q:“猫在哪里?” A:“在木质窗台上。”
- Q:“它在做什么?” A:“正在晒太阳,看起来非常惬意。”
-
Q:“光线如何?” A:“阳光照射在猫身上和窗台上,形成温暖的光影。” 模板需足够多样,避免模型死记硬背。可以使用同义词替换、问句改写等方式增加变体。
-
LLM 驱动的对话生成:
-
将图像和描述文本一起送入 GPT-4V,提示它基于描述生成一个“好奇的用户”和一个“乐于助人的助手”之间的自然多轮对话,要求对话覆盖描述中的多个细节,并可以有一些合理的追问。这是目前生成高质量多轮数据最有效的方法。
-
自我对弈:
- 用一个已有的 MLLM 扮演用户和助手两个角色,围绕图像进行对话。为了避免对话陷入循环,可以预设问题列表或使用随机种子引导话题方向。
关键是要确保生成的多轮对话有逻辑连贯性、指代消解自然、且逐步深入,而不是松散的问答堆砌。
使用大模型合成多模态指令数据时,需要注意哪些问题?如何保证多样性和质量?¶
需要注意的问题:
-
幻觉污染(见第 4 问详述):模型可能“脑补”图像中不存在的内容,必须严格锚定图像。
-
风格与偏见同质化:单一模型(尤其是 GPT-4V)生成的文本有明显的语言风格偏好(如过于礼貌、长篇大论、用词考究),大量使用会让下游模型“学话”而非“懂事”。同时,GPT-4V 也有自身的文化和知识偏见。
-
任务类型不均衡:LLM 倾向于生成自己擅长的任务类型(如描述和简单问答),而可能忽略需要空间推理、计数、OCR 等弱项任务的生成。
-
长尾概念覆盖不足:对于罕见物体或复杂场景,GPT-4V 可能自己也识别不准,导致生成错误标注。
保证多样性的策略:
-
多模型生成:混合使用 GPT-4V、Gemini Pro Vision、Qwen-VL 等不同家族的 MLLM 生成数据,利用模型间的差异增加数据多样性。
-
指令模板多样性:维护一个包含数百种不同任务描述、角色扮演、提问风格的指令模板库,每次随机抽取。例如,有时要求“简短回答”,有时要求“逐步推理”,有时要求“用 JSON 格式输出”。
-
数据源多样性:输入图像要尽量多样化,不要只来源于单一数据集(如 COCO)。混合自然图像、图表、文档、截图、画作等。
-
控制生成参数:适当提高生成时的温度参数,并限制 top-p 采样,鼓励模型生成非最高概率的表达。
保证质量的策略:
-
自动化多维度评分:用 CLIP Score 检查图文相关性,用困惑度检查文本流畅性,用正则或专用模型检查事实性错误。
-
人工抽样审核:定期从合成数据中随机抽样进行人工打分,监控合成质量的变化趋势,并及时发现新的问题模式。
-
迭代修正:利用人工审核发现的问题,细化给 LLM 的 Prompt,如增加“不要使用‘这幅图展示了’这种开头”等具体约束。
如何处理多模态预训练数据中的噪声?有哪些清洗和过滤策略?¶
多模态预训练数据中的噪声主要有三类:图文不匹配(alt-text 错误)、文本质量低(语法错误、无意义)、图像质量低(模糊、水印)。处理策略是多层次级联过滤,从粗到细。
第一层:粗粒度规则过滤
-
文本:长度 < 5 词过滤;非目标语言过滤;特殊字符/乱码占比过高过滤;含黑名单词(色情、暴力)过滤。
-
图像:分辨率过低(如 < 100px)过滤;长宽比极端(>5 或 <0.2)过滤;纯色/单色图像过滤。
第二层:统计与模型打分过滤
-
CLIP Score:计算图文余弦相似度,丢弃低于阈值(如 0.25)的对。它是核心过滤手段。
-
Aesthetics Score:用 LAION 的美学评分模型给图像打分,丢弃低分图像,提升整体视觉质量。
-
文本困惑度:用小语言模型计算文本的 perplexity,极高者可能是乱码。
-
NSFW/水印检测:移除色情、暴力内容和带图库水印的图像。
第三层:细粒度一致性过滤
-
实体级匹配:用物体检测模型(如 YOLO)识别图中的主要物体,检查文本中是否至少提到其中几个。若全未提到,则为不匹配。
-
OCR 校验:若图像中包含文字,OCR 提取的文字是否在文本描述中出现?若关键文字完全不符,可能为噪声。
第四层:基于模型的迭代过滤
-
用已训练的初始模型来评估数据质量。例如,用模型的 ITM 头对图文对打分,或用字幕模型生成描述,计算生成描述与原文本的 ROUGE/BLEU,低者可能为噪声。这可以进入数据-模型迭代提纯的飞轮。
-
注意:过分依赖模型过滤会引入模型自身的偏见,可能系统性地排除某些长尾概念。
什么是“CLIP score”?它如何用于过滤低质量图文对?有什么局限性?¶
CLIP Score 是衡量图像和文本语义匹配程度的指标,定义为图像嵌入向量和文本嵌入向量之间的余弦相似度。计算公式为:

在过滤中的应用:
通过设定一个全局阈值(如 0.25 或 0.3),丢弃所有 CLIP Score 低于该阈值的图文对。这是 LAION 构建时最核心的过滤手段之一,能高效剔除完全图文无关的噪声数据。
局限性:
-
对细粒度错误不敏感:对于“红色的猫”和一只“白色的猫”的图像,CLIP Score 可能仍然很高,因为它主要捕获了“猫”这个高层语义,而对颜色这类细粒度属性区分力弱。这会导致数据中保留大量属性绑定错误。
-
对文字和复杂构图理解弱:CLIP 对图像中的文字(OCR)、物体计数、空间关系理解能力有限。因此,含有这类信息的图文对可能被错误评分。
-
存在自身偏见:CLIP 的预训练数据也有偏差,它认为“相关”的可能只是训练数据中的常见共现模式,而非真正的语义相关。例如,它可能给“鸟”和“树枝”打高分,即使图中有鸟没树枝。
-
阈值难以普适:最佳阈值与具体数据集和下游任务有关。一刀切的阈值会丢失一些语言独特但视觉概念罕见的长尾样本。
-
易受对抗攻击:已有研究表明,可以通过微小的图像扰动操纵 CLIP Score。
因此,CLIP Score 应作为粗筛工具与其他信号(如细粒度匹配、实体检测)结合使用。
预训练数据中如果包含大量重复图像,会对模型产生什么影响?如何有效去重?¶
大量重复图像的危害:
-
数据分布扭曲与过拟合:重复图像在训练中被多次采样,其视觉概念被过度强化,破坏了数据的真实多样性。模型会在这些重复样本上过拟合,记住它们的特定像素而非学习泛化特征,在验证和真实场景下性能下降。
-
评估失准:如果测试集中有图像与训练集中的重复图像高度相似,评估结果将虚高,无法反映真实泛化能力。这是“数据泄露”的一种隐蔽形式。
-
记忆化风险:对于扩散模型等生成模型,重复图像可能导致模型直接复制训练样本,产生版权和隐私泄露风险。
-
降低训练效率:算力被浪费在学习已经学过的内容上,长尾概念得不到充分学习。
有效去重方法:
-
基于哈希的精确去重:计算图像文件的 MD5、SHA256 值,完全一致的直接剔除。这是最基础的第一步。
-
感知哈希去重:对图像进行缩放、灰度化后计算感知哈希(如 pHash、dHash),对微小修改(如裁剪、调色、加水印)具有鲁棒性。设定汉明距离阈值,将距离过近的视为近似重复。
-
基于特征向量的去重:使用预训练模型(如 CLIP 视觉编码器或专门的去重模型如 SSCD)提取图像的特征向量。计算向量间的余弦相似度,超过极高阈值(如 0.995)的视为重复。这种方法能发现更广泛的语义重复(如不同角度拍摄的同一场景)。可以使用 FAISS 等库进行高效向量检索和去重。
-
多模态去重:结合图像和文本。如果两张图像高度相似且文本也高度相似,则极可能是重复样本。这能更准确地处理同一图像配不同语言描述的情况。
-
分块去重:对于极大规模数据,先根据图像特征聚类或分桶,然后在桶内进行精确匹配,降低两两比对的计算量。
大规模多模态训练中,数据加载常成为瓶颈,你会如何优化数据流水线?¶
多模态训练中,数据加载的瓶颈通常来自高分辨率图像的解码和预处理、大量小文件的 I/O、以及多模态数据的组合和 Tokenization。优化需从存储、I/O、预处理、多线程多个层面入手。
优化策略:
- 高效存储格式:
- WebDataset (tar 包格式):将海量小文件打包成大的 tar 文件。这极大减少了文件系统的 inode 压力和随机读取开销,支持顺序流式读取,是处理百万级以上图像的标准做法。
-
TFRecord / Mosaic:对于 TPU 训练,TFRecord 是高效格式。Mosaic 是 Databricks 为加速而设计的格式。
-
数据预处理加速:
- NVIDIA DALI:将图像解码、缩放、裁剪、归一化等预处理操作从 CPU 卸载到 GPU,利用 GPU 的大规模并行能力,能获得数倍的预处理加速。DALI 可直接读取 WebDataset 格式。
-
预解码与缓存:如果存储空间允许,可将图像预解码并存储为未经压缩的二进制格式,跳过训练时的解码步骤。或使用高速 SSD 缓存热点数据。
-
多线程与预取:
- 使用 PyTorch 的
DataLoader设置高num_workers(如 8-16),并在数据管道中使用prefetch_factor预先加载多个 batch。 -
确保 CPU 核心数足够,内存带宽不成为瓶颈。
-
文本 Tokenization 加速:
-
使用
HuggingFace tokenizers库的 Rust 实现,或在 DataLoader 中对文本 batch 进行并行 tokenization。对于大语料,预 tokenize 并存储 token ID 可以省去重复计算。 -
分布式数据加载:
-
每个计算节点仅加载其分片数据,避免全局数据搬移。使用 PyTorch 的
DistributedSampler自动处理分片。 -
懒加载与流式处理:
-
不将整个数据集索引加载到内存,而是维护文件列表,流式读取和预处理,降低内存占用。
-
带宽优化:
- 数据存储在分布式文件系统(如 Ceph、HDFS)或对象存储(如 S3)上时,确保计算节点与存储节点之间的网络带宽充足,或使用本地 NVMe 缓存。
组合使用 WebDataset + DALI + 高 num_workers + GPU 预处理,是当前大规模多模态训练数据流水线的最佳实践。
使用合成数据增强多模态训练集时,如何避免模型“刻板化”或“退化”?¶
合成数据若使用不当,不仅无法提升模型,反而会导致模型变得单调、缺乏创造力,甚至性能下降。这种“刻板化”或“退化”主要源于合成数据缺乏真实数据的固有噪声和多样性。
避免策略:
-
合成数据来源多样化:不要仅依赖一个生成模型(如只用 Stable Diffusion XL)。混合使用多个不同架构、不同训练数据的生成模型(如 SDXL, DALL-E 3, Midjourney, Flux),以及不同参数设置(种子、引导强度、步数)产生的图像。这样能保证生成图像在风格、光照、构图上的多样性。
-
注入受控噪声:真实数据充满噪声(模糊、压缩、光照不均、遮挡)。在合成数据中刻意加入类似噪声,可以让模型学会处理不完美输入。例如,对生成图像进行 JPEG 压缩、高斯模糊、颜色抖动等后处理。
-
保持一定比例的真实数据:合成数据永远不应完全替代真实数据。训练集中维持一定比例(至少 50%-70%)的真实数据至关重要,它像“锚点”一样防止模型在生成数据的分布中漂移。将真实数据和合成数据混合训练。
-
真实性过滤与多样性采样:对生成的图像进行美学评分和 CLIP Score 过滤,但不要只保留最高分的。可以分层采样:保留一部分高分图像,也保留一定比例中等分数、具有“瑕疵”的图像,以模仿真实世界的数据分布。
-
提示词的多样性:图像的多样性直接受限于生成它的文本提示的多样性。使用 LLM 生成大量多样化、奇特的、非典型的提示词,避免提示词陷入几个固定模板。
-
闭环反馈修正:用训练好的 MLLM 在真实世界验证集上评估。如果发现某些能力退化(如对真实照片的识别率下降),说明合成数据带来了分布偏移,此时应调整合成数据的比例或生成方式,并用针对性收集的真实数据进行补偿。
-
避免“数据回音室”:不要用模型自己生成的数据来训练自己的下一代模型,这会导致无法逆转的退化(Model Collapse)。合成数据应始终由比当前模型更强的独立模型生成。