persuda.py: 制作伪标签
pretrain_uer-large.py:对nezha进行进一步预训练代码
训练所使用平台为$python==3.7$,$pytorch==1.11.0$,$cudatoolkit==11.3$,3090显卡。 初始化环境:
sh init.sh
其中pytorch安装后,可能会出现与显卡驱动不匹配的问题需要手动解决,输入:
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
使用了大赛提供的4w训练集和100w无标签数据
使用了nezha-base预训练模型.可以通过https://github.com/lonePatient/NeZha_Chinese_PyTorch 获得.
模型上游使用nezha生成高质量的word embedding,再将word embedding输入到global pointer中生成标签。
- 利用100w无标签数据对nezha-base进行mlm任务预训练
- 利用4w标签数据训练3-4个模型,对test集进行预测,生成伪标签
- 将1w伪标签和4w标签数据混和在一起,在第一步得到的预训练结果上进行微调
利用4w标签数据训练3-4个模型,从100w无标签数据中随机抽取1w数据生成伪标签,加入到训练集中
这里只给出了在10轮mlm预训练后得到的nezha-mlm上进行微调训练的过程,使用的训练数据为4w的标注数据和1w的伪标签。
启动训练:
conda activate pyt
sh train.sh
前期训练阶段将官方给出的4w标注训练集划分为train和dev集,划分比例为9:1,选取的划分随机种子为42。