返回列表

28th-place solution

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

开始: 2023-07-11 结束: 2023-10-10 自然语言处理 数据算法赛
第28名解决方案 - Kaggle LLM科学考试

第28名解决方案

作者:TDK8823 | 发布日期:2023年10月12日 | 比赛排名:第28名 | 得票数:19

首先,感谢比赛主办方举办这次竞赛。同时,也祝贺所有坚持到最后完成这场艰难比赛的参赛者。

很遗憾,我的解决方案在公开排行榜上出现了过拟合,因此与金牌失之交臂。但我仍希望在此分享解决方案的总结。

用于检索的维基百科数据

根据相关讨论所述,维基百科数据中存在部分数字甚至段落缺失的情况。因此,我基于CirrusSearch导出的数据创建了完整的维基百科纯文本。

上下文检索

我结合了两种检索方法:

1. 二元语法TF-IDF倒排索引

为每篇维基百科文章创建了基于二元语法(2-gram)TF-IDF的倒排索引。参考了此代码库实现。由于索引全部文章会导致搜索速度缓慢,我根据创建时间和受欢迎程度仅索引了约一半的文章。

第一步

使用问题和答案作为查询,从倒排索引数据库中提取相似度较高的维基百科文章。检索示例可参考此笔记本

第二步

将提取的文章按句子分割,通过TF-IDF计算句子与查询的相似度,提取关键句子后,将其前后各三个句子作为补充上下文。

2. Faiss向量检索

将维基百科全文按句子分割成约25个词组成的文本块,使用sentence-transformers/all-MiniLM-L6-v2模型向量化后创建Faiss索引。该索引经过量化和压缩后约为7 GB。

第一步

使用问题和答案作为查询,从Faiss索引中提取相似度较高的文本块。

第二步

将提取的文本块及其前后相邻的文本块合并作为上下文使用。

模型方案

整体结构与基线笔记本基本一致:

  • 训练了两个基于deberta-v3-large的模型(使用不同的训练数据集)
  • 使用以下7个上下文进行推理:
    • 来自二元语法TF-IDF倒排索引的2个上下文
    • 来自Faiss索引的5个上下文
  • 通过简单平均法对两个模型的输出结果进行集成
同比赛其他方案