SentimentAnalysisModel/WeiboSentiment_Finetuned/GPT2-Lora/README.md
这是一个基于GPT2的微博情感二分类模型,采用LoRA(Low-Rank Adaptation)微调技术。通过PEFT库实现的LoRA微调,只需训练极少量参数就可以让模型适应情感分析任务,大幅降低计算资源需求和模型体积。
使用微博情感数据集(weibo_senti_100k),包含约10万条带情感标注的微博内容,正负向评论各约5万条。数据集标签:
GPT2-Lora/
├── train.py # 训练脚本(基于PEFT库的LoRA实现)
├── predict.py # 预测脚本(交互式使用)
├── requirements.txt # 依赖包列表
├── models/ # 本地存储的预训练模型
│ └── gpt2-chinese/ # 中文GPT2模型及配置
├── dataset/ # 数据集目录
│ └── weibo_senti_100k.csv # 微博情感数据集
└── best_weibo_sentiment_lora/ # 训练好的LoRA权重(训练后生成)
LoRA (Low-Rank Adaptation) 是目前最流行的参数高效微调技术:
安装所需依赖:
pip install -r requirements.txt
主要依赖包:
pip install -r requirements.txt
python train.py
训练过程会自动:
./best_weibo_sentiment_lora/python predict.py
运行后将进入交互模式:
uer/gpt2-chinese-cluecorpussmall 中文预训练模型./models/gpt2-chinese/| 方法 | 可训练参数占比 | 模型文件大小 | 训练时间 | 推理速度 |
|---|---|---|---|---|
| 全参数微调 | 100% | ~500MB | 长 | 慢 |
| Adapter微调 | ~3% | ~50MB | 中等 | 中等 |
| LoRA微调 | ~0.5% | ~2MB | 短 | 快 |
使用设备: cuda
LoRA模型加载成功!
============= 微博情感分析 (LoRA版) =============
输入微博内容进行分析 (输入 'q' 退出):
请输入微博内容: 这部电影真是太好看了,我非常喜欢!
预测结果: 正面情感 (置信度: 0.9876)
请输入微博内容: 服务态度差,价格还贵,一点都不推荐
预测结果: 负面情感 (置信度: 0.9742)
请输入微博内容: q
train.py 时会自动下载预训练模型,请确保网络连接LoRA通过在原始线性层旁边添加两个小的矩阵A和B,使得:
h = W₀x + BAx
其中:
这种设计既保持了预训练模型的知识,又能高效地适应新任务。