362. Google QUEST Q&A Labeling | google-quest-challenge
NER(命名实体识别):我们预训练了 NER 模型(基于 bert-base),用于将代码块替换为特殊标记 [CODE]。
正则表达式:我们清理了 LaTeX 片段并将其替换为 [MATH] 标记。
截断策略:双向截断(如果序列长度超过 450 个 token,则截断中间部分)。
最大序列长度:450。
模型架构:roberta-large。
预训练:是(来自 transformers 库)。
模型设计:孪生双编码器(问题-答案对的点积 -> sigmoid)。
池化策略:[CLS] token。
优化器:AdamW(来自 transformers 库)。
最大梯度范数:5。
轮次:5。
Batch 大小:8(1 * 8 累积步数)。
学习率 (LR):2.5e-05。
学习率调度器:线性。
预热步数:50。
随机种子:228 :)
融合对象:7 折模型。
折划分策略:GroupKFold。
融合策略:概率平均。
对于每个目标:
最后,将 bin 归一化到 (0, 1) 范围。
TARGET-EPSILONs(针对每个目标)通过袋外预测(来自 7 折)进行估算。
SWA(随机权重平均):已实现,但没来得及提交。
类别特征:与双编码器输出拼接。没有提升。
额外数据:添加了一些额外数据以填补部分有缺陷的目标。没有帮助。
组合截断策略:不同的截断策略(左侧、右侧、双侧和中间部分)作为 TT 增强进行了组合。没有帮助。
不同池化策略:平均池化,最后 N 层的平均池化。[CLS] 是最好的。
冻结层:差分冻结、全冻结、仅冻结 n 层等。不冻结效果最好。
复现我们实验的所有代码可以在这里找到:
https://github.com/alexeykarnachev/kaggle_google_qa_labeling