mcpField
E
experiment-craft

experiment-craft

github.com/evoscientist数据与数据库481374 次安装1 天前更新
代码仓库

关于 experiment-craft

experiment-craft 是用于诊断失败或结果异常的研究技能。它引导研究者隔离原因、验证假设,并以结构化日志记录实验结果。

主要功能

  1. 01五步实验诊断流程
  2. 02逐次增加单一因素以隔离原因
  3. 03通过针对性实验验证假设
  4. 04结构化实验日志
  5. 05将诊断结果交接给 experiment-pipeline

适用场景

  1. 01排查异常实验结果
  2. 02找出导致失败的变更
  3. 03针对失败案例验证修复方案
  4. 04记录结果以规划下一次实验

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/evoscientist/evoskills --skill experiment-craft

安装后在 Claude Code 中输入/experiment-craft确认已加载。

附带文件assets/experiment-log-template.mdreferences/debugging-methodology.md

详细介绍

实验构思

一种系统化的研究实验运行、调试与迭代方法。最关键的技能不是运行更多实验,而是理解实验失败的原因。

何时使用此技能

  • 用户的实验不起作用或产生了意料之外的结果
  • 用户需要帮助诊断某种方法为何在特定数据上失效
  • 用户想通过结构化日志整理实验流程
  • 用户询问如何调试研究代码或迭代方法
  • 用户提到“实验调试”“为什么不起作用”“实验日志”“结果有误”

此技能通常在某个阶段尝试失败时,从 experiment-pipeline 中加载。调试完成后,返回该流水线的阶段关卡结构继续执行。也可单独用于任何实验调试。

调试思维方式

找出实验失败的原因,是最关键的研究技能。 不分析结果会导致两种失败模式:

  1. 进展缓慢:不理解失败原因,只是随机运行实验
  2. 浪费时间:因为忽略了激活技巧而放弃有效方法

目标不是运行更多实验,而是运行正确的实验——能够隔离原因并检验具体假设的实验。

5 步诊断流程

实验失败或产生意料之外的结果时,请按以下五个步骤进行:

步骤 1:收集失败案例

收集具体的错误结果示例。查看实际输出,而不只是汇总指标。具体出了什么问题?失败是系统性的还是随机的?

步骤 2:找到可行版本

你需要一个可行的基线。可以通过两种方式找到:

  • 简化任务:降低数据复杂度、放宽任务设置、增加监督信息或使用更简单的输入
  • 移除你的改动:从基线方法开始,逐一移除算法改进

如果找不到任何可行版本,就进一步简化,直到某个版本能够运行。总有足够简单且可行的版本。

步骤 3:逐步缩小差距

从可行版本出发,逐步增加复杂度,直到它失效:

  • 每次只增加一个因素(更复杂的数据、一项算法改动或一项约束)
  • 找出导致失败的单一因素
  • 找出的原因越具体,诊断就越有用

这一步用于隔离原因。没有这一步,你只能靠猜。

步骤 4:提出假设并验证

根据步骤 3 中隔离出的原因:

  1. 列出该因素导致失败的可能解释
  2. 根据你的理解和相关文献,按可能性排序
  3. 设计有针对性的实验,逐一验证或排除各项假设
  4. 通过实验确认实际原因,不要只凭直觉判断
步骤 5:提出并实施修复方案

根据已确认的原因:

  • 搜索能解决这一具体原因的技术(使用 research-ideation 技能中的文献树)
  • 设计针对已确认原因而非表面症状的修复方案
  • 在原始失败案例上验证修复是否有效
  • 检查修复是否会破坏原本可行的案例

有关详细的分支逻辑和原因分类,请参阅 references/debugging-methodology.md。

违反直觉的实验规则

进行实验时,请优先遵循以下规则:

  1. 一次只改变一个变量:如果同时改变两项内容且实验成功,你就不知道究竟是哪项修复了问题。如果同时改变两项内容但实验失败,你也不知道是哪项出了问题。每次只改变一个变量,单次实验耗时更长,但总体效率更高。
  2. 快速迭代依赖有效实验,而不是更多实验:盲目实验会让情况变得更糟。一次设计完善的诊断实验,胜过十次随机试验。
  3. 有些优秀的技术单独使用时并不起效:它们需要特定的激活技巧,例如学习率调度、初始化方案和数据预处理步骤。不要因为一次尝试失败就放弃某项技术。请查阅相关论文,了解其中未公开的技巧。
  4. 查阅相关论文,了解其中的技巧:解决类似技术难题的论文,往往会在补充材料或代码中隐藏关键实现细节。这些技巧可能决定某项技术能否奏效。
  5. “排除所有不可能的情况后,剩下的无论多么不可思议,都必然是真相”:系统性排除胜过直觉。调试时,请明确列出所有可能原因,然后通过有针对性的实验逐一排除。

实验记录

每次实验都应记录以下五个部分。请使用 assets/experiment-log-template.md 中的模板。

部分记录内容
目的为什么进行这次实验;你期望从中了解什么
设置数据、算法改动、超参数——复现实验所需的一切
结果定量指标 + 定性观察 + 具体的成功或失败案例
分析结果是否符合预期?如果不符合,请按可能性从高到低列出推测原因
后续步骤根据分析采取什么行动——你就是项目负责人

“后续步骤”是最重要的部分。 不要等别人告诉你接下来该做什么。分析结果,并自行提出下一次实验。这正是研究人员与技术人员的区别所在。

跨周期学习:如果使用 experiment-pipeline,实验记录会输入到 evo-memory 的 ESE(实验策略演进)机制中。请使用 [Reusable] 标记可复用的策略,以便 ESE 在未来周期中提取这些策略。

返回 experiment-pipeline

完成 5 步诊断流程后,返回 experiment-pipeline,并提供:

  • 已确认的失败原因(来自第 4 步)
  • 提出的修复方案及其验证状态(来自第 5 步)
  • 更新后的实验记录条目

移交给论文撰写

实验成功且已获得一套完整结果后,请将以下材料交给 paper-writing:

材料来源用途
最终实验结果(表格和图表)实验记录实验部分
消融研究结果诊断实验消融表格
失败案例分析第 1 步 + 第 3 步局限性讨论
关键实现细节和技巧第 3–5 步方法部分 / 补充材料
基线对比结果第 2 步对比表格

参考资料导航

主题参考文件使用时机
调试方法debugging-methodology.md诊断实验失败的原因
实验记录模板experiment-log-template.md记录实验详情

评论

支持 Markdown