446. CommonLit Readability Prize | commonlitreadabilityprize
感谢主办方举办了这场有趣的比赛,同时也感谢 @andretugan 和 @rhtsingh 提供的基线代码。
我的解决方案基于几种不同架构的集成。主要使用了 roberta-large、deberta_large 和 electra_large。其他模型的效果稍逊一筹。
| 模型 | Public 成绩 | Private 成绩 |
|---|---|---|
| roberta-large-mnli | 455-458 | 465-470 |
| roberta-large | 459 | 462 |
| deberta_large | 464-466 | 457-459 |
| electra_large | 466-467 | 470-474 |
| 集成模型 | 446-450 | 449-450 |
训练流程如下:
对 BERT 层使用了差异化学习率。
尝试了不同的方法,但效果都差不多:
last_layer_hidden_states = roberta_output.hidden_states[-1]
或者
last_layer_hidden_states = roberta_output.hidden_states[-2]
或者
layer_hidden_states1 = roberta_output.hidden_states[-1]
layer_hidden_states2 = roberta_output.hidden_states[-2]
last_layer_hidden_states = torch.cat((layer_hidden_states1, layer_hidden_states2), 2)
以及
weights = self.attention(last_layer_hidden_states)
y = torch.sum(weights * last_layer_hidden_states, dim=1)
或者
y = torch.mean(last_layer_hidden_states, 1)
等等。
特征工程和重新初始化层参数的方法也没有奏效。