Files
InfoRSI/prompts/tasks/ablationImplementation.md
T
iomgaa 446e26224e feat: 任务书 09,materials 模块与提示词
- src/materials:每种提交一个材料函数,生成给模型看的材料、第一条消息、对号清单、能读的代码版本;查询只在材料内按编号找;读提示词并算原始字节哈希;信念本按方法.md 6.10 现算。
- 账本里只存成 Json 的冻结协议、位置表、决定、结算的形状和编号规则由 materials 定义并导出。
- vocab 加 Checklist(对号清单)。
- prompts/:参考项目 3 份角色提示词、16 份任务说明,只做必要改动。
- TASK.md 补一句 unversionedNames 不存进代码版本。
- 方法.md 4.3 ① 改为"研究者任务"放信念本;结构.md vocab 上限 1150、补 materials 对外内容。

用户 2026-10-03 开工前的四个决定(选的都是推荐项):"甲:上限改 1150,只放对号清单";"甲:materials 定义并导出";"不放,改方法.md ① 的措辞";"按原提案挑"。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 04:08:46 -04:00

4.0 KiB

消融实现

本轮被采纳的改法由几个因子组成。研究者想知道每个因子各撑了多少分,办法是从完整代码出发,一次只关掉一个因子、其余照旧,再跑一次正式实验——这样的一次叫一格。分派给你的是其中一格:材料"这一格"一节写明要关哪个因子、关掉时换成什么。你的工作目录是完整代码(被采纳的那份)的副本,每次都从完整代码出发;完整代码和本批基线的冻结目录都写在材料"完整代码(消融的起点)"一节。

只关这一个因子

把指定的因子换回它关掉时的做法:因子里写了"关掉时换成"的,照写的做;没写的,回到本批基线在这件事上的做法——去基线的冻结目录里看它原来怎么写。其余的因子、因子自带的设定值、保障都照完整代码保留,一处都不动。保障所有版本都带,这一格也一样。

指标的采集代码也照完整代码保留:这一格同样采集冻结协议登记的全部指标。被关掉的因子本身测不到的量(比如只有那个因子才会计数的次数),写 null,不写 0——这一格不会因为它缺失而作废,这是消融的本义。两个保留键照写:关掉的因子不会再是答案路径;关掉之后答案改由某条保障给出,answer-path 就写那条保障的短名,safeguard-triggers 照实计数(系统提示词"两个保留键")。

材料里有完整代码那次实现交的因子位置表,照它找这个因子在哪几行。位置表只是线索:一个因子的代码可能散在几处,也可能跟别的因子共用一段;共用的那段里,只改属于这个因子的部分。

这一格之所以只关一个因子,是因为它要回答的问题是"少了这一个因子,分数少多少"。你多关了一处,测出来的就是两件事一起少掉的分;少关了一处,这个因子就还有一部分开着。两种都会让研究者对这个因子的判断建立在错的数上,而且从分数上看不出来。

真的跑不起来时

只关这一个因子以后,代码有时真的跑不起来:比如别的因子要用一个只有这个因子才算出来的量。这时才考虑连带关掉别的因子——在 alsoOff 里写上还要一起关的因子,在代码里把它们也换回关闭做法,并在 concerns 里写清为什么离了这个因子它们跑不起来。

"关掉以后效果会变差"不是跑不起来:消融要测的正是变差多少,照样只关指定的因子。也不要为了让它更好跑而改别的地方。

连一起关的办法也给不出,就交"这一格跑不起来",在 cannotRun 里写原因:这一格不启动、不扣运行次数,研究者会读到你写的原因。这是一个正常的结论。

材料里没有任何成绩和研究者的判断,这是有意的——你照因子清单做就行,不用知道哪个因子被认为更重要。不要自己跑正式实验去看关掉以后的分数(系统提示词"两条纪律");想确认能被正式实验接上,用 research_check。

交之前用 diff -ru <完整代码冻结目录> . 看一遍:改动应该只落在这个因子(和你写进一起关的因子)的位置上,加上把这个因子的指标改写成 null 的那几行。

关掉这个因子以后,你读代码看出某处会出问题——最常见的是:没有了这个因子,某条保障从"很少用到"变成了"每次都用上"(比如兜底分支每次都交答案)——写进 concerns,说清是哪条保障、为什么。这一格量到的可能就是那条保障,研究者需要在读结果时知道。照常只关指定的因子,不因为担心就改别处。没有就写"无"。

交什么

需要一起关的因子(alsoOff,只关指定的因子就交空数组);跑不起来时的原因(cannotRun,跑得起来写 null);实现时发现的问题(concerns,有一起关的因子时在这里写清为什么;没有写"无")。核验员会对着改动逐个因子看它是关着还是开着。