模型训练思维(Model Training Mindset)
目标与边界
做:
- 把大任务当作一次训练 run:分解为有序子问题序列(里程碑),每个子问题用 epoch 训练循环攻破
- 全程只用 git 做版本控制:每步有基线 commit(checkpoint),通过 = commit 固化,失败 = reset 回退
- 诚实报告:每步报告验证命令与真实输出,不自我宣称完成
不做:
- ❌ 不跳过验证直接宣称完成
- ❌ 不堆积改动:每轮一个原子改进,像训练一次只更新一步权重
- ❌ 回退后不原样重试,必须带着失败原因换思路
- ❌ 不引入 git 之外的任务管理框架
- ❌ 不把多轮迭代、中途回退当失败——那是训练循环的正常过程
0. 前置:git 基线
开工前工作目录必须是 git 仓库:
- 确认:
git rev-parse --is-inside-work-tree;exit 128 表示不是仓库
- 不是仓库:
git init;若目录含大量历史杂物(二进制、旧项目),先写 .gitignore 把追踪范围收窄到交付物路径,再提交基线
- 首次 commit = 本任务的起点 checkpoint
1. 第一层:任务分解(先确认,后执行)
拿到任务,先分解、不执行:
分解原则:
- 每个子问题足够小、可独立验证,有明确的完成标准(能由真实命令/真实输出判定)
- 按依赖排序:前面的完成了后面的才能做——像课程安排,先易后难,逼近最终目标
- 子问题数量与粒度不预设,按"一步一可验证"标准现场拆
把分解方案给用户确认:
## 分解方案
目标:<一句话总目标>
子问题序列(按依赖序):
S1 <名称> — 完成标准:<可验证的命令/信号>
S2 <名称> — 完成标准:<可验证的命令/信号>
...
是否确认开始?
- 用户确认 → 进入第二层
- 用户要求调整 → 只改分解,不动执行
- 用户已声明"分解不必预先固定" → 只给总目标+总思路,执行时动态拆,每个新子问题开工前报出它的完成标准再动手
2. 第二层:epoch 训练循环(每个子问题)
对每个子问题执行 epoch 循环:
基线 = 当前状态 git commit(该子问题的 checkpoint)
for epoch in 1..N:
1. 原子改进:本轮只推进一个点,不一次改一堆
2. 验证:检查完成标准是否达成(测试/构建/命令输出/结果检查)
3. 达成/变好 → git commit 保存为新基线,下一轮继续深化
失败/变差 → git reset --hard 回退到基线,
记录失败原因,换思路重试(不原样重试)
直到该子问题达成完成标准
原子改进的定义:一次 commit 只对应一个可独立验证的改动(如写 frontmatter、写正文某一节、修某个字段)。改动大到无法独立验证时,继续拆小。
3. 第三层:子问题之间的衔接
- 一个子问题通过后
git commit 固化,它成为后续所有工作的新起点(新基线)
- 进入下一个子问题,重复第二层循环
- 若下一个子问题反复失败(≥3 轮同类失败),允许回退到上一个已验证子问题的状态,重新规划这一步的拆分思路,再进入循环
- 循环往复,直到所有子问题全部完成——大任务完成
4. 纪律红线(最高优先级)
- 绝不跳过验证直接宣称完成——验证 = 真实命令/真实测试的输出,自我宣称无效
- 绝不堆积改动——每轮一个原子改进;堆积后失败将无法定位是哪处改动破坏
- 回退后带失败原因换思路——不原样重试
- 多轮迭代、中途回退是正常过程——不是失败,不需要为此道歉或解释
- 全程只用 git——不引入额外工具或框架(验证用的最小脚本属于"验证"步骤,不算任务管理框架)
5. 输出模板
分解方案(执行前)
## 分解方案
目标:<一句话>
子问题序列:
S1 <名称> — 完成标准:<可验证的命令/信号>
S2 ...
是否确认开始?
单轮报告(每个 epoch 结束)
[S<n> 第<k>轮]
原子改动:<本轮改了什么,一个点>
验证:<命令> → <输出摘要>
结果:达成 → commit <hash>(新基线)
/ 失败 → reset 回基线 <hash>,失败原因:<...>,下轮换思路:<...>
交付清单(收尾)
交付物:
1. <文件路径>(一句话说明)
2. ...
git 历史:<commit 数>,自 <首 hash> 至 <末 hash>,每步可追溯可回滚
6. 注意事项
- 工作目录不是 git 仓库时,先 git init 再开工(见第 0 节);目录含大量历史杂物时用
.gitignore 把 git 追踪范围收窄到交付物路径,不要把二进制和历史杂物 commit 进库
- 完成标准必须能由"真实可运行的命令/信号"判定,不接受"看起来合理"这类模糊标准
- 进入子问题前的基线 commit 是该子问题的安全网,不可省略
- 连续 3 轮同类失败,不要在当前子问题内死磕——回退到上一个已验证子问题,重新规划分解
- 报告时如实展示验证输出;发生过失败与 reset 要一并展示,不隐瞒
- 回退用
git reset --hard <基线 hash>;未固化的实验性改动不要进 commit,失败直接丢弃即可
1---2name: model-training-mindset3description: 用模型训练思维攻坚多步骤任务:先把大问题分解为带完成标准的小子问题并向用户确认,再对每个子问题跑 epoch 训练循环(基线 commit → 每轮一个原子改进 → 真实验证 → 通过则 commit 固化 / 失败则 reset 回退换思路),子问题之间逐级固化衔接,直到大任务完成。当用户点名模型训练思维、训练循环、epoch 循环,或需要带 checkpoint 与回退的逐步攻坚任务时使用。 Attack multi-step tasks with a model-training mindset: decompose the big problem into sub-problems with explicit completion criteria, confirm with the user, then run an epoch training loop on each (baseline commit -> one atomic improvement per round -> real verification -> commit on pass / reset and change approach on fail), freezing each sub-problem before moving on. Use when the user names the training loop or epoch loop, or when a long task needs git checkpoints, rollback, and independently verifiable steps.4---56# 模型训练思维(Model Training Mindset)78## 目标与边界910**做**:11- 把大任务当作一次训练 run:分解为有序子问题序列(里程碑),每个子问题用 epoch 训练循环攻破12- 全程只用 git 做版本控制:每步有基线 commit(checkpoint),通过 = commit 固化,失败 = reset 回退13- 诚实报告:每步报告验证命令与真实输出,不自我宣称完成1415**不做**:16- ❌ 不跳过验证直接宣称完成17- ❌ 不堆积改动:每轮一个原子改进,像训练一次只更新一步权重18- ❌ 回退后不原样重试,必须带着失败原因换思路19- ❌ 不引入 git 之外的任务管理框架20- ❌ 不把多轮迭代、中途回退当失败——那是训练循环的正常过程2122## 0. 前置:git 基线2324开工前工作目录必须是 git 仓库:25261. 确认:`git rev-parse --is-inside-work-tree`;exit 128 表示不是仓库272. 不是仓库:`git init`;若目录含大量历史杂物(二进制、旧项目),先写 `.gitignore` 把追踪范围收窄到交付物路径,再提交基线283. 首次 commit = 本任务的起点 checkpoint2930## 1. 第一层:任务分解(先确认,后执行)3132拿到任务,先分解、不执行:3334分解原则:35- 每个子问题足够小、可独立验证,有明确的完成标准(能由真实命令/真实输出判定)36- 按依赖排序:前面的完成了后面的才能做——像课程安排,先易后难,逼近最终目标37- 子问题数量与粒度不预设,按"一步一可验证"标准现场拆3839把分解方案给用户确认:4041```text42## 分解方案43目标:<一句话总目标>44子问题序列(按依赖序):45 S1 <名称> — 完成标准:<可验证的命令/信号>46 S2 <名称> — 完成标准:<可验证的命令/信号>47 ...48是否确认开始?49```5051- 用户确认 → 进入第二层52- 用户要求调整 → 只改分解,不动执行53- 用户已声明"分解不必预先固定" → 只给总目标+总思路,执行时动态拆,每个新子问题开工前报出它的完成标准再动手5455## 2. 第二层:epoch 训练循环(每个子问题)5657对每个子问题执行 epoch 循环:5859```text60基线 = 当前状态 git commit(该子问题的 checkpoint)61for epoch in 1..N:62 1. 原子改进:本轮只推进一个点,不一次改一堆63 2. 验证:检查完成标准是否达成(测试/构建/命令输出/结果检查)64 3. 达成/变好 → git commit 保存为新基线,下一轮继续深化65 失败/变差 → git reset --hard 回退到基线,66 记录失败原因,换思路重试(不原样重试)67直到该子问题达成完成标准68```6970原子改进的定义:一次 commit 只对应一个可独立验证的改动(如写 frontmatter、写正文某一节、修某个字段)。改动大到无法独立验证时,继续拆小。7172## 3. 第三层:子问题之间的衔接7374- 一个子问题通过后 `git commit` 固化,它成为后续所有工作的新起点(新基线)75- 进入下一个子问题,重复第二层循环76- 若下一个子问题反复失败(≥3 轮同类失败),允许回退到上一个已验证子问题的状态,重新规划这一步的拆分思路,再进入循环77- 循环往复,直到所有子问题全部完成——大任务完成7879## 4. 纪律红线(最高优先级)80811. **绝不跳过验证直接宣称完成**——验证 = 真实命令/真实测试的输出,自我宣称无效822. **绝不堆积改动**——每轮一个原子改进;堆积后失败将无法定位是哪处改动破坏833. **回退后带失败原因换思路**——不原样重试844. **多轮迭代、中途回退是正常过程**——不是失败,不需要为此道歉或解释855. **全程只用 git**——不引入额外工具或框架(验证用的最小脚本属于"验证"步骤,不算任务管理框架)8687## 5. 输出模板8889### 分解方案(执行前)9091```text92## 分解方案93目标:<一句话>94子问题序列:95 S1 <名称> — 完成标准:<可验证的命令/信号>96 S2 ...97是否确认开始?98```99100### 单轮报告(每个 epoch 结束)101102```text103[S<n> 第<k>轮]104原子改动:<本轮改了什么,一个点>105验证:<命令> → <输出摘要>106结果:达成 → commit <hash>(新基线)107 / 失败 → reset 回基线 <hash>,失败原因:<...>,下轮换思路:<...>108```109110### 交付清单(收尾)111112```text113交付物:1141. <文件路径>(一句话说明)1152. ...116git 历史:<commit 数>,自 <首 hash> 至 <末 hash>,每步可追溯可回滚117```118119## 6. 注意事项120121- 工作目录不是 git 仓库时,先 git init 再开工(见第 0 节);目录含大量历史杂物时用 `.gitignore` 把 git 追踪范围收窄到交付物路径,不要把二进制和历史杂物 commit 进库122- 完成标准必须能由"真实可运行的命令/信号"判定,不接受"看起来合理"这类模糊标准123- 进入子问题前的基线 commit 是该子问题的安全网,不可省略124- 连续 3 轮同类失败,不要在当前子问题内死磕——回退到上一个已验证子问题,重新规划分解125- 报告时如实展示验证输出;发生过失败与 reset 要一并展示,不隐瞒126- 回退用 `git reset --hard <基线 hash>`;未固化的实验性改动不要进 commit,失败直接丢弃即可