返回列表

2nd Place Solution

574. CommonLit - Evaluate Student Summaries | commonlit-evaluate-student-summaries

开始: 2023-07-12 结束: 2023-10-11 智能评测 数据算法赛
第二名解决方案

第二名解决方案

作者: Ivan Aerlic (Kaggle Grandmaster)
发布日期: 2023年10月12日

输入

数据的输入格式如下:

'Think through this step by step : ' + prompt_question + [SEP] + 'Pay attention to the content and wording : ' + text + [SEP] + prompt_text

池化方法 [高影响]

输入: [TOKEN] [TOKEN] [SEP] [TOKEN] [TOKEN] [SEP] [TOKEN] [TOKEN]
头部掩码: [0] [0] [1] [1] [1] [0] [0] [0]

我没有使用模型分词器创建的常规注意力掩码,而是使用了一个只在学生答案(文本)部分为1、其余所有标记为0的头部掩码。模型消耗的注意力掩码仍使用常规注意力掩码,但平均池化时使用了头部掩码。

这是我所使用的所有技巧中影响最大的。它大幅提高了所有折的交叉验证得分,特别是对于困难提示:3b9047 和 814d6b。在我看来,这是本次比赛的"魔法"所在。

提示问题增强 [中等影响]

我使用LLM为每个提示创建了10个额外的提示问题变体。在训练期间使用这些变体进行数据增强,推理时使用默认提示问题。所有折中我总共使用了44个不同的提示问题。

辅助类别 [中等影响]

我在比赛中使用了辅助类别,这些类别来自Feedback 3.0的目标类别:
['cohesion','syntax','vocabulary','phraseology','grammar','conventions']。

为创建这些标签,我使用在Feedback 3.0数据上训练的模型,并将本次比赛的数据通过那些模型运行。我只使用了本次比赛的'text'列,从而生成了用于本次比赛的伪标签。

我按以下方式使用辅助类别:(loss * .5) + (aux_loss * .5)

辅助类别每隔一步使用一次。

Feedback 3.0比赛由The Learning Agency Lab主办,据我所知,这是合法的技术手段。

最大长度

初始训练期间模型在896-1280的最大长度范围内训练。在伪标签轮次中,它们在1280-2048的最大长度范围内训练。伪标签使模型能够在更高的最大长度下学习。

推理期间,large模型使用1792,base模型使用2048。

伪标签 [中等影响]

当分组kfold的交叉验证得分达到.4581后,我开始创建伪标签。

伪标签使我能够有效训练deberta-v3-base模型。在伪标签之前,我无法训练base模型。它们还允许我在训练期间增加最大长度。

伪标签将交叉验证得分从.4581提高到.4476

模型使用原始标签和伪标签的连接进行训练。

最终集成(伪标签)


模型名称 训练最大长度 推理最大长度 头部结构 模型交叉验证得分
microsoft/deberta-v3-large 2048 1792 平均池化 + LSTM层池化 .460
microsoft/deberta-v3-base 2048 2048 平均池化 + LSTM序列池化 .468
OpenAssistant/reward-model-deberta-v3-large-v2 2048 1792 平均池化 + LSTM层池化 .464
microsoft/deberta-large 2048 1792 平均池化 + 线性层 .466
microsoft/deberta-v3-large 1280 1792 平均池化 + LSTM序列池化 .461



生效的技巧:

  • 分层学习率衰减
  • 冻结层(底部8层)
  • LSTM层池化
  • LSTM序列池化
  • 关闭Transformer主干中的随机失活
  • 头部中的多样本随机失活

未生效的技巧:

  • AWP
  • SWA

注意: 推理脚本和输入数据集包含我在此未提及的额外技巧,例如模型的附加头部。本文仅概述主要要点。

此外,您可以在包含权重的数据集中找到每个模型的训练脚本。

同比赛其他方案