[skill 创作] 实验类skill,-定义你到达终点的方式,纯靠踩坑得到的skill(机器学习类)

1.论文进行实验的时候总是有注意不到的点

  • 实验难以管理,进行了A测试,B测试后整体全部放仓库?

  • Ai在舒适区死循环,一直给你改参数,从1搜到1w不肯给你结果

  • Ai擅自减少实验规模,把你给的完整数据集拿一个小数据开始测就一直用小数据?

  • Ai把测试集放到训练集你会明令禁止,它当然也不会干,但是你防的住他把最终的公式改掉吗?或者把中间过程改成模型可以偷看答案?

  • 不想在说了,每一个都对应我浪费的几小时几十个小时,还附带一点点社会的小小毒打,和一点点小骂。抗住压力写这个skill,核心是让和我一样可能经历过机器学习,但是没有真正的做过机器学习项目的人。少踩一点坑

这个 Skill 的目标是让实验像一棵树一样可追踪:每个分支为什么开、怎么跑、何时停、证据在哪、是否晋级,都必须写清楚。

核心设计思路

1.实验管理系统

  • 这个系统设计之初我觉得我就抽象的可以的,一图举例:

  • 这就是我抽象的数据模型,我觉得就是不断地试错过程

  • skill的核心就是

  1. 起点终点的管理。比如起点是搭建什么模型,终点是某个指标达到要求。

  2. 过程的管理,必须是完整训练+完整测评+测评公式实现来源于可信的github仓库,

这对应我的一个事故,我们自己实现的指标。造成指标虚高很多

  1. 退出设计,什么时候退出这个分支值不值得的设计。有很多ai偷懒的倾向已经写了遇见的情况,这个你可以自行更新

  2. 到达的设计,强制Ai必须按给定要求,必须每次跑一个完整数据集,不然他就拿1/100数据跑训练,一直陪你兜圈子。把参数A从0.01调到0.99陪你玩几个小时。最后没效果

  3. 数据泄露防御,中间态管理。

  • 想象这是一棵树,对训练集的明令禁止包含测试集,任何中间偷看都是数据泄露的防御,就像外界的风,不断吹这棵树。如果没有这个,风吹的时候真的会断的。提前吹风。
  1. 代码简洁,这个在需要解耦的时候很麻烦,真的也不能纯vibecoding,还是要考虑有其他人要看你的代码。

  2. 内存管理,venv管理,版本管理,注意云端训的时候优先创建私有环境,然后数据一定备份一份在本地。-已救我一次。

  3. 提醒模型可以通过直接看结果图判断当前缺陷在哪里进行修正模型,最终还要尝试导出onnx并测试。

  4. 升级方向,参考fire给的卡帕西的自动跑实验的Autoresearch,把模块思想给到Ai,让ai自己试错自己组合?-后续考虑做一个图像领域的自动实验skill。

  5. 看起来这种分支在我用的过程中自动进行归档对我而言还是很舒服的,自动启用C1,C2,C3.在C2上改的自动有C2d,C2a等。

设计梳理

  1. 起点和终点管理:起点是当前 baseline,终点是 final gate。

  2. 过程管理:每个实验必须有完整训练/完整评测的定义。

  3. 退出设计:提前写清什么时候 freeze 分支,防止 AI 无限调参。

  4. 到达设计:强制报告目标差距,而不是只说“涨了”。

  5. 数据泄露防御:训练集、验证集、测试集、benchmark、GT 输入边界必须清楚。

  6. 中间态管理:cache、manifest、raw data、checkpoint 分开记录。

  7. 代码清晰:训练入口、测试入口、数据准备入口、指标入口、导出入口必须可查。

  8. 环境管理:venv、GPU 可见性、命令、run dir、checkpoint 都是证据。

  9. 可视化诊断:允许看结果图定位缺陷,但不能替代最终指标。

  10. 部署前置:需要 ONNX/部署时,先验证边界,别训练完才发现不能导。

使用步骤

  1. 在项目里建立 EXPERIMENT_TREE.md

  2. 写当前目标、baseline、final gate。

  3. 每开一个分支,用模板记录 hypothesis、数据、cache、代码入口、指标、成功/失败门槛。

  4. 每次实验结束,立刻写 verdict。

  5. 如果连续两轮只在局部涨、最终门禁不涨,冻结该分支。

效果

使用前:

模型 A 有点涨,模型 B 好像也有点涨,C 又换了 loss。
最终 benchmark 没跑,数据是不是泄露也说不清。

使用后:

B2: debug only, no final gate.
B3: frozen, subset-loop.
B4: promoted, final benchmark passed, checkpoint and metric version recorded.

实战截图,一个做实验会自动唤醒的skill,这很重要。

补充1:不要相信Ai!!!

补充2:一份中文版本skill.md入口,相信你能更直观感受它:

  • 附:这本身也是一种上下文管理工程,实验类项目的树型上下文管理系统skill。
# 实验树记录 Skill 中文说明

这个 Skill 用来管理机器学习、论文实验、工程试错中的实验树。

核心不是“写 todo”,而是防止实验在压力下失控:

- AI 一直在舒适区调参数,不愿意给最终结果。
- 明明要求完整数据,AI 偷偷只跑小数据。
- 测试集被明令禁止训练,但中间过程或指标公式被改坏。
- 指标实现出 bug,历史结果虚高。
- cache、原始数据、manifest、权重混在一起说不清。
- 代码包交给别人审查,入口脚本缺依赖。
- 训练很久后才发现 ONNX 或部署边界跑不通。

## 最小模型

把项目想象成一棵树:

```text
目标 -> 当前基线 -> 分支实验 -> 证据 -> 判定 -> 下一分支
```

每个分支必须说明:

```text
从哪里开始
改了什么
没改什么
用了什么数据
禁止用了什么数据
最终用什么门禁判断
什么时候退出
结果证据在哪里
```

## 最重要的规则

1. 先定义终点,再开始实验。
2. 小批次只用于证伪,不用于证明最终成功。
3. 每次必须报目标差距,不只报相对提升。
4. benchmark 不能训练、调参、early stopping。
5. GT 只能做 target/metric,不能进入推理输入。
6. 指标代码必须有来源或 sanity check。
7. cache 不是原始数据,必须有 lineage。
8. 代码入口必须清楚,审查包必须能 import。
9. 云端环境、GPU 可见性、venv、版本必须记录。
10. 若最终要部署,ONNX/export 边界必须提前验证。

## 分支模板

```md
### [>] B1 - 分支名

- Parent:
- Status:
- Goal:
- Hypothesis:
- Changed axis:
- Fixed baseline:
- Input evidence:
- Why this is not an escape:
- Data:
  - train:
  - validation:
  - held-out test:
  - external benchmark:
  - forbidden:
- Cache:
  - path:
  - source manifest:
  - regenerable:
- Code:
  - data entry:
  - train entry:
  - eval entry:
  - metric file:
  - export entry:
- Metrics:
  - target:
  - formula/source:
  - sanity check:
- Run budget:
- Success gate:
- Failure gate:
- What failure means:
- Evidence files:
- Result:
- Verdict:
- Next:
```

## 判定词

只用这些词:

- `promoted`
- `continue bounded`
- `debug only`
- `pending final gate`
- `frozen`
- `failed`
- `invalid due leakage`
- `invalid due metric`
- `invalid due environment`

不要写:

- “看起来不错”
- “应该有希望”
- “可以继续试试”

## 常见坑位

- `subset-loop`:大数据项目反复训小子集。
- `metric-bug`:指标公式或实现错误。
- `benchmark-leakage`:benchmark 进入训练或调参。
- `gt-leakage`:GT 进入推理输入。
- `cache-lineage-missing`:cache 说不清来自哪里。
- `missing-code-dependency`:代码包缺依赖,无法运行。
- `local-metric-trap`:局部验证涨,最终 benchmark 不涨。
- `environment-invalid`:GPU/环境/依赖不可信。
- `export-late-failure`:训练后才发现不能导出部署。

补充3:skill源

https://my.feishu.cn/sync/Qhv8dh9bZseSYbbW1KRcvHkInxe

补充4,可能要升级的点,没有包含的点。

  1. Human Pressure Guard
    记录“老板催、DDL 很近、想马上冲结果”时的保护规则。核心是:可以加速,但不能跳过 final gate、数据边界、metric sanity。这个很实用,也更通用。

  2. Visual Diagnosis Protocol
    你提到“直接看结果图判断缺陷”。可以抽象成:什么时候看图、看哪些图、如何把视觉问题归类为 data / model / metric / postprocess / deployment 问题。

  3. Artifact Handoff Checklist
    给别人审查或交付时用:必须包含训练入口、测试入口、metric 文件、数据 split 表、cache 说明、best checkpoint、复现实验命令、不可包含的东西。

  4. Cloud Run Hygiene
    独立 venv、GPU 可见性、不要污染 /home、run 目录命名、checkpoint 阶段备份、/dev/shm cache 生命周期。这类踩坑非常常见。

原文:https://my.feishu.cn/wiki/DpB2ws11TipCmSkSEm3cgAMhnfb?from=from_copylink

最后:不要相信ai,计算过程,仔细观察,代码不清晰即时重构,汇报慢一点。

4 个赞

更新了一版本,加了一条规则:


把推动人去看代码亲自核验的思想注入给Ai了。

1 个赞

太强了,cc

1 个赞

我来了,我来了。终于要开始尝试评价skill了,之前花了大量时间去写skill,虽然没有很清晰的路径,但是总会有些模糊的印象,我似乎抓住了一些东西。好吧,于是我试着借助评价别人的skill,把怎么写好skill讲清楚

首先说,我没法在内容层面上去评价skill的好坏,这个很多时候超出了我的能力,但是我可以在一些实现的技巧或者方法论上去给出一些建议。那么,开始吧

整体评价

内容质量我会给高分,Skill 工程化我会给中等偏下。它最强的是“实验治理意识”非常成熟,尤其是 final gate、leakage、metric bug、subset loop、verification trail 这些反模式抓得很准;但如果按 我的这套标准来评,它现在更像“专家规则文档”,还没完全进化成“结构化、可路由、可验证、可发布”的 Skill。

优化建议

  • 先补齐最小规范骨架。

给 SKILL.md 加 version,补头部 > 版本 和文末 ## 版本历史;如果准备长期维护,也建议把几个 references/*.md 一并纳入版本化管理。

  • 重构成 4 个主 workflow,而不是 1 个扁平流程。

我会建议拆成:初始化/接管实验树、新增或续写分支、审计高风险证据链、图像模型 bounded sprint。这样“建账”“记账”“审计”“专项冲刺”四种稳定意图就分开了。

  • 把主文档压回路由层。

主文档保留:触发边界、14 条硬规则、workflow 路由、强制校验入口。

下沉到 references/:branch template、image sprint taxonomy、ML code/data/metric guard 细节。

并明确写出“何时读取哪份 reference”。

  • 消灭模板漂移,建立单一事实源。

要么让 new_branch.py 从 references/experiment-tree-format.md 派生模板,要么反过来让 reference 引用脚本模板;总之不要再维护三份近似模板。

  • 增加一个 scripts/validate_skill.py。

    最有价值的检查项是:

    • one active main branch
    • verdict 是否在白名单
    • 是否缺 final gate
    • 是否缺 verification trail
    • image sprint queue 是否超过 4
    • debug only / oracle diagnostic only / pending final gate 这些状态是否被正确使用
  • 最好再补一份 workflow 映射表。

这份 Skill 很适合先有 design.md,把“做什么 / 不做什么 / 上下游 / 失败回流 / 可否单独触发”写清楚,再反推 SKILL.md。

优点也值得保留

  • 反 loop 能力很强,尤其对“subset-loop”“local-metric-trap”这类 AI 常见坏路径非常有效。
  • 领域抽象做得好,既能覆盖 ML/research,又能落到 metric、cache、export 这些硬点。
  • 对“不要信我,去验证”这条价值观表达得非常清楚,这是这个 Skill 最有辨识度的部分。
2 个赞

补一个:
主要问题

  • 高 当前 Skill 主文档也没有头部版本块和版本历史。这会直接阻断后续的规范化维护与发布。
  • 高 模板存在单一事实源漂移。主文档把 Verification trail 作为强要求写进了分支模板,也在“Force Verification, Not Trust”里把它提升成核心原则,但脚本生成器没有产出这部分字段,导致工具生成结果天然不满足 Skill 自己的核心约束。
  • 中高 这是个明显的复杂 Skill,但 SKILL.md 还没有把复杂 Skill 口径建成“多 workflow + 语义化标记”的结构。现在更像一份高质量 manifesto,缺少 ## @工作流:、### @步骤N:、HTML 元数据和边界化路由,机器可执行性偏弱。
  • 中 渐进式披露还不够彻底。主文档里已经写了完整的 branch template、image sprint 规则,同时 references/ 里又各有一份对应内容,形成重复维护;但真正显式声明“何时加载哪份 reference”的只有 image sprint 一处,其他 reference 入口不够制度化。
  • 中 验证闭环偏弱。这个 Skill 很强调“证据、门槛、不可自欺”,但仓库里只有一个追加模板脚本,没有 validate_skill.py 这类工程硬校验入口,导致很多重要约束仍停留在文档层,而不是可检查规则层。
2 个赞

k叔太强了 我好好优化一番

1 个赞

补一个,实践场景。

Ai自己做实验的时候,更好的上下文管理方式。

• 当前已冻结这个几何 patch 分支。下一条主线按 playbook 的退出规则改“数据/上下文”轴:先复读三份约束文档和现有数据入
口,确认允许的数据路径后再决定是否做 large-crop/full-image 训练入口。

补一个,实践场景。

利用/goal等模式结合这个skill有奇效,清晰的目标和禁止项。

每个实验的边界条件,冻结情况。非常适合ai自己进行管理实验。

缺乏的点:怎么改网络的经验,+层+预训练模型。这些都是ai需要你告诉它一定资料方向的

1 个赞

继续补充,禁止项的生效方式:-可以看见每个指令末尾ai会自动提醒自己可能需要注意的禁止项

  • 在继续训练前,我需要先用允许的 movie patch 做一个“候选输出天花板/下界”探针:比较 left、right_base、简单 blend 在
    movie 上的官方三指标,避免又把长跑押在明显错误的输出形态上。这个探针不使用 Mono 做调参。

  • 我会实现一个新的可部署结构分支 BlendGFRUNet:仍只输入 left/right_base/disparity,但把残差锚点从 right_base 换成固
    定的 0.75left + 0.25right_base,再由 U-Net 预测 residual/alpha 修正。这个分支不引入 Mono/Inria 训练,也不改指标
    公式。

1 个赞

我也来蹲一个围观

2 个赞

fire fire

1 个赞

3 个赞

数字哥霸气 :partying_face:

5 个赞

技能 我发了 【Skill 创作】kz-skill-creator:把 AI 技能变成“工程级系统”,才能做到 100% 零跑偏

5 个赞

芜湖 我也还在更新

5 个赞

催更催更催更

5 个赞

我去追着杀啊

5 个赞

之前搞机器学习用这个也踩过坑,模型过拟合得调参数,不然白跑几小时

1 个赞

是的是的 坑真的好多

有的参数突然不动什么的

能总结出不少经验

我现在觉得最重要的几其实是人的工作

1.得把代码梳理一遍 非常详细那种

2.得做好前期调研

3.搭建好模型能自主改造网络和工作空间,尽量让他只需要改网络,测试那些搭建好就锁了。

4.这个过程中git管理主结构

5.不用记得关服务器,:smiling_face_with_tear:

4 个赞

踩坑确实是最好的学习方式,我也在ML这坑里摔了不少次,总结得挺好的,加油!

2 个赞

嗯,第5点真的很难,我经常忘了关机就跑了

1 个赞