返回列表

37th place solution

573. Kaggle - LLM Science Exam | kaggle-llm-science-exam

开始: 2023-07-11 结束: 2023-10-10 自然语言处理 数据算法赛
第37名解决方案
作者:Daniel Phalen(排名第36)
队友:Simon Veitner
创建时间:2023-10-11

第37名解决方案

首先,我要感谢我的队友Simon(@simonveitner)的合作。他确实是大部分工作的负责人。其次,我要感谢所有贡献数据集和公开笔记的人。我们似乎有任何想法后,总会在下周内看到它被公开发布(特别是@cdeotte、@mgoksu、@mbanei和@itsuki9180)。这是我第一次涉足NLP和LLM领域,整个过程非常富有启发性。

我们的解决方案基于高质量的RAG(检索增强生成)和模型集成。我们从@simjeg、@jasonzhang2022、@itsuki9180和@mgoksu那里获取了建模结果。我们要感谢@radek1的数据集,特别是他包含了检索上下文,以及@yalickj提供的300个高质量样本。我们还使用了@itsuki9180的集成权重优化方法。

上下文检索

早期我们清楚地意识到,根据训练集和测试集的生成方式,我们需要一些上下文来进行反向推理,然后依靠语言模型在上下文基础上进行推理。考虑到从5个答案中选择比生成问题更容易,我们希望小型模型能够匹配用于生成问题的大型LLM的工作。正如@phillippsinger在此处所指出的,存在一个性能上限,因为GPT-3.5偶尔会出错,例如早期竞赛讨论中指出的triskeles问题(抱歉,我现在找不到原始讨论了)。

最初的工作集中在@nbroad的60k数据集上,但我们很快意识到它缺少许多关键文章。随后我们转向更大的完整维基百科数据集,这允许我们使用非科学相关问题进行训练。进一步研究发现完整数据集仍缺失文章,因此我们解析并上传了自己的完整数据集。在自定义重排序模型和分节输入测试取得初步小成功后,@mbanei发布了现在著名的longformer笔记本和27万篇文章数据集,我们放弃了这项工作转而进行模型构建。

Simon做了大量测试不同嵌入模型的工作,我们最终选择了`bge-base-en-v1-5`(由@wuwenmin上传)。有趣的是,这个模型的表现优于大型模型。我们随后使用pyserini包中的`LuceneSearcher`进行查找。

模型与集成

这里没有太多要补充的。我们确实研究过除DebertaV2ForMultipleChoice之外的一些多项选择模型,但没有取得进展。我们最终确定了使用3个不同公开笔记本的集成,这些笔记本都采用DebertaV2ForMultipleChoice结合上下文查找。我们还使用了一个不带任何上下文的模型。

使用200个训练样本+300个高质量样本作为我们的集成训练集,我们采用了@itsuki9180提出的集成权重优化方法。

根据集成结果的概率表,我们计算了9小时窗口内剩余的时间,并计算出可以重新处理的最大样本数(基本上每剩余2小时可处理800个样本)。我们使用了@simjeg引入的Platypus 70B模型,在有限样本上重新训练了`lm_head`。这成为了决定性因素,因为该模型在私有榜单上的表现优于公共榜单,导致我们从公共榜单到私有榜单的排名大幅跃升!

贡献分解

改进项 分数提升
BM25上下文变更 +0.03
BM25基础模型 +0.02
DebertaV3集成 +0.02
对不确定样本使用Platypus 70B +0.02

未成功的尝试

  1. 证据过滤模型:我们修改了DebertaV2架构以包含这些模型,但并未提升结果。也许是我们训练方法不当,我们曾希望通过允许答案之间的对比来提高分数。
  2. 稀疏注意力长上下文模型,如`google/bigbird-roberta-large`。在我们的实验中这些模型也没有适当训练,尽管我们在这方面没有花费太多时间。
同比赛其他方案