返回列表

🥈24th in two weeks and `No space left on device`!

576. Bengali.AI Speech Recognition | bengaliai-speech

开始: 2023-07-17 结束: 2023-10-17 音视频处理 数据算法赛
两周内获得24名并解决"设备上无剩余空间"问题

🥈两周内获得24名并解决"设备上无剩余空间"问题!

作者:Bayartsogt Yadamsuren
比赛排名:第24名
发布时间:2023年10月25日

首先,非常感谢大家!

作为后来参与者,阅读@imtiazprio@reasat@tugstugi@hengck23@mbmmurad等人的深刻讨论非常有帮助,感谢大家分享的经验!

解决方案概述

给未来的我的重要教训!

  • [设备上无剩余空间] 直接编写自定义数据集类!!!
    • 参考代码:train2.py
    • 如果CPU核心足够,直接增加dataloader_num_workers。使用datasets.Dataset.set_transform预处理输入又复杂又高效
    • 保持简单!在__getitem__中直接从文件系统读取并实时处理
  • [质量优于数量] 验证集0.475 vs 训练集(过滤后)0.421 😂
    • 对大数据集进行过滤显然很有帮助!
  • [手动检查输出] 仔细检查验证数据上的模型错误
    • 这帮助我发现标点符号(dari、逗号、问号等)被错误计为替换和删除
  • [不要在小事上拖延] 本可以更早测试不同的chunk_length_s参数,但直到最后才做 → 这并不是说没有尝试训练Whisper模型!

对排行榜过拟合的愧疚!

由于测试数据(分布外数据)与训练数据集差异很大,实际上存在对公共排行榜的过拟合问题。

!kaggle competitions submissions -v bengaliai-speech >> ./bengali-speech-submissions.csv
df = pd.read_csv("./data/bengali-speech-submissions.csv")
np.corrcoef(df.publicScore, df.privateScore)[0, 1]
# 输出:0.990815988867224
...
sns.lineplot(df, y="score", x="date", hue="split")

最后总结

这一切都是关于学习!
尽管总是感到沮丧,觉得本可以更接近目标或做得更多,但我很感谢这段学习旅程,这也是我最初加入Kaggle的原因!💚

同比赛其他方案