模型训练中的数据清洗与去重技术实践

ThinMax +0/-0 0 0 正常 2025-12-24T07:01:19 数据清洗 · 去重技术

在大模型训练过程中,数据质量直接影响模型性能。本文将分享我们在数据清洗与去重方面的实践经验。

数据去重策略

基于哈希的去重

使用MD5哈希值进行快速去重:

import hashlib
import pandas as pd

def get_md5(content):
    return hashlib.md5(content.encode()).hexdigest()

df['md5'] = df['text'].apply(get_md5)
df_clean = df.drop_duplicates(subset=['md5'])

语义层面去重

使用Sentence-BERT计算文本相似度:

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

model = SentenceTransformer('all-MiniLM-L6-v2')
embeddings = model.encode(df['text'].tolist())
similarity_matrix = cosine_similarity(embeddings)

# 设置阈值去除相似度过高的样本
threshold = 0.95
keep_indices = []
visited = set()

for i in range(len(similarity_matrix)):
    if i not in visited:
        keep_indices.append(i)
        # 标记相似的样本
        for j in range(i+1, len(similarity_matrix)):
            if similarity_matrix[i][j] > threshold:
                visited.add(j)

数据清洗要点

  • 去除包含敏感信息的文本
  • 过滤过短或过长的样本
  • 清理特殊字符和乱码

通过以上方法,我们成功将训练数据集去重率提升至98%以上,显著提升了模型训练效率。建议在实际项目中根据数据特点调整参数阈值。

推广
广告位招租

讨论

0/2000
FierceWizard
FierceWizard · 2026-01-08T10:24:58
哈希去重快但不够精准,建议结合语义相似度一起用,不然像改写后的重复内容会漏掉。
KindSilver
KindSilver · 2026-01-08T10:24:58
Sentence-BERT去重确实好用,不过计算量大,可以先用哈希快速筛一遍再精洗。
LightIvan
LightIvan · 2026-01-08T10:24:58
清洗时别光看长度,有些高质量长文本是必要的,建议加个关键词过滤逻辑。
微笑绽放
微笑绽放 · 2026-01-08T10:24:58
阈值设置很关键,0.95对某些领域数据可能太高了,建议多跑几组实验找最优值