573. Kaggle - LLM Science Exam | kaggle-llm-science-exam
首先,感谢比赛主办方举办这次竞赛。同时,也祝贺所有坚持到最后完成这场艰难比赛的参赛者。
很遗憾,我的解决方案在公开排行榜上出现了过拟合,因此与金牌失之交臂。但我仍希望在此分享解决方案的总结。
根据相关讨论所述,维基百科数据中存在部分数字甚至段落缺失的情况。因此,我基于CirrusSearch导出的数据创建了完整的维基百科纯文本。
我结合了两种检索方法:
为每篇维基百科文章创建了基于二元语法(2-gram)TF-IDF的倒排索引。参考了此代码库实现。由于索引全部文章会导致搜索速度缓慢,我根据创建时间和受欢迎程度仅索引了约一半的文章。
使用问题和答案作为查询,从倒排索引数据库中提取相似度较高的维基百科文章。检索示例可参考此笔记本。
将提取的文章按句子分割,通过TF-IDF计算句子与查询的相似度,提取关键句子后,将其前后各三个句子作为补充上下文。
将维基百科全文按句子分割成约25个词组成的文本块,使用sentence-transformers/all-MiniLM-L6-v2模型向量化后创建Faiss索引。该索引经过量化和压缩后约为7 GB。
使用问题和答案作为查询,从Faiss索引中提取相似度较高的文本块。
将提取的文本块及其前后相邻的文本块合并作为上下文使用。
整体结构与基线笔记本基本一致: