大模型数据清洗最佳实践
在大模型训练过程中,数据质量直接影响模型性能。本文分享一套可复现的数据清洗流程。
1. 数据质量评估
首先进行基础统计分析:
import pandas as pd
import numpy as np
df = pd.read_csv('dataset.csv')
# 检查缺失值
missing_stats = df.isnull().sum()
print(missing_stats[missing_stats > 0])
# 检查重复数据
duplicates = df.duplicated().sum()
print(f"重复行数: {duplicates}")
2. 异常值处理
使用IQR方法识别异常值:
Q1 = df['numeric_column'].quantile(0.25)
Q3 = df['numeric_column'].quantile(0.75)
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
# 过滤异常值
df_cleaned = df[(df['numeric_column'] >= lower_bound) &
(df['numeric_column'] <= upper_bound)]
3. 文本数据清洗
针对文本字段:
import re
def clean_text(text):
# 移除特殊字符,保留字母数字和空格
text = re.sub(r'[^a-zA-Z0-9\s]', '', text)
# 移除多余空格
text = re.sub(r'\s+', ' ', text).strip()
return text
# 应用清洗函数
df['cleaned_text'] = df['raw_text'].apply(clean_text)
4. 数据去重与验证
# 基于关键字段去重
key_columns = ['user_id', 'timestamp']
df_unique = df.drop_duplicates(subset=key_columns, keep='first')
# 验证去重效果
print(f"原始数据: {len(df)}")
print(f"去重后: {len(df_unique)}")
5. 最终验证
生成清洗报告:
report = {
'total_rows': len(df),
'cleaned_rows': len(df_cleaned),
'missing_values': df.isnull().sum().to_dict(),
'duplicates_removed': duplicates
}
print(report)
这套流程可有效提升数据质量,为大模型训练奠定坚实基础。

讨论