647. Al Mathematical Olympiad - Progress Prize 2 | ai-mathematical-olympiad-progress-prize-2
首先,我要衷心感谢 XTX Markets 和 Kaggle 举办了这场精彩的竞赛。组织如此质量和规模的活动是一项重大的工作。我也向所有参赛者的 dedication 和贡献表示赞赏。
解决方案详情 (运气 + 14b-awq + lmdeploy):
与 Vladimir Demidov 的公开 Notebook 相比,我使用了 DeepSeek-R1 Distill-Qwen 模型的 14B-AWQ 版本,并使用 lmdeploy 实施推理,相比 vllm 吞吐量提高了 28%。我从 imagination-research 团队分享的公开模型和讨论中学到了这些——非常感谢他们的见解。
我将第 5 名的成绩主要归功于幸运的环境,因为一个几乎相同的提交在公共榜单上只获得了 23 分。我与那些可能有更多贡献或开发了更强模型但未经历同样有利结果的人分享这一结果。希望每个人在未来的事件中都有机会受益于类似的幸运。
最后,我还分享了在本次竞赛中应用的一种模拟技术,它将评估计算从 O(N) 减少到 O(1)。为了避免潜在的提交浪费或轻微的性能下降,我直接采用了 Vladimir Demidov Notebook 中的答案提取/投票代码和提示(虽然我自己也有版本)。我非常感谢原作者的工作。
与 vllm 相比,lmdeploy 在 14b-awq 设置下将吞吐量提高了 28%。
| 配置 | 指标 | lmdeploy | sglang | vllm 0.7.2 |
|---|---|---|---|---|
| 14b-awq bs 9 seqlen 13500 | 问题耗时 | 400s | 462s | 511s |
| 吞吐量 | 304 token/s | 263 tokens/s | 238 tokens/s | |
| 32b-awq bs 9 seqlen 9000 | 问题耗时 | 355s | 374s | 396s |
| 吞吐量 | 228 token/s | 193 tokens/s | 183 tokens/s | |
| 7b-awq bs 32 seqlen 13500 | 问题耗时 | 403s | 391s | 505s |
| 吞吐量 | 1073 token/s | 1103 tokens/s | 856 tokens/s |
通过交替评估步骤,进行模拟可以帮助将计算资源从 O(N) 节省到 O(1)。它在竞赛期间帮助我节省了大量的提交和计算资源。
常规评估:
对于每个新方案:
使用 llm 生成该方案的足够样本
获得评估结果
模拟:
使用 llm 生成足够的样本作为“真值”
对于每个新方案:
从“真值”中采样该方案的输出(直到评估结果收敛)
获得评估结果
注意,模拟的第 1 步只需要进行一次,在评估新方案时不需要生成新的输出。此外,更多的样本会导致更准确的“真值”。
代码:Kaggle 链接
我进行模拟的目的包括:
我经验性地使用 max_question_time = 410s 来估计 seqlen 和 batchsize,以确保整个运行在 4.5~4.7 小时内完成,结果如下:
| Batchsize | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| seqlen | 20000 | 17000 | 15500 | 14500 | 13800 | 13300 | 12800 | 12200 | 11600 | 11100 | 10600 | 10200 |
策略细节如下:
groupsize 128 -> 32: lmdeploy 不支持
定制 AWQ:
注意:虽然原始 AWQ 论文显示 AWQ 对校准数据具有鲁棒性且不需要大规模数据,我还是做了一次尝试。
AIME25 结果显示,带有 8 个校准样本的 14b-awqv2(即定制 AWQ)表现优于 14b-awq-casperhansen。然而,在我 few 次提交尝试中,它未能超越 14b-awq-casperhansen。
我未能进行 SFT,因为推理任务的序列长度太大,没有足够的 GPU 显存来适应,即使使用 lora 也会导致 GPU OOM。
我无法在自己的代码中复现 Vladimir Demidov 的 Notebook 分数。我花了 20 次提交,二分查找代码差异,最终发现以下任一更改都会导致分数从 23~26 下降到 18~21:
最后,我想再次感谢 XTX Markets 和 Kaggle 举办了这场精彩的竞赛,感谢所有参赛者的 incredible 努力和 dedication。我也深深感谢在整个旅程中支持我的每一个人。他们的鼓励 truly invaluable。