ComfyResearch · Puzzle

训练曲线里的谜题

给你一张 ComfyResearch 训练图。你要做的,是找到能让两个 M 形峰高度接近的设置。

隐藏入口:puzzle1题目:两峰等高先猜,再看答案

怎么玩

01 · 打开在 Lottery 中输入 puzzle1,点击 Draw my lottery
02 · 观察运行 Trainer,观察 test loss 是否形成两个明显的峰。
03 · 调参尝试修改允许的参数,让两个峰尽量接近。
04 · 判定把 Trainer 的结果连接到 Puzzle completion;由程序判定是否通过。
提示:答案不会在页面默认显示。先看图、打开客户端、自己试一次,再展开底部的“查看答案”。

完整的 ComfyResearch 画面

下面不是示意图,而是 CR 客户端的完整截图:Lottery 入口、Dataset、Model、SOAP、Loss、Trainer、Observable 和可视化节点都在同一张工作区里。

完整的 ComfyResearch Puzzle 工作区截图
完整工作区:从 Lottery 到 Trainer 和 Weight L2 Viz。

题目

目标:让 test-loss 曲线的前两个 qualified peaks 高度尽量接近,差异不超过 10%。

固定:题目图、数据集、模型结构和随机种子。

可尝试:学习率、训练相关控制参数,以及你认为会影响曲线形状的设置。

判题:程序检查曲线是否有效、是否找到两个峰,以及两峰高度差是否满足 contract。它不靠截图识别答案。

曲线长什么样

这张是同一个题目的 CR 结果图。它展示的是现象,不直接替代判题。

M-shaped test loss curve
M-shaped test loss:两个局部峰是这道题要比较的对象。

为什么要做成 Puzzle

普通模板告诉你“怎么跑”;Puzzle 还告诉你“要发现什么”。

隐藏入口负责把题目送到画布,Trainer 负责产生曲线,Puzzle completion 负责按规则判分。三者分开,实验才容易重复,也不会把一张漂亮截图误认为结论。

答案

这里默认不展开,方便把页面当成一道题分享。

查看答案(点击展开)

当前已验证通过的候选是:learning rate = 1.6e-4,其余固定设置保持题目模板不变。

项目设置 / 结果
固定 seedsdataset 8221 · model 7814 · optimizer 957 · train 50000 · minibatch 60000
SOAPbeta1=.9 · beta2=.95 · epsilon=1e-8 · preconditionFrequency=10 · maxPreconditionerDim=1024
Trainer3000 steps · log every 10 · CPU
两个峰8.5185 @ 1130 · 8.7899 @ 1950
相对差3.09% ≤ 10% · PASS

旧候选 1.7e-4 在当前引擎下不再复现,因此答案以当前版本重新运行并通过 verifier 为准。