iteration_log.md 15.9 KB

Evolve 训练日志 — h3-video-prompt

任务:T-mt89ktxg|训练人:innovator-evolver|单次连续 session,非 resume(无跨会话续跑场景)

Round 0:训练前发现(影响全局,先记录)

正式跑 Small Loop 前,先直接 curl raw.githubusercontent.com 逐字抓取了官方 skills/h3-prompt-writing/{SKILL.md,references/base-en.txt,references/ref-en.txt} 全文—— 这是 knowhow_v1.md §9.1 标为"未核实"的缺口(此前只有 WebFetch 摘要,没有逐字原文)。 本轮已用原始文件全文解决,不再是未核实状态。

抓取原文后发现一处此前公开资料转述都没提到的硬性规则:官方顶层 SKILL.md "Output Rules" 明确写"Write rewrite sections in English; preserve dialogue, lyrics, and visible scene text in their original language."——对全部 5 种模式都适用,不是只有 Ref2VA。而当前 agent.md "交付形态"一节写的是"跟随用户输入语言",这是新发现的、需要人工拍板的校准冲突,已如实写进 evolve_report.md,Evolve 阶段的 SKILL.md 按官方原文(英文结构字段)执行,未擅自改 agent.md。

Round 1(SKILL.md v0.1.0)

基于 knowhow + 官方原文逐字核实的结果,直接写出结构完整的 v1(5模式判断树、基础模式 Part One 指令行模板、Ref2VA 六字段+四种标签+task-type前缀+关系标记、镜头语言表、说话人/对白语法、 声音设计 N/A 精确条件、13条常见错误、边界情况处理)。8 场景逐条实际生成提示词产出,按 benchmark_v1.md 打分:

场景 D1 D2 D3 D4 D5 D6 加权和 封顶 最终
TS-01 T2VA 5 5 5 5 4 5 97 否 97
TS-02 I2VA 5 4 5 5 5 5 97 否 97
TS-03 FL2VA 5 3 5 5 5 5 94 否 94
TS-04 L2VA 5 3 5 5 5 5 94 否 94
TS-05 Ref2VA 4 4 5 5 5 5 92 否 92
TS-06 Ref2VA 4 4 5 5 5 5 92 否 92
TS-07 边界 5 5 5 5 5 5 100 否 100*
TS-08 边界 5 5 5 5 4 5 97 否 97

平均 95.375,最低 92(TS-05/TS-06)。*TS-07 打分是判断性的,见下方独立复核。

暴露的具体缺口(2 类真实缺陷,非臆造):

  1. FL2VA(TS-03)/L2VA(TS-04)的 Part One 指令行模板 Shot N / S.SS-second mark 在实际 生成时原样抄了模板占位符,没有替换成本场景的具体数值(应为 Shot 1 / 15.00、 [Shot 1] / 8.00)——这是写 SKILL.md 时只给了变量名模板、没有强调"必须解析成具体值"的 直接后果。归到 D2(benchmark 6 维度里没有专门覆盖"Part One 指令行"的维度,这是一个判据 覆盖缺口,见 evolve_report.md)。
  2. Ref2VA(TS-05/TS-06)的人物类 <Subject N>(代言人/街舞舞者)写成"with their face, hairstyle, and build as shown in the clip"——技术上字段不算空,但没有任何具体可辨识特征, 命中 D1 tier4"内容单薄"。TS-06 草稿阶段还一度在 retention_analysis 里给这个笼统主体加了 "舞步弱参考"的说法,违反"关系标记只能在 subject_definitions 已定义角色范围内选,不要把 新增动作当损失"的官方规则——因为 subject_definitions 从未声明要锁定具体舞步。此处在定稿 前已自行删除,未计入 round1 最终产出的缺陷分,但记录在案作为方法论薄弱点的证据。

独立复核(TS-05,构造性手工重算):

4/5×25 + 4/5×15 + 5/5×15 + 5/5×15 + 5/5×15 + 5/5×15
= 20 + 12 + 15 + 15 + 15 + 15 = 92
D1=4 ≥ 3 → 不触发封顶(≤1→40,=2→60 两档规则均未命中)
最终得分 = min(92, 无上限) = 92

与自动打分一致,未发现算术错误或封顶规则漏算。

TS-07 判断性打分说明(按上级要求,模棱两可处要展示推理而非悄悄选一个):TS-07 的正确产出 是澄清问题而非结构化提示词字段,benchmark_v1.md 的 D1-D6 是围绕"最终提示词原文"设计的,字面 不完全适配这种非提示词交付物。本轮的处理是:D1 按"是否正确保持模式判断的克制 + 预判分支"评分 (可以直接套用);D2-D6 因为没有对应的结构化字段可评,按"是否发生了该维度对应的违规行为"打分 ——没有违规就给满分,这不等于"字段执行完美",只是"没有可以评的字段"。这是一个需要人工拍板的 歧义点,不是本次训练自行悄悄拍板定论。

本轮 SKILL.md 改动:无(round1 是首版)。

Round 2(SKILL.md v0.2.0,最终版)

针对上面暴露的 2 类缺口做了两处硬规则修改(具体改动见 SKILL.md §3.1 和 §4.1 的"round 2 新增" 段落 + §9 自查清单新增第14/15条),只重新生成并重新打分了受影响的 4 个场景 (TS-03/TS-04/TS-05/TS-06),未改动的 4 个场景(TS-01/02/07/08)沿用 round1 产出和分数。

场景 D1 D2 D3 D4 D5 D6 加权和 封顶 最终
TS-01 T2VA 5 5 5 5 4 5 97 否 97
TS-02 I2VA 5 4 5 5 5 5 97 否 97
TS-03 FL2VA 5 5 5 5 5 5 100 否 100
TS-04 L2VA 5 5 5 5 5 5 100 否 100
TS-05 Ref2VA 5 5 5 5 5 5 100 否 100
TS-06 Ref2VA 5 5 5 5 5 5 100 否 100
TS-07 边界 5 5 5 5 5 5 100 否 100*
TS-08 边界 5 5 5 5 5 5 100 否 100

平均 99.125(含 TS-07)/ 98.71(不含 TS-07);最低 97。TS-08 顺手把 §5.1 术语用词从 "arcing shot" 改成官方定义术语 "Arc Shot",不算独立修复项,一并记录。

独立复核(TS-06,专项检查 round1 暴露的跨字段一致性问题是否真的修复):手工核对 subject_definitions / retention_analysis / detailed_description 三处对 Subject2 的特征 描述是否互相一致(round1 曾在这条链路上出问题)——三处均一致复用"short fade haircut, red bomber jacket, silver chain",未再出现"retention_analysis 引入 subject_definitions 未声明 角色"的问题。加权和重算 25+15+15+15+15+15=100,D1=5 不触发封顶,与自动打分一致。

是否继续 round3:不继续。round1→round2 的分数提升(92→100 等)完全对应已识别、已修复的 具体缺陷,round2 的 4 个满分场景是"缺陷修复后的自然结果",不是没有依据的加分;round2 剩余的 3 个 97 分场景(TS-01/02/08 中未改动的部分)经过第二轮独立审视,未发现新的实质性缺陷,只剩 不影响可执行性的措辞细节(如 TS-01 的"low-angle static shot"组合写法、TS-02 对海报视觉细节 的天然转述局限)。继续迭代不会指向真实问题,属于凑轮次,按 token 预算规则停止。

以上 round 0-2 属于任务 T-mt89ktxg(benchmark_v1 时代)。以下为任务 T-mtadwn5l 的续作, 触发 Large Loop,基准换成 benchmark_v2 —— 与上面各表的分数不可直接对比(维度数与权重不同)。

Round 3(SKILL.md v0.3.0,Large Loop 重训)

任务 T-mtadwn5l|2026-08-26。触发源:真实生产场景 conv-mtabpqx9「你出去看看」人工评测 6/10, 暴露 v1 六维度没覆盖的 6 类失败模式(F1 对白格式 / F2 素材预检 / F3 冲突解决 / F4 扩写边界 / F5 镜头语言 / F6 机械校验)。Digest 产出 benchmark_v2(9 维度 + D5/D7 硬错误下限 + §3.3 阻塞评分 规则)和 test_scenarios_v2(12 场景)。本轮把评审给出的「七步工作流」整体落进 SKILL.md 后一次性 对 12 个场景执行并打分。

处理方式分布(task book §四规定):TS-05/06/09/10/11/12 重新生成;TS-07/08 重新核对; TS-01~04 复用 v0.2.0 产出 + 逐项过 v2 机械校验。

场景 D1(20) D2 D3 D4 D5 D6 D7 D8 D9(10) 加权和 封顶 最终
TS-01 T2VA 5 5 5 5 N/A 5 N/A 4 5 98 否 98
TS-02 I2VA 5 5 5 5 N/A 5 N/A 5 5 100 否 100
TS-03 FL2VA 5 5 5 5 N/A 5 N/A 5 5 100 否 100
TS-04 L2VA 5 5 5 5 N/A 5 N/A 5 5 100 否 100
TS-05 Ref2VA 5 5 5 5 N/A 5 5 5 5 100 否 100
TS-06 Ref2VA 5 5 5 5 N/A 5 5 5 5 100 否 100
TS-07 边界 5 N/A N/A N/A N/A N/A N/A 5 5 100 否 100*
TS-08 边界 5 5 5 5 N/A 5 N/A 4 5 98 否 98
TS-09 Ref2VA 阻塞 5 N/A N/A N/A N/A N/A 5 N/A N/A §3.3=100 否 100
TS-10 T2VA 5 5 5 5 N/A 5 N/A 5 5 100 否 100
TS-11 T2VA 5 5 5 5 5 5 N/A 5 5 100 否 100
TS-12 Ref2VA 阻塞 5 N/A N/A N/A N/A N/A 5 N/A N/A §3.3=100 否 100

平均 99.67(1196/12),最低 98(TS-01/TS-08)。*TS-07 沿用判断性打分惯例。 N/A 维度按 benchmark_v2 §3.1「未发生该维度对应的违规行为」记满分。D1/D5/D7 封顶与硬错误下限 全程未触发。逐场景分档依据见 round_outputs_v2.md,不在此展开。

关键新行为的落地证据:

  1. TS-09 正确阻塞:scene 带「AI生成」水印且无清洗版 → 未产出正式 Prompt,未把任何素材塞进 references,明说"schema 与素材要求不可同时满足",并给出补齐后的处理预案(这是 v0.2.0 在真实 生产里犯过的最严重错误 F2 的反向验证)。
  2. TS-09 修正示范:假设清洗版可用时的完整 Prompt——<d>[Chinese] 你出去看看</d> 不补句号 (F1)、蜡烛写明 unlit 但油灯仍是唯一光源(F3)、女子反应中性短暂开放不自定拒绝剧情(F4)。 这是构造性产出,用于让三条修复有文本可核对,正式产出仍是上面的阻塞报告。
  3. TS-12 区分处理:A 无替代 → 阻塞 / B 有替代 → 选带真脸版 / C 正常引用,证明阻塞不是一刀切。
  4. TS-10 声音 N/A:v1 报告 4.4 记录的那条从未被触发的规则,本轮首次被真实场景验证通过。

round2 → round3 SKILL.md 改动逐条 diff(来源 git diff .../train/evolve/SKILL.md, 256 insertions / 32 deletions;详细版本见 evolve_report_v2.md 第四节):

# 章节 diff
1 frontmatter version 0.2.0 → 0.3.0;新增 v0.3.0_changes 字段
2 §0 开头 删去对 agent.md 语言规则冲突的重复论述段(正面陈述保留)
3 §0.5 整章新增 七步工作流总览表 + 优先级顺序声明 + 七个落点:§0.5.1 硬约束 7 项约束表 / §0.5.2 素材预检(不可用判定 + 5 条处理规则 + 阻塞报告 4 要素)/ §0.5.3 冲突优先级 5 级 + 最小改动范例「蜡烛保留但未点燃」/ §0.5.4 扩写边界四类分类表 + 一句台词时反应中性开放 / §0.5.5 对白三条核心 / §0.5.6 指 §5.3 / §0.5.7 机械验收 11 项清单 / §0.5.8 阻塞交付形态(禁止报阻塞又附污染 Prompt)
4 §0.6 整章新增 生产输入格式处理:参考图菜单 {id,role,url,note} + 主体定义 + 立绘绑定规则的结构示例与 6 步构造流程(references 不重排 / 只有场景图作 <Picture 1> / 立绘只作 Subject 外观来源 / 逐条预检 note / 台词逐字进 <d> / 输出形状处理)
5 §1 Step 0 新增"提取素材 note 的禁止/替换/版本要求";新增"核心主体未知优先反问,不要替用户编造外观"
6 §2 Step 1 新增"生产输入菜单 + 主体定义 + 立绘绑定规则 → Ref2VA,不要降级当 I2VA"
7 §3.1 占位符硬规则挂接到 §0.5.7 清单第 11 项
8 §4.1 新增生产输入格式下的 Subject 绑定写法示例(立绘做来源声明 + 文字设定具体特征)
9 §5.1 矛盾运镜反例新增 static shot with small amplitude shake,给出两种干净替代写法
10 §5.3 新增节 物理与镜头一致性六项检查(唯一光源真唯一 / 人物出现有过程 / 道具不跳变 / 运镜不冲突 / 三字段同件事 / Shot 编号时间戳连续)
11 §6 新增硬规则:不擅自增删改动标点(原句无句号不加句号、感叹号保留);说话方式永远写在 <d> 外
12 §8 元指令(越震撼越好/要有科技感)必须转译为具体描述,不得照抄
13 §9 自查清单 15 条 → 20 条(新增第 16-20 条:对白逐字标点 / note 预检与阻塞 / 冲突最小改动 / 剧情授权 / 十一项机械验收);自查顺序重排为预检在前
14 §10 §10.1 补核心主体未知处理;新增 §10.3 素材阻塞(生产级),明确"这不是失败,是正确行为"
15 §11 交付清单新增冲突取舍说明项;机械验收由建议升为"必须"
16 §12 来源标注补 feedback_eval(2026-08-26)与 benchmark_v2

净效果(对照 task book §六.1):七步工作流 7 步在正文各有操作细则落点(§0.5.1/§0.5.2/§0.5.3/ §0.5.4/§6/§5.3/§0.5.7);生产输入格式有专门小节 §0.6;阻塞行为由三处固定为指令式而非可选 (§0.5.2 第 2/3 条 + §0.5.8 + §10.3)。

独立复核一(算术回溯):手工重算全部非满分场景——

TS-01: (5/5×20)+(5/5×10)×7+(4/5×10) = 20+70+8 = 98   ✓(D1=5 ≥3 不封顶)
TS-08: 同结构 = 98                                    ✓
全 5 档场景: 20 + 10×8 = 100                          ✓
总分核对: 98×2 + 100×10 = 1196 → 1196/12 = 99.67      ✓
§3.3 正确阻塞(TS-09/TS-12): D7=5 + 正文类维度 N/A 记满 → 100 ✓
封顶检查: 全部场景 D1=5;无 D5/D7 落入 1-2 档 → 三道上限均未触发    ✓

独立复核二(跨引用校验,dream 经验的直接应用):单看阻塞报告无法确认"声称的预案"和 "真做出来的是什么"是否一致,故将 TS-09 阻塞报告里的预案五条逐条对照 TS-09 修正示范的实际产出: references 顺序 scene→npc→player ✓;<Picture 1>=scene 单独成条 ✓;npc/player 只作 <Subject 1>/<Subject 2> 外观来源绑定、不另起 Picture 条目 ✓;<d>[Chinese] 你出去看看</d> 无句号 ✓;蜡烛 unlit 且油灯唯一光源 ✓;女子反应中性开放 ✓。六处一致,未发现"说一套做一套"。

是否继续 round 4:不继续。理由如下,与 round2 收敛判断用的是同一套纪律:

  1. 收敛目标已达成:平均 99.67、最低 98,D1 封顶与 D5/D7 硬错误下限全程零触发; 任务书针对的 6 类失败模式(F1-F6)每一类都有场景级证据表明已被修复或规避。
  2. 剩余扣分没有可修的 SKILL 缺陷对应物:TS-01/TS-08 各扣的 1 分来自"v0.3.0 把'核心主体缺失应反问' 定为新标准,而这两条是复用的 v0.2.0 产出"。这不是 SKILL.md 写错了什么,而是基准收紧的正常结果; 改 SKILL 无法消除它,除非用 v0.3.0 重写那两个场景(本任务书明确限定它们走复用+校验路径,不得重跑)。
  3. 分数分布的高位摊平(10 个 100 分)源于 §3.1/§3.3 把阻塞与反问产出的正文类维度记 N/A 满分, 继续跑更多轮只会重复同样的结果,不会产生新的信息。

遗留需上级拍板的事项(详见 evolve_report_v2.md 第五节):① "开箱视频"类请求反问 vs 合理推定 的取向取舍(影响 §0.5.4 / §10.1 是否回调及这两个场景的 D8);② 阻塞/边界场景按 N/A 记满分导致 区分度不足的计分方式;③ 线上实际加载的是 agent.md 还是 train/evolve/SKILL.md——若线上走 agent.md, 本次重训成果尚未真正生效;④ 本轮仍未被任何场景触发的判据清单(双说话人 (S1)/(S2)、音频素材、 画外音、人物出场过程、道具跨镜头跳变、JSON 真解析),建议 Digester 下批场景优先补前两项。