574. CommonLit - Evaluate Student Summaries | commonlit-evaluate-student-summaries
输入
数据的输入格式如下:
'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 |
生效的技巧:
未生效的技巧:
注意: 推理脚本和输入数据集包含我在此未提及的额外技巧,例如模型的附加头部。本文仅概述主要要点。
此外,您可以在包含权重的数据集中找到每个模型的训练脚本。