第20名解决方案 - CommonLit评估学生摘要竞赛
解决方案作者:Moro (Kaggle Master)
竞赛排名:第20名
发布时间:2023年10月13日
感谢组织者举办这次有趣的竞赛,也感谢所有参与者的共同努力。以下分享我的解决方案。
解决方案概要
- 添加
prompt_text特征后,本地验证分数显著提升。实验发现测试集中的prompt_text非常长(超过4000字符),因此将最大长度设置为5000,这是本方案的关键点
- 采用加权集成策略:deberta-v3-large + LightGBM = 7:3

1. 验证策略
- 采用GroupKFold 4折交叉验证(groups=prompt_id)
2. deberta-v3-large 模型
- 输入处理:
- 输入格式:
answer: 摘要文本 [SEP] title: 标题 | question: 问题 | text: 完整文本
- 分词器最大长度:5000
- 未进行文本清洗
- 模型配置:
- 预训练模型:microsoft/deberta-v3-large
- 冻结前18层参数
- 使用CLS token作为输出头
- 位置编码最大长度扩展至5000
- 训练参数:
- 损失函数:SmoothL1Loss
- 优化器:Adam
- 批大小:2
- 训练轮数:10
- 学习率调度:余弦退火
- 预测配置:
- 最大token数:5000
- 批大小:1
- 仅使用2折(4折会导致超时)
3. LightGBM 模型
- 特征维度:141个(包括词数、段落数、句数、空格数等统计特征)
- 训练两个独立模型(分别预测内容分和表达分)
4. 模型集成
- 采用加权平均法(权重通过训练集OOF调优确定)
- 最终权重分配:deberta-v3-large : LightGBM = 7:3
| ID |
模型 |
本地CV |
公开榜 |
私有榜 |
| 1 |
Deberta-v3-large (4折) |
0.4964 |
超时 |
超时 |
| 2 |
Deberta-v3-large (2折) |
0.5007 |
0.461 |
0.476 |
| 3 |
LightGBM |
0.5532 |
0.495 |
0.516 |
| 4 |
集成模型(2+3) |
0.4822 |
0.455 |
0.461 |
其他尝试
- 池化层:效果基本相同
- 隐藏层数量:无明显差异
- LSTM/1D卷积层:效果不佳
- 分层设置学习率:未带来提升
- Longformer模型:无效
- 使用Llama2摘要prompt_text:无效
添加prompt_text特征显著提升了本地验证分数,处理测试数据的长文本能力同样关键。虽然该提交未达奖牌线,但因本地分数可靠而被选为最终提交,对此决定感到满意。遗憾之处在于仅在竞赛结束前两天意识到文本长度问题,未能及时尝试4折模型。
感谢您的阅读。