怎么玩
01 · 打开在 Lottery 中输入
puzzle1,点击 Draw my lottery。02 · 观察运行 Trainer,观察 test loss 是否形成两个明显的峰。
03 · 调参尝试修改允许的参数,让两个峰尽量接近。
04 · 判定把 Trainer 的结果连接到 Puzzle completion;由程序判定是否通过。
提示:答案不会在页面默认显示。先看图、打开客户端、自己试一次,再展开底部的“查看答案”。
完整的 ComfyResearch 画面
下面不是示意图,而是 CR 客户端的完整截图:Lottery 入口、Dataset、Model、SOAP、Loss、Trainer、Observable 和可视化节点都在同一张工作区里。
题目
目标:让 test-loss 曲线的前两个 qualified peaks 高度尽量接近,差异不超过 10%。
固定:题目图、数据集、模型结构和随机种子。
可尝试:学习率、训练相关控制参数,以及你认为会影响曲线形状的设置。
判题:程序检查曲线是否有效、是否找到两个峰,以及两峰高度差是否满足 contract。它不靠截图识别答案。
曲线长什么样
这张是同一个题目的 CR 结果图。它展示的是现象,不直接替代判题。
为什么要做成 Puzzle
普通模板告诉你“怎么跑”;Puzzle 还告诉你“要发现什么”。
隐藏入口负责把题目送到画布,Trainer 负责产生曲线,Puzzle completion 负责按规则判分。三者分开,实验才容易重复,也不会把一张漂亮截图误认为结论。
答案
这里默认不展开,方便把页面当成一道题分享。
查看答案(点击展开)
当前已验证通过的候选是:learning rate = 1.6e-4,其余固定设置保持题目模板不变。
| 项目 | 设置 / 结果 |
|---|---|
| 固定 seeds | dataset 8221 · model 7814 · optimizer 957 · train 50000 · minibatch 60000 |
| SOAP | beta1=.9 · beta2=.95 · epsilon=1e-8 · preconditionFrequency=10 · maxPreconditionerDim=1024 |
| Trainer | 3000 steps · log every 10 · CPU |
| 两个峰 | 8.5185 @ 1130 · 8.7899 @ 1950 |
| 相对差 | 3.09% ≤ 10% · PASS |
旧候选 1.7e-4 在当前引擎下不再复现,因此答案以当前版本重新运行并通过 verifier 为准。