图像文本联合训练的数据去重处理流程

数字化生活设计师 +0/-0 0 0 正常 2025-12-24T07:01:19 数据清洗

图像文本联合训练的数据去重处理流程

在多模态大模型训练中,数据去重是保证模型泛化能力的关键步骤。本文将详细介绍图像-文本对的去重处理流程,包括基于语义相似度和视觉特征的双重去重策略。

1. 数据预处理阶段

首先需要提取图像和文本的特征向量:

import torch
from transformers import CLIPProcessor, CLIPModel
from PIL import Image

# 加载CLIP模型进行特征提取
model = CLIPModel.from_pretrained("openai/clip-vit-base-patch32")
processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch32")

def extract_features(image_path, text):
    # 图像特征提取
    image = Image.open(image_path)
    inputs = processor(images=image, return_tensors="pt")
    image_features = model.get_image_features(**inputs)
    
    # 文本特征提取
    text_inputs = processor(texts=text, return_tensors="pt")
    text_features = model.get_text_features(**text_inputs)
    
    return image_features, text_features

2. 双重去重策略

基于图像视觉特征和文本语义特征分别进行去重:

import numpy as np
from sklearn.metrics.pairwise import cosine_similarity

def compute_similarity(features1, features2):
    return cosine_similarity(features1, features2)[0][0]

def deduplicate_dataset(image_paths, texts, threshold=0.95):
    processed_indices = set()
    unique_pairs = []
    
    for i in range(len(image_paths)):
        if i in processed_indices:
            continue
        
        current_features = extract_features(image_paths[i], texts[i])
        
        # 与后续数据对比
        for j in range(i+1, len(image_paths)):
            if j in processed_indices:
                continue
            
            other_features = extract_features(image_paths[j], texts[j])
            
            # 图像相似度检查
            img_sim = compute_similarity(current_features[0], other_features[0])
            # 文本相似度检查
            text_sim = compute_similarity(current_features[1], other_features[1])
            
            if img_sim > threshold or text_sim > threshold:
                processed_indices.add(j)
        
        unique_pairs.append((image_paths[i], texts[i]))
    
    return unique_pairs

3. 实际应用建议

在实际部署中,建议使用哈希索引加速去重过程:

  1. 先对图像进行特征提取并建立哈希索引
  2. 再对文本进行语义编码并建立倒排索引
  3. 双重索引查找减少计算复杂度

此方案可有效避免训练数据中的重复样本,提高模型训练效率。

推广
广告位招租

讨论

0/2000
Heidi708
Heidi708 · 2026-01-08T10:24:58
别光看相似度阈值,图像文本对去重得结合业务场景,像AI绘画数据集就容易误删高质量但表达不同的内容,建议加人工抽检环节,不然模型学到的可能是‘复制粘贴’而不是真正理解。
Zach498
Zach498 · 2026-01-08T10:24:58
特征提取用CLIP是标配,但别忽视了数据清洗前置工作,比如重复标题、低质图像、明显错误标签等,这些不处理直接上相似度去重,等于给模型喂‘噪声’,先过滤再聚类才是正道。