返回列表

4th place solution

647. Al Mathematical Olympiad - Progress Prize 2 | ai-mathematical-olympiad-progress-prize-2

开始: 2024-10-17 结束: 2025-04-01 数学与计算 AI大模型赛
第四名解决方案 – AIMO 推理挑战赛
作者: Søren Ravn Andersen (MASTER)
发布时间: 2025 年 4 月 17 日
竞赛排名: 第 4 名

第四名解决方案 – AIMO 推理挑战赛

摘要

本解决方案基于单个量化的 14B DeepSeek 模型,使用简单的固定推理策略,没有时间管理或系统提示。我专注于稳健性而非榜单调优,通过在自定义数学问题集上进行本地验证来避免过拟合。尽管设置简单,但该设置在私有榜单上表现出乎意料地好。

1. 模型

我使用了 DeepSeek-R1-Distill-Qwen-14B-AWQ-4bits 模型,具体是由 casperhansen 提供的 AWQ 量化版本,可在 Hugging Face 和 Kaggle 上获取:

https://www.kaggle.com/models/konstantinboyko/qwen-14b-awq-casperhansen

像许多人一样,我发现 14B 模型是一个很好的折衷方案,介于更大的 DeepSeek 32B 的质量和 7B 的速度之间。蒸馏版本使得在 Kaggle 上高效运行成为可能,同时仍能提供强大的推理性能。

2. 动机

我的主要动机是保持简单并避免过拟合公共榜单。我采取了两项具体措施来支持这一点:

  1. 本地验证是使用一组 50 个精选问题完成的——混合了 AIME、AIME 2025 和提供的参考问题。对于每个模型或参数更改,我都运行了多次验证传递,每次都对问题进行洗牌。这比仅依赖公共榜单给了我更稳定和真实的模型性能图景。

  2. 生成过程中未使用时间管理。虽然许多强大的解决方案依赖于动态 token 分配,但我选择了固定策略——将 token 和序列平均分配给 50 个问题。由于问题是随机顺序提供的,时间管理的有效性变得对问题序列极其敏感。这可能解释了公共 Notebook 结果中看到的一些大幅波动。

我没有为了榜单分数进行调优,而是仅使用公共集来帮助选择 max_tokens 和序列数量的值——优先考虑吞吐量而非分数。这种方法故意保守并专注于稳健性。鉴于此,最终结果出乎意料——但在这类竞赛中并不罕见,榜单大幅震荡是很常见的。

3. 推理

推理使用 vLLM 0.7.3 配合 FlashInfer 0.2.2 执行。

我使用了单个提示。遵循 DeepSeek 的使用建议,我没有使用系统提示。相反,我将指令直接附加到用户消息中。这似乎改善了我的验证集上的输出质量,所以我 throughout 保持了这种方法。

我还测试了不同的采样设置:
• temperature 在 0.6 到 0.8 之间
• max_p = 0.95

但是,与大多数公共 Notebook 中使用的默认设置相比,我没有看到明显的改进。最后,我坚持使用常用设置:
temperature = 1.0, min_p = 0.01, 和 top_p = 1.0。

4. 最终备注与致谢

除了根据 token 和序列吞吐量选择最佳模型变体之外,我没有应用任何后处理——而不是榜单分数。我选择了在 50 个验证问题上生成最多内容的配置,这给出了更一致的结果。

一些致谢:
• DeepSeek – 因为在竞赛中期发布了 R1 推理模型。这是一个游戏规则改变者,并迅速成为几乎所有顶级解决方案的核心。
• Md Boktiar Mahbub Murad 和其他人 – 因为公开分享了基于 DeepSeek 的 Notebook,这帮助震动了榜单并启发了许多人。
• Casper Hansen – 因为提供了与 vLLM 平滑配合工作的 AWQ 量化 14B 模型,使本解决方案成为可能。

致谢

再次感谢 Aimo 和 Kaggle 组织本次竞赛。我学到了很多,真的很 Appreciate 有机会探索这个问题。还要感谢 Kaggle 社区——共享的讨论和想法使这成为了一次真正愉快的经历。

虽然我的解决方案极其简单,但我最终获得了第 4 名。
公共分数:25/50
私有分数:29/50

同比赛其他方案