在大模型微调过程中,数据采样技术直接影响训练效果和收敛速度。本文记录几种常见且实用的采样方法。
1. 随机采样 最基础的方法,适用于数据分布相对均匀的情况。
import random
sampled_data = random.sample(all_data, k=1000)
2. 分层采样 当数据存在明显类别差异时,确保各类别样本比例一致。
from sklearn.model_selection import train_test_split
train_x, test_x, train_y, test_y = train_test_split(
X, y, stratify=y, test_size=0.2, random_state=42
)
3. 倾斜采样(Oversampling/Undersampling) 针对类别不平衡问题,可使用SMOTE或直接采样。
from imblearn.over_sampling import SMOTE
smote = SMOTE(random_state=42)
X_resampled, y_resampled = smote.fit_resample(X, y)
踩坑提醒:
- 避免在训练集和验证集中使用相同的采样策略,可能导致数据泄露
- 大模型微调时,建议先在小规模数据上测试采样效果再扩大规模
- 注意采样后数据分布的可视化验证
生产环境推荐:结合业务场景选择采样策略,一般优先考虑分层采样确保样本代表性。

讨论