六年了,我终于成为了 Kaggle GrandMaster 。
七年前注册时从没想到能走这么远,直到两年前还是九银两铜却一金难求,没想到这两年多来居然完成了我觉得这辈子都不可能完成的 GrandMaster 成就。
🥈 2019 PetFinder.my Adoption Prediction 32/2023
第一个拿到牌子的比赛,也是在 Kaggle 上参加的第二个比赛,当时还比较少见的多模态比赛 (图片+表格)。学会了简单的特征工程思路、xgb/lgb、交叉验证、提取图片 embedding、模型融合等很多基础技能。印象最深刻的是在前期因为找到一个强特,在 LB 上排了差不多半个月的 top1,虚荣感直接拉满。后期还有幸跟某 GM 组了队,学到了不少,也听到了赛圈不少八卦。可惜最终融合也没有上多少,PB 还掉了 10 名左右,以 32 名结束,喜获第一块银牌。
这个比赛应该还挺出名的,就是有个俄罗斯 GM 带队作弊拿了第一名花完了奖金,被人揪出来删号的那个比赛。
🥉 2019 iMet Collection 2019 - FGVC6 93/521 (solo)
一个 CV 比赛,交了个开源就跑路了,没想到抖了个铜牌,喜提 Kaggle Expert。
🥈 2019 Predicting Molecular Properties 102/2723
人造数据的一个表格赛,靠着疯狂肝 LGB 融合来到了铜牌位置,最后组了个用 GNN 的大佬,融合后拿到了银牌。
🥉 2020 NFL Big Data Bowl 2019 102/2038
这也是个表格比赛,预测 NFL 比赛相关结果的,deadline 之后会用 NFL 比赛的真实数据进行 rerun 了四次,我记得一开始还在银牌区,然后开始下滑,最终是变成了铜牌区的第一位。
印象中这是我参加的首个 kernel competition,之前都是提交 csv 文件的。比赛过程也是疯狂地尝试特征工程,赛后看到前排是用 transformer 做的。
🥈 2020 University of Liverpool - Ion Switching 45/2618
没怎么做,临结束前两天队友发现了有前排的高分开源开了有十分钟又取消了开源,及时下载下来提交上去,也没有被取消排名,直接摸了个高位银牌。
回旋镖:最近的 LEAP 回来抄了个开源的 seq2seq 模型,为 solo 金帮了大忙。
🥈 2020 SIIM-ISIC Melanoma Classification 155/3314
完全忘了我做了啥,应该是蹭的银牌。
这比赛也挺出名,因为赛后有个来自中国的代打牌子机构被一锅端了,然后 Kaggle 开启了大范围删号,某些 master 的号都被删了。
🥈 2021 Riiid Answer Correctness Prediction 74/3395
非常经典的时序比赛,没记错的话可能是首次在 Kaggle 上采用的流数据预测。当时的 kernel (现在叫 notebook) 环境受限严重,讲道理这个是工程题,海量的数据要在当时 16G 内存里完成处理,预测,融合等,还需要实现在线学习,着实难搞,一天五次提交都出现 submit error 都是常有的事。
我们还是用的特征工程+LGB,前排又是 transformer。
🥈 2021 Shopee - Price Match Guarantee 44/2426
多模态比赛,锻炼了 transformers 调包能力,关键的 trick 是队友想到的,做了二次召回,几行代码就确保了银牌区,然而没能再往上优化。
🥈 2021 CommonLit Readability Prize 90/3633
第一次参加纯 NLP 比赛,主要是队友带飞,进一步学习了调包,基本清楚了 NLP 的上分套路和流程。
🥈 2022 Optiver Realized Volatility Prediction 190/3852
老队友让我蹭的。😂
这比赛据说因为 leak 的问题闹的挺大。但话说回来,没有 leak 的话这种实盘量化的赛题可能抖动会很大。
🥈 2022 Feedback Prize - Evaluating Student Writing 77/2060
又是个 NLP 赛题。没找到关键上分点,不过也能跑跑模型融合到了个银牌。买了台 3090 整机,决定多打点 NLP 比赛。至此银牌数已达到九枚,后面好几个比赛我给自己取的队名都叫「摸银校尉」。
🏅 2022 NBME - Score Clinical Patient Notes 8/1471
四年多的铺垫下,终于拿到了首金,终于成为 master!
这个比赛一开始就做的比较认真,从第一个月起就一直在 top3 位置左右,做了很多训练模型的常规套路,更关键的是深入看了 bad case 做好细致的后处理优化、研究了如何不泄露地给未带标签数据做好伪标签。
途中还组了阁子老师,这题 cv 不是很稳,强如阁子老师也没摸透。开榜前那天掉到了 LB 14 名,一度以为将迎来自己的第十块银牌。
🏅 2022 U.S. Patent Phrase to Phrase Matching 11/1889
没想到首金之后这么快又开张了。
这题主要是有大 trick,用与没用相差巨大。主力是队友,我的贡献很少。
大腿抱得好,金牌不会少。
🥉 2022 Foursquare - Location Matching 60/1079
文本匹配召回类型的赛题。主要是多语种 embedding 各种距离特征召回,然后做特征精排。也是比较考验工程能力,数据量大内存紧张,还得做召回、精排两阶段。
这个比赛因为 kaggle 设置比赛的工作人员的疏忽,留下了一个非常难发现的 leak,前排很多日本选手直到最后一天「不约而同」地利用这个 leak 上分冲到了绿区。在其他选手的抗议下,kaggle 重新设置了一个非 leak 绿区,又付了一份奖金,但原先的榜、牌子都不再改变。
🥉 2022 Google AI4Code – Understand Code in Python Notebooks 63/1135 (solo)
光微调开源 notebook 就能拿到铜牌,需要很多算力,没怎么认真研究。
🏅 2023 OTTO – Multi-Objective Recommender System 15/2587
经典推荐赛题,学习了如何打推荐题的流程,全靠 GM 队友全力 carry。
这个赛题估计很多人都记得,某两个 GM 被爆出长期白嫖方案相互 py 导致身败名裂而最终删号,同时被他俩祸害的前排队伍被取消了名次,使得我们也从原先的第 19 名上升到第 15 名,幸运地获得了金牌。
🏅 2023 Learning Equality - Curriculum Recommendations 3/1057
至今拿到过的最高名次!文本召回推荐类型的赛题,把从 OTTO 和芒果推荐赛学到的经验应用上来了,从一开始就设立了健壮的召回、精排两阶段框架和比较稳定的 cv,队友的对比学习和滂湃算力帮了大忙,一路上比较顺利,从第一个月开始就一直在 top3 直到最后。
第一次来到绿区,后续文档、PPT、与老外视频会议交流甚至收外汇奖金等都跟过了一遍。还差一块 solo 金即成 GM,得开始 solo 之旅了。
🥉 2023 Stable Diffusion - Image to Prompts 107/1231 (solo)
又是 Fork 开源做融合的一个比赛,不是很投入。
🥉 2023 Parkinson's Freezing of Gait Prediction 84/1379 (solo)
同上,外加抖上去拿到的铜牌。
🥉 2023 Predict Student Performance from Game Play 116/2051 (solo)
同上
🏅 2023 Kaggle - LLM Science Exam 15/2662
Kaggle 的首个大模型比赛,但这个题的重点是在于 RAG,同样也是受限于 notebook 环境,要在一大本 wikipedia 里做召回,这内存限制就搞得很狼狈。搞笑的是这比赛过后一个月,Kaggle 就把 notebook 环境改成了 30G 内存。
半路被招募入队,这题我主要是提供了一些召回工程上的优化和多通道召回试验。
最终拿到金牌的过程比较曲折,首先是最后一天我们的 LB 跑到了第二,都在准备奖金怎么花了,结果开榜差一名金牌!然后过了一天,前面有队伍被取消成绩了,我们幸运获得了一块金牌。
🥈 2023 CommonLit - Evaluate Student Summaries 48/2064
我记得这个比赛一开始我就断层领先排在了第一差不多半个月,但感觉 cv 并不是很稳,后面掉到了银牌区就还是组队了,组队后我俩都没有好好做。
后面看了前排分享后感觉其实我们的大思路是对的,可惜没有坚持下来。
🥉 2023 Child Mind Institute - Detect Sleep States 129/1877 (solo)
又一个 fork 开源微调就跑路的例子。
这个比赛过后,天梯积分排名来到了 top108,下一步目标是天梯 top100。
🥈 2024 Enefit - Predict Energy Behavior of Prosumers 38/2731 (solo)
依靠在线学习曾经挤入金牌区一段时间,开榜前掉到了 21 名,最后在实盘 rerun 中继续掉到了 38 名,喜提第一块 solo 银。
这比赛考虑了好多工程、效率方面的优化,就为了多 online learning 几次,结果好像不是很重要,做个 target 变换都比在线学习好了。
分析了下为啥 solo 银这么少,可能是如果有机会拿金牌就抱团组队了,或者没机会就随便搞搞拿了铜牌。
🏅 2024 Learning Agency Lab - Automated Essay Scoring 2.0 5/2706
这个比赛再次证明,多做数据分析比埋头跑模型靠谱得多,最近 Kaggle 老喜欢在不可见测试集里埋彩蛋,这就不是一句 trust your cv 能解决得了的问题了,关键是如何模拟测试集的分布并能通过 LB 反映出来,这可太头痛了。
这比赛还以为挺稳的,断层领先两个月。没想到我们的 deberta 在 private 居然没打过开源的 LGB,幸亏融了一下开源,不然就翻大车了。
这个金牌拿下后,天梯 top100 目标达成了。
🏅 2024 LEAP - Atmospheric Physics using AI (ClimSim) 8/693 (solo)
这个比赛的特点是数据量巨大,需要消耗大量算力,上分逻辑和框架倒不是很难,围绕着 LSTM 一顿魔改、训练调参,最后上了全部 700G 数据,二组四卡 4090 一顿乱跑,融上金牌区。
solo 真是容易被搞心态,特别是这比赛还有 leak,主办方又没经验,而且还有非常多 GM/master 在虎视眈眈,要不是有沉没成本,按我这么佛系的人早就放弃了。
最后一天掉到了第 10,而且最后的融合真是一点分没上,心态快崩了,幸亏最后还是保住了 solo 金。
这比赛因为 leak 重置过一次,主办方多次申明不能用 2D->1D 的方案,然而还是止不住日本人挖 leak,如果不是结束前几天有小号出来指正,我感觉结果会跟 Foursqure 一样最后一天日本人用 leak 占领榜单。主办方居然是在道德高地上压住了挖 leak 的日本人。
其实除了拿到牌子的比赛,还有 60 多个比赛是徒劳无功。
回顾了这一路,每一句轻描淡写背后肝都在隐隐作痛。
作为一个普通人,不可能有孤胆连夺五金的天才之举,甚至很多比赛都是抱大腿、运气好得来的牌子。
对于很多方面都不如意的我来说,Kaggle 给我带来了什么,除了认识一群有趣的人之外,好像什么也没有。
但我想,只要能坚持下来,努力过,不作恶,这就够了。