返回首页
独立项目详情页

词典增强的 BERT 双分支情感分类与 Qwen2-LoRA 微调

从双分支建模到蒸馏量化与 LoRA 微调

这个项目不是单点实验,而是一条完整的技术演进路线:先用词典监督增强 BERT 的局部情感感知,再把模型推进到蒸馏、量化和 Qwen2 LoRA 微调阶段,既展示建模创新,也展示工程落地能力。

PyTorchHugging FaceBERTQwen2LoRA/QLoRAPEFT知识蒸馏INT8 量化
查看 GitHub
BERT 双分支准确率 95.50%
Qwen2 + LoRA 准确率 95.83%
仅训练约 9M 参数(0.6%)

项目挑战

单纯 BERT 微调已有不错的基线水平,进一步提升需要让模型显式感知局部情绪词、程度副词和否定词,而不是只依赖端到端隐式学习。同时需要在同一项目中展示从创新建模到工程落地的完整能力。

解决思路

核心思路是“多任务学习 + 先验知识注入”:辅助分支的梯度回传到共享编码器,迫使 BERT 关注情感关键位置。词典标注提供的是弱监督信号,即使词典覆盖不完整,也能通过多任务正则化提升句级分类效果。蒸馏和 LoRA 则分别验证了压缩和扩展两个方向的可行性。

工程实现

项目按七个阶段组织脚本,每个阶段独立可运行,输出标准化评估报告。双分支训练中通过 α 系数平衡主辅 loss,词典标注用 -100 忽略特殊 token,量化时只量化 Linear 层、保留 Embedding 和 LayerNorm 的精度。

项目价值

这个项目最能体现 NLP 项目深度:从结构创新(双分支)到知识融合(词典监督)再到部署优化(蒸馏/量化/LoRA),展示了我不是只会套用预训练模型,而是会围绕任务难点设计针对性方案。

项目拆解

亮点、过程与结果

核心亮点

设计词典增强的主辅双分支 BERT:主分支基于 [CLS] 做句级分类,辅助分支对每个 token 输出情感标签,用情感词典做监督,双分支准确率 95.50%(相比基线提升 1.75 个百分点)。
基于 4 层 DistilBERT 完成知识蒸馏与 INT8 量化,模型从 172MB 压缩到 91MB,准确率无损保持 93.75%。
新增 Qwen2-1.5B + LoRA/QLoRA 方案,仅训练约 9M 参数(0.6%),准确率达到 95.83%,LoRA 权重仅约 37MB。

实现过程

对 ChnSentiCorp 9,600 条训练样本做字符级 dropout 与词序打乱增强,扩展至约 19,200 条。
构建情感词典(800+ 情感词 + 否定词 + 程度副词),生成 token 级监督标签。
训练词典增强双分支 BERT,主分支做句级分类,辅助分支做 token 级情感预测。
将 12 层 BERT 蒸馏到 4 层学生模型(T=3.0, α=0.7),再做 INT8 动态量化。
接入 Qwen2-1.5B,通过 PEFT 注入 LoRA 适配器(r=8, α=16),QLoRA 4bit 加载训练。

结果总结

双分支设计相比基线提升 1.75 个百分点,token 级辅助任务验证了词典监督信号的有效性。
蒸馏 + 量化将模型从 393MB 压缩到 91MB,推理速度提升约 2.5 倍,准确率无损。
Qwen2 + LoRA 以仅 0.6% 可训练参数达到最优效果,补足了 LLM 微调能力展示。