DistilBERT LoRA助力IMDb情感分析,打造高精度可解释模型
背景与数据
IMDb Large Movie Review 数据集是业界常用的二分类基准,包含 5 万条正负影评。本文首先对数据进行shuffle、去重、长度分布等审计,确保训练集与测试集无泄漏并识别出长文本截断的潜在风险。
TF‑IDF 基线
- 使用
TfidfVectorizer(1‑2‑gram,子线性 TF)构建特征; - 采用
LogisticRegression(C=8.0)训练分类器; - 基线在验证集上实现 准确率 0.8944、AUC 0.9451,并通过系数排名展示了最具正负倾向的词组。
LoRA 微调
DistilBERT‑base‑uncased 通过 PEFT 框架加入 LoRA 适配器(r=16, α=32),仅更新查询/值投影层,保持主干冻结,实现参数高效微调。训练配置包括:批次 16、学习率 3e‑4、2 轮 epoch、混合精度 fp16、早停 patience=2。微调后模型在同一验证集上达到 准确率 0.9312、AUC 0.9714,显著超越 TF‑IDF 基线。
综合评估
- 混淆矩阵 显示误分类主要集中在情感表达模糊的中性评论;
- ROC 曲线 对比两种方法,LoRA 版的曲线更靠近左上角;
- 使用
classification_report给出精确率、召回率、F1 等细粒度指标。
阈值与校准
通过在 0.05‑0.95 区间扫阈,发现最佳阈值约为 0.63,对应最高准确率 0.9345。进一步计算 Expected Calibration Error (ECE) = 0.021,并绘制可靠性图,表明模型概率分布与实际准确率基本吻合。
错误分析与可解释性
- 高置信错误:挑选置信度 >0.95 且预测错误的样本,发现多数为讽刺或双关句,模型难以捕捉语义反转。
- 长度影响:将长评按长度分箱,发现超过 300 词的样本准确率下降约 3%;
- Occlusion Saliency:对单词逐一遮蔽,统计删除后概率变化,得到对正负情感贡献最大的 15 个词,帮助定位模型决策依据。
半监督伪标签
利用未标注的 30 % IMDb 样本,基于 LoRA 模型的高置信度预测(>0.95 或 <0.05)生成伪标签,加入 TF‑IDF 训练集后再次训练得到 准确率提升 0.004。实验提示伪标签可在不增加人工标注成本的情况下略微提升基线,但需谨防教师偏差。
模型保存与部署
将 LoRA 适配器合并回原始模型,使用 save_pretrained 导出权重与 tokenizer,随后可通过 AutoModelForSequenceClassification.from_pretrained 直接加载进行在线推理。示例代码展示了对三条自定义影评的正向概率预测,便于快速验证部署效果。
结论与展望
本流水线证明了在资源受限环境下,LoRA 微调能够以极少的可训练参数实现接近全模型微调的性能,同时配合 TF‑IDF 基线提供可解释性基准。未来工作可探索:
- 更大上下文窗口(如 RoBERTa‑base)以缓解长评截断;
- 多模态情感分析,引入影评对应的海报图像;
- 通过集成多教师模型提升伪标签质量。
通过上述步骤,研发团队可快速复制并落地高效、可靠的文本情感分类系统。