在大模型训练过程中,数据质量直接影响模型性能。本文将分享我们在数据清洗与去重方面的实践经验。
数据去重策略
基于哈希的去重
使用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%以上,显著提升了模型训练效率。建议在实际项目中根据数据特点调整参数阈值。

讨论