昇思AI学习赛于2023年3月正式开启,面向全球AI开发者,赛题与深度学习紧密结合,多重好礼等你来拿。文本分类研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法,在AI领域承担了重要角色。本赛题旨在让参赛者熟悉MindSpore并锻炼参赛者使用MindSpore进行文本分类的能力。
为熟悉华为的mindspore框架和了解NLP,我参加了文本分类这一赛道。
数据集(由赛方提供)
目标
训练模型,基于用户的评论文本预测与之对应的用户打分,0-5星,评价指标accuracy越高越佳
使用模型:LSTM
在自然语言处理中常用RNN网络,但RNN细胞结构简单,容易在训练中产生梯度消失问题。例如RNN网络在序列较长时,在序列尾部已经基本丢失了序列首部的信息。为了克服这一问题,LSTM(Long short term memory)模型被提出,通过门控机制来控制信息流在每个循环步中的留存和丢弃。
Tricks
1.数据增强:通过回译的方式将训练数据扩增至原来的3倍
2.模型集成:通过bagging的方式集成3个训练好的模型
3.修改类别相关的参数,使得适应本次任务
4.尝试了fasttext,glove等其他版本的词向量,但模型表现不佳
5.针对focal loss调整了模型权重,试图解决类别不均衡的问题,但模型表现不佳
不足
- 本次任务并未进行超参数调整,后续调参的改进将进一步提升模型表现
- 本次任务并未使用预训练模型,如使用Bert或者如GPT等foudation model或进一步提升模型表现
MindSpore API存在问题
mindspore1.8
存在问题: Focal Loss
中的log_softmax
操作进行反向传播时存在问题:需要进行更换部分操作:
x = mindspore.ops.Softmax(dim)(x)
x = mindspore.ops.log(x)
开源仓库地址
iLoveData解决方案https://xihe.mindspore.cn/projects/tranquility/must/train