关于失败的一些总结

一、项目阶段性实验总结报告

1. 当前目标

本阶段的目标是验证这样一条路线是否有效:

基于 NExT-QA 的预提取视频特征,构建显式“事件链推理”模块,包括:

  • 事件聚合(Latent Event Aggregation)
  • Grounder
  • Causal Linker
  • Chain Search
  • Chain-aware fusion

并考察它是否能:

  1. 提升整体五选一准确率
  2. 尤其提升 因果类 / 时序类 问题表现
  3. 形成具有解释性的事件链结构

二、目前一共做了多少种主要尝试

如果按“真正形成可比结果的实验版本”算,目前一共完成了 7 类主要尝试,其中:

A. 轻量基座线

  1. s1_baseline_5090
  2. s2_latent_event_5090
  3. s0_1_full_reasoner_5090
  4. s0_2_s1init_full_reasoner_5090
  5. s0_4_scratch_full_reasoner_5090
  6. s0_5_scratch_full_reasoner_5090
  7. s0_5_baseonly_5090(为题型对照专门训练的无链基座)

B. 强基座线

  1. Flipped-VQA backbone-only 抽取与评测(工程成功,作为强基座参考)

其中:

  • s0_3 做了补丁,但你没有给出完整可比评测结果,所以不纳入最终对照结论
  • s4_flipped_reasoner_train 跑通了训练链路,但没有形成最终可比的完整验证结论

所以,如果按“已形成清晰结论的实验版本”统计,是 7 个主要可比实验 + 1 个强基座参考实验


三、各实验版本的结果与结论


实验 1:s1_baseline_5090

目标

建立一个最基础的轻量五选一 baseline。

结构

  • 视频特征:clip_feats -> Linear(768→256)
  • 文本特征:hashing text encoder
  • 融合:global_video + question + option
  • 最终输出:[B,5] 分类分数

结果

  • val acc ≈ 0.3825

结论

  • 作为轻量 baseline,能跑通
  • 但 train/val 间已有明显 gap,存在过拟合倾向
  • 是一个可用的开发基线,但不是一个很稳的最终研究底座

主要问题

  1. 文本编码过轻
  2. 视频只保留 max_feats=10
  3. 更像“粗糙的多选分类器”,而不是视频推理器

实验 2:s2_latent_event_5090

目标

在 s1 基础上加入最简单的 latent event 聚合。

结构

  • 在 clip 之上聚合出一组事件
  • 但最终仍然是把事件再摘要为全局信息后参与分类

结果

  • val acc ≈ 0.3835

相对 s1

  • 提升约 +0.0010

结论

  • 基本可以视为几乎没有有效提升
  • 说明“只加一个事件聚合层”本身不能自然带来增益

失败原因

  1. 事件只是做了“摘要增强”,没有真正参与选项级推理
  2. event_summary 与 video_summary 高度近似,信息增量太小
  3. 事件结构没有真正进入答案选择路径

实验 3:Flipped-VQA backbone-only

目标

抽出原 Flipped-VQA 作为强基座参考。

结构

  • 使用原项目的 7B backbone
  • 输入预提取特征
  • 使用原 prompt / scoring 逻辑

结果

  • val acc = 0.7198

结论

  • 工程上完全成功
  • 说明:预提取特征 + LLM backbone 这条路线是可信的
  • 形成了一个很强的参考上界

意义

它不是失败,而是整个项目里目前最稳定、最强的可用底座。


实验 4:s0_1_full_reasoner_5090

目标

在轻量 baseline 上第一次完整接入 full reasoner。

结构

  • scratch 训练
  • max_feats=10
  • num_events=8
  • top_m=4
  • 含:
    • Event Aggregation
    • Grounder
    • Linker
    • Chain Search
    • Chain-aware fusion

结果

  • best val acc ≈ 0.3833

相对 s1

  • 比 0.3825 高约 +0.0008

结论

  • full reasoner 接入后,没有崩
  • 但提升极小,几乎可以视为不显著

失败原因

  1. 视频输入压缩过狠:max_feats=10
  2. 10 -> 8 events -> top4 -> chain summary
    压缩链条过长
  3. mask loss 大部分 step 近乎 0,说明“链必要性监督”几乎没真正起作用
  4. 轻量基座本身已经容易过拟合,reasoner 容易被拖偏

实验 5:s0_2_s1init_full_reasoner_5090

目标

测试:是不是因为 scratch 太难,所以改成“从 s1_baseline_5090 初始化”。

结构

  • 加载 s1 best checkpoint
  • 前两轮冻结 base
  • 后面解冻
  • 其余结构与 s0_1 相近

结果

  • best val acc = 0.3811

相对 s0_1

  • 反而更差

结论

  • “从基座初始化 + 冻结/解冻”没有解决问题
  • 所以问题不主要在“是否 scratch”

失败原因

  1. 继承的 s1 基座本身就有偏置和过拟合倾向
  2. 冻结阶段 reasoner 只能在一个不够健康的 base 上做小修小补
  3. 解冻后也没有形成更强的泛化
  4. 虽然 mask loss 比 s0_1 活跃,但没有转化成更高准确率

实验 6:s0_4_scratch_full_reasoner_5090

目标

回到 scratch,但采用更合理的设置:

  • max_feats=16
  • num_events=6
  • top_m=3

结果

  • best val acc = 0.3765

表面上看

分数比 s0_1 更低。

但更重要的观察

s0_4 的训练曲线更健康:

  • epoch 1: 0.3175
  • epoch 2: 0.3535
  • epoch 3: 0.3631
  • epoch 4: 0.3717
  • epoch 5: 0.3765
  • epoch 6 后开始掉

这说明:

  • 前期在稳步学习
  • mask loss 前期明显非零
  • 不是一开始就靠 shortcut 冲高训练精度

结论

s0_4 虽然 overall 不高,但它是目前 scratch 线里**最像在真正学“结构”**的一版。

失败/受限原因

  1. 基座本身仍然太弱
  2. 虽然 max_feats=16 比 10 更合理,但对中位数 37 clip 的视频来说仍偏少
  3. 16 -> 6 events -> top3
    仍然压缩较狠
  4. 后期出现典型过拟合,epoch 5 后 val 掉头

实验 7:s0_5_baseonly_5090 vs s0_5_scratch_full_reasoner_5090

目标

专门验证一个问题:

放松压缩(16/8/4)以后,链模块是否真的对不同题型有帮助?

结构

s0_5_baseonly

  • max_feats=16
  • 无事件链模块

s0_5_reasoner

  • max_feats=16
  • num_events=8
  • top_m=4
  • full reasoner

总体结果

  • base-only0.3739
  • reasoner0.3751
  • 总提升:+0.0012

题型拆分结果

coarse

  • causal0.3471 -> 0.3445(下降)
  • descriptive0.5148 -> 0.5302(提升)
  • temporal0.3493 -> 0.3499(几乎不变)

fine

  • CH causal-how-0.0278
  • CW causal-why+0.0062
  • TN temporal-next+0.0123
  • TC temporal-count-0.0166
  • DL/DC/DO 描述类小幅上涨

结论

这组结果非常关键:

当前这版事件链模块不是完全没用,但它带来的收益主要体现在描述类和部分局部时序子类上,而不是最想要的“因果类整体提升”。

核心失败原因

  1. 当前链模块更像“结构化摘要器”,而不是“因果推理器”
  2. 对 causal-how 这类需要真正过程性推断的题,反而起了负作用
  3. 说明它学到的是“内容组织/证据重排”,而不是稳定的显式因果链 reasoning

四、失败的共性原因总结

把所有实验放在一起看,失败/受限的原因主要集中在 6 个方面。


原因 1:输入压缩过早、过狠

你自己统计过视频特征长度:

  • median = 37
  • mean = 43.66
  • p90 = 88

而你长期在用:

  • max_feats = 10
  • 后来提升到 16

这意味着大多数视频只保留了原始 clip 序列的一小部分。

直接后果

  • 时序信息损失
  • 因果前因后果链条不完整
  • 后面的事件聚合只能在已经被裁过的序列上工作

原因 2:压缩链条太长

你现在的结构大致是:

raw clips
→ 固定采样 clip
→ 768→256
→ 聚成 K 个事件
→ 每个选项只保留 top-M 事件
→ 搜 2/3 长链
→ 再平均成一个 chain summary

这会导致:

  • 节点信息损失
  • 顺序信息损失
  • 边信息损失
  • 最终只剩一个小向量去修正分数

原因 3:Reasoner 介入太晚

当前接法是:

base answerer 先给出基本判断
reasoner 只在最后阶段做“改分”

这会导致:

  • 它不能改变模型一开始关注哪些视频片段
  • 不能改变视频-问题对齐
  • 只能做后验修正

对弱基座,这样容易被拖偏;
对强基座,这样又很难带来提点。


原因 4:轻量基座本身不够健康

s1/s0 线本身就有:

  • 文本编码太轻
  • 视频编码太浅
  • 容易过拟合
  • 容易学数据偏置

所以很多时候 reasoner 的表现,不完全反映它自己是否有用,而是被不稳定的 base 混淆了。


原因 5:缺少 query-conditioned temporal localization

你现在是:

  • 先在整段视频上聚事件
  • 再判断哪些事件支持选项

但更合理的顺序应该是:

先根据问题/选项找相关时间段
再在局部时间段内部建事件链

现在少了这一步,所以很多事件很可能根本和当前问题无关。


原因 6:监督目标与真正目标不完全对齐

你希望解决的是:

  • causal
  • temporal

但结果显示:

  • descriptive 更受益
  • causal 不升反降

这说明:

你现在的损失和架构组合,更容易学成“视频内容重组织器”,而不是“因果推理器”。


五、阶段性结论

基于目前所有尝试,我会给出下面这几个判断。

结论 1

“显式事件链”这个方向不是零信号。

因为:

  • mask loss 在某些版本活了
  • chain score 有区分
  • s0_5 并非完全不涨
  • 某些题型(描述类、局部时序类)确实受益

结论 2

但当前架构并没有把这个方向变成“有效的因果推理模块”。

特别是:

  • causal-how 掉得明显
  • causal 整体没有提升

所以目前不能说“这套架构已经证明显式事件链有效”。

结论 3

当前 reasoner 更像“结构化摘要/证据重排模块”,不像真正的因果链推理器。

结论 4

如果目标是整体提点,这条轻量 s0 线目前不成功。

可以继续做开发/诊断,但不宜再把它当主结果线。

结论 5

Flipped-VQA 这类大模型 + 预提特征的强基座,仍然是更可信的主干。

但:

  • 不能继续用“最后外接一层 chain-aware scoring”这种方式期待明显提点
  • 要改成更前置、更结构化的接法

六、目前一共做了多少种“失败或受限”的尝试

如果你是为了写报告,建议这样表述:

截至目前,围绕“轻量基座 + 显式事件链推理”与“强基座适配”共完成 7 个主要可比实验版本 与 1 个强基座参考实验
其中,事件链模块在多组实验中表现出一定结构化建模信号,但整体准确率提升有限,且未在因果类问题上形成稳定优势,说明当前架构存在输入压缩过强、reasoner 介入过晚、基座泛化不足等关键瓶颈。


七、最简洁的失败报告版本

阶段性失败总结

本阶段围绕 NExT-QA 上的显式事件链推理,共完成 7 个主要实验版本(含 baseline、latent event、full reasoner、初始化/冻结策略、放松压缩策略、无链对照等)和 1 个 Flipped-VQA 强基座参考实验。实验结果表明:

  1. 轻量 baseline 可作为开发底座,但本身存在明显过拟合与泛化不足;
  2. 仅加入 latent event 聚合几乎不带来提升;
  3. 完整的 event-ground-link-chain 架构可学到一定结构信号,但整体准确率提升极小;
  4. 从 baseline 初始化或冻结/解冻策略未能显著改善效果;
  5. 增大 clip 数和放松压缩后,训练曲线更健康,但提升主要出现在描述类问题,未能稳定改善因果类核心子任务;
  6. 当前架构更像“结构化证据组织器”,而非真正有效的显式因果推理器。
    综合来看,失败的主要原因在于:输入时间序列压缩过强、事件链多级压缩导致信息损失、reasoner 介入过晚仅能做后验修正、轻量基座本身不够强,以及缺少 query-conditioned temporal localization 这一步骤。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇