ASC20 比赛记录 - 3.

ASC20 比赛因为疫情的原因,proposal 的提交延期了一个多月,所以中间我也休息了一段时间。最近随着诸多工作的完成,ASC 20 的比赛之旅也渐渐到了尾声。

题目

这一次的赛题是有关 NLP 方向的,要在只使用 Pytorch 框架的情况下完成 Cloze 下游任务的设计,并且以准确率作为最终的分数计算。

主办方并未提供 baseline,只提供了数据集,格式为 json,具体如下:

    {
        'article': '...',
        'options': [[words * 4] * 20],
        'answers': ['A','B'... * 20]
    }

目前的进展及思路

在之前的训练的过程中出现了一个比较恼人的问题,最早我采用的是 4 分类,但是网络会出现不收敛的问题,我尝试了许多的手段(正如之前所提到的那样)也是没有办法去解决。后来经过检查和与师兄的讨论才发现作 4 分类本身就比较难作拟合——可能根本就没有拟合,毕竟样本太少,每一部分的文字又太多,导致 embedding 出来的矩阵差距较小。

后来采用了 2 分类效果就好了很多,因此目前训练的成果已经成功追上了 1 队。而且由于 Transformers 在训练的时候能够自动判断 GPU 的环境使用分布式训练,所以还是很顺畅地做了分布式训练。