docs: 方法加诊断(每轮提案前在当前基线上做诊断实验),消融默认关;写任务书 18

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-05 09:12:06 -04:00
parent 7a78dcdeba
commit 44ccc97d7b
4 changed files with 493 additions and 39 deletions
+134 -32
View File
@@ -14,19 +14,21 @@
1. **持续提出值得试的改法**:从目标、代码和历史结果里找方向。
2. **知道每次运行让我们多知道了什么**:模型能给出数值范围,但给得偏自信,几位研究者之间也高度相关,所以不能直接当概率用。程序要把这些范围换算成可用的把握,用它来选实验、决定要不要花运行去查原因,并持续核对这些范围准不准。
3. **弄清每次成功是哪一部分起了作用**,并把这个认识带进下一轮。
3. **弄清当前卡在哪里、剩下的空间在哪**,并把这个认识用到本轮的提案上。
每一轮研究交出三样东西:
- 更好的代码;
- 按因子的知识:被采纳改法里,信息价值认为值得测的因子"关掉它少多少分"的实测;
- 对当前程序的诊断:几种"卡在哪里"的解释,哪些被实测确认、哪些被否定,各个方向实测还能涨多少;
- 能度量的认识收窄:信念本和比特。
方法有三层,三层都要保住:
- 正向找改法、反向查原因的闭环;
- 正向找改法、反向诊断当前程序的闭环;
- 信息度量:范围、信念本、比特、信息价值;
- 以因子为单位做消融、记录知识。
- 以解释为单位做事前预测、用实验确认或否定。
决定下一步往哪走,靠的是在当前最好的程序上动一处、看分数怎么变(诊断)。把已采纳的改法一个因子一个因子关掉、看各撑几成(消融),回答的是"功劳怎么分",作为可选步骤保留,现行配置关闭(第十一部分)。
分工的根本原则:程序推进阶段、执行数学规则、保存不可改的记录;模型负责提案、实现和解释。模型在对话里说"已经提交"不算数,以正式记录为准。
@@ -62,7 +64,13 @@
**撑几成**:关掉一个因子后少掉的分数,占这个改法总提升的比例。
**解释**:研究者对"每个因子起多大作用"的文字判断,外加对每一格给的三个数。每条解释在每一格上,看实测是否落在它自己给的一成到九成之间:落在里面记**确认**,落在外面记**否定**。
**诊断**:每轮提案之前,在当前基线的程序和它交出的答案上做几个诊断实验,用一次正式运行跑完,看剩下的提升空间藏在哪里。
**诊断实验**:在当前基线上只动一处,再看分数。动法有四种:把某一步换成明显更强的版本、换成另一种做法、拿掉、放宽某个限制。每个诊断实验都要交出一个能判分的答案。
**诊断解释**:研究者对"为什么卡在这里、剩下的空间在哪"的文字判断,外加对每个诊断实验给的三个数。
**解释**:研究者对"每个因子起多大作用"的文字判断,外加对每一格给的三个数。诊断解释和消融的解释用同一套判法:每条解释在每个实验或每一格上,看实测是否落在它自己给的一成到九成之间,落在里面记**确认**,落在外面记**否定**。
**信息价值**:先测某几格再决定下一步,比不测就决定,平均能多拿多少分。**机会成本**:这几次运行如果拿去跑正向候选,本来平均能多拿多少分。
@@ -102,9 +110,9 @@
| 角色 | 人数 | 工具 | 做什么 |
| ------ | ------ | --------------- | --------------------------------------------------- |
| 研究者 | N(可配置) | 只读工具、提交工具、私人笔记 | 写入口、提案、预测、挑刺、回应、解释、收尾 |
| 实验员 | 按任务派 | 完整的文件与 shell 权限 | 按冻结协议实现、做轻量检查、按核验意见修复、实现消融格 |
| 核验员 | 按任务派 | 只读工具、提交工具 | 逐项核对实现是否落实了冻结协议 |
| 研究者 | N(可配置) | 只读工具、提交工具、私人笔记 | 写入口、诊断解释与诊断实验、提案、预测、挑刺、回应、解释、收尾 |
| 实验员 | 按任务派 | 完整的文件与 shell 权限 | 实现诊断实验、按冻结协议实现、做轻量检查、按核验意见修复、实现消融格 |
| 核验员 | 按任务派 | 只读工具、提交工具 | 逐项核对实现是否落实了诊断实验的写法或冻结协议 |
| 程序(宿主) | — | — | 推进阶段、保管冻结记录与评测文件、启动正式运行、从原始产物独立算分、执行全部数学规则、记账、现算信念本 |
| Jev 判别 | — | — | 回答封闭问题,例如两条提案是不是同一个改法、一处实现改动有没有某种性质;程序根据回答合并、退回或拒收 |
@@ -124,7 +132,7 @@
1. **任务说明**:这一步做什么,交给谁读。
2. **你自己的**:你认领的入口、你的私人笔记全文、你自己的候选的运行与消融结果、实验员对你的候选的提醒、答案路径。
3. **公共材料**:任务与本轮情况、基线、研究记录、信念本、上一轮收尾、挑刺与回应、指标清单等。正式证据一样不少;第 2 部分已经给过的内容,这里只写一句指引。
3. **公共材料**:任务与本轮情况、基线、本轮诊断结果、研究记录、信念本、上一轮收尾、挑刺与回应、指标清单等。正式证据一样不少;第 2 部分已经给过的内容,这里只写一句指引。
4. **现在交什么**。
**私人笔记**:用来记你自己的判断,尤其是这几样:
@@ -192,12 +200,49 @@
- 上一轮没跑、而且基线没变的候选,自动留在本轮候选池里。它们沿用原来的冻结协议和回应,不重新挑刺、不重新回应,只重新做第二次预测。作者自评继续封存,作者也不用重新给。留池候选不占作者本轮的提案名额,候选池不设上限。
- 基线变了的旧候选离开候选池,只在信念本里列出名字,可以重新提出。
**诊断(诊 1–诊 4)**
余额不到 2 次时,本轮不诊断,诊 1–诊 4 都不做,保证本轮至少还能跑 1 次正向。配置关掉诊断时也不做(第十一部分)。
*诊 1 诊断解释与诊断实验(每位研究者,各自独立)*
- 材料:当前基线的代码,产出当前基线的那次正式运行的答案、分数和指标,信念本,上一轮收尾。第 1 轮的基线是任务给的原始代码,材料里还有第零轮的全部记录。
- 每人交两样:
- 1 至 M 条诊断解释。每条写:为什么卡在这里,剩下的空间在哪,什么样的实测会推翻它。
- 1 至 A 个诊断实验(A 可配置,见 6.11)。每个写:在当前基线上动哪一处、怎么动;它能把哪几种解释分开。可以登记假设专用指标,只能选"缺了只记缺失"。
- 诊断实验的正文里不写自己估的分数,分数在诊 2 交。
- Jev 检查每个诊断实验有没有三类问题:改动了评测、自相矛盾、写得太含糊没法照着实现。有就退回。
- 收齐 N 人后,诊断解释的文字冻结。
*诊 2 合并与诊断预测*
- Jev 判断诊断实验之间是不是同一个实验。同一个的合成一个,保留全部作者,正文取作者里编号最小的那一份。
- 合并后的诊断实验清单和全部诊断解释公开。
- 每位研究者对自己的每条诊断解释,给每个诊断实验交三个数:"按这条解释,做了这个实验,分数有一成、一半、九成可能低于多少"。别人提的实验也要给,拿不准就把一成和九成拉开。看不到别人这一步交的数。
- 收齐 N 人后冻结。冻结必须早于诊断运行启动,这样这些范围才算事前预测。
*诊 3 定做不做、做哪几个(程序)*
- 按 6.12 用信息价值减成本选出要做的诊断实验,或者定本轮不诊断。写一条决定记录,附上全部数字。
- 本轮不诊断时,直接进 ②;材料里"本轮诊断结果"一节写"本轮没有诊断:原因"。
*诊 4 实现、核验、运行与结算*
- 一位实验员把选中的全部诊断实验写进一份诊断程序。每个实验都从当前基线的代码和产出当前基线那次运行的答案出发,只动它写的那一处,交出自己的答案。实验员交代码、每个实验的位置表和 `concerns`。
- 程序检查有没有改不许改的文件;Jev 检查代码改动,查的五类问题同 ⑨。
- 核验员逐个实验核对:有没有照写法做,有没有动写法以外的地方。不通过就退回实验员修复,次数上限同 ⑨。用完了仍不通过的实验从这次诊断里拿掉,记"证据不足:核验不通过";一个都不剩时本轮不诊断,不扣次数,记一条事件。
- 正式运行:全部实验在一次正式运行里跑完,扣一次运行次数,登记、启动、扣次的规矩同 ⑩。单次时限和核数照任务规定,由这次的实验平分时间。每个实验的答案由任务的独立校验器单独判分,需要时先合法化。某个实验跑崩、超时、没有产物或修不了,只这个实验记"证据不足",其余照常判分。
- 结算(6.12):每个实验的实测分数;每条诊断解释在每个实验上确认或否定;世界比特和惊讶;程序按诊断推出的方向。
- 结果整份公开,写进信念本的诊断历史,放进本轮之后全部研究者任务的材料。
- 诊断实验的答案不采纳为基线:它是在已有答案上接着算出来的,不是一份能在单次时限内从头交出答案的代码。诊断指出的方向,要在本轮写成提案,经正向运行拿分。
**② 提案(每位研究者,各自独立)**
- 每人交 1 至 M 条合格提案,每条按因子写,格式见第五部分。
- 正文里不写自己估的分数或提升量,那属于作者自评,要封存。可以引用已经测到的分数,并写明出自哪次运行。
- 文献结论和别人报告的数值只能当起点,要说明与本任务的区别。
- 从第 2 轮起,要说明哪些新的观测影响了这条提案。
- 要说明哪些新的观测影响了这条提案,包括本轮的诊断结果。第 1 轮没有诊断时不用写。
- 冻结协议可以写"照诊断实验 dN 的做法",实现这个候选的实验员会拿到本轮诊断程序的代码作参考。
- 因子超过上限时,把多出来的留到下一轮,不要几个捆成一个因子交。超过上限的提案退回本人重交。
- 交不出合格提案时,在回复里写清卡在哪里,不凑数。这按内部错误处理:研究停下,写明原因。
@@ -276,6 +321,7 @@
**⑫ 采纳(程序)**
- 只看正向运行的实测分数。最好的有效候选比当前基线高出采纳线以上,就成为新基线;否则保留原基线。
- 配置关掉消融时(现行配置),⑬–⑰ 都不做,直接跳到 ⑱。
- 被采纳的改法如果只有 1 个因子,正向运行本身就是这个因子的实测,不做消融,直接跳到 ⑱。
- 没有采纳任何候选时,也跳到 ⑱。
@@ -335,7 +381,7 @@
### 4.4 研究结束
1. 运行次数用完,研究结束(第七部分"什么时候开下一轮")。
2. 导出全部记录:正向、消融、两次预测、第零轮、提交的替换次数、解封的作者自评、合法化、资源用量、答案路径、`concerns`、两条曲线、常数表。
2. 导出全部记录:诊断、正向、消融、诊断预测与两次预测、第零轮、提交的替换次数、解封的作者自评、合法化、资源用量、答案路径、`concerns`、两条曲线、常数表。
---
@@ -353,6 +399,9 @@
| ----------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ----------------------------------- |
| 入口(0.1、0.2) | 名称(编号由程序按顺序分配) | 从哪里开始看、为什么值得走 | 编号用于认领与分配 |
| 讨论(0.2) | 可选:替换后的入口清单 | 讨论正文 | 转给下一次讨论与认领 |
| 诊断解释与实验(诊 1) | 诊断解释清单(每条的编号由程序分配);诊断实验清单:每个实验的名称、动哪一处、指标登记 | 每条解释:为什么卡在这里、空间在哪、什么实测会推翻它;每个实验:怎么动、能分开哪几种解释 | 合并实验、诊 2 的材料、选诊断实验 |
| 诊断预测(诊 2) | 自己每条诊断解释对每个诊断实验的三个数 | 理由 | 选诊断实验、确认 / 否定、信息账 |
| 诊断实现 / 修复 / 核验 | 每个实验的位置表;`concerns`;核验的逐个实验结果(照没照写法做、有没有动写法以外的地方)(代码由程序冻结) | 实现说明 | 诊断运行;核验不通过的实验退回或拿掉 |
| 志愿(0.3) | 入口编号的有序列表 | — | 分配 |
| 提案 | 因子清单:每个因子的编号、名称、做法、关键设定(决定效果的设定值,没有写"无")、关掉时换成什么(可省)、延续(信念本里的因子编号,或空)。保障清单:每条一个短名。指标登记。作者自评的三个数 | 每个因子为什么可能有效;每条保障做什么、属于拦 / 补 / 改哪一种、自检时怎么想的;协议(不许改什么、随机性怎么处理、何时停、什么样的运行不算数);因子之间的关系 | 数因子个数、列消融格、信念本按因子归并;保障短名用来对号;作者自评封存 |
| 第一次预测 | 本轮每个新候选的三个数 | 理由 | 和第二次预测对比、信息账 |
@@ -423,6 +472,7 @@
- **正向**:在同一次选批里,取所有人对所有候选的折线(含尾巴)的最低点 L 和最高点 U,令 W = U − L,开放预留 U(x) 在 \[L − W/2, U + W/2\] 上均匀铺开。
- **消融**:每一格单独定 L 和 U,因为关掉不同的因子,分数可能差得很远。
- **诊断**:每个诊断实验单独定 L 和 U,理由同消融。
- **合并**:F(x) = (1 − λ) × \[F₁(x) + … + F\_N(x)\] ÷ N + λ × U(x),λ 是方法参数,现行值 0.10。
- 各人等权,不按以往战绩加权,也不往两头推。
- 同一个人交了几条解释时,他的那一份权重在这几条之间平分。
@@ -559,12 +609,12 @@ VOI(S) = E_{S 的结果}[ max_p E(收益_p | S 的结果) ] − max_p E(收益_p
### 6.9 比特、惊讶、核对范围准不准
- **格宽** Δ = ε/100,是一把固定的尺子,不随规则或其他配置变。填圆的 Δ = 0.0001。正向和消融格都从本批基线 b 起切,第 j 小格是 \[b + jΔ, b + (j+1)Δ)。
- **世界比特** = −Σ\_j p\_j log₂ p\_j,p\_j 是合并分布落在第 j 小格的把握。正向用候选的合并分布,消融格用 6.3 的成分混合。
- **格宽** Δ = ε/100,是一把固定的尺子,不随规则或其他配置变。填圆的 Δ = 0.0001。正向、诊断实验和消融格都从本批基线 b 起切,第 j 小格是 \[b + jΔ, b + (j+1)Δ)。
- **世界比特** = −Σ\_j p\_j log₂ p\_j,p\_j 是合并分布落在第 j 小格的把握。正向用候选的合并分布,诊断实验和消融格用 6.3 的成分混合。
- **惊讶** = −log₂ p,p 是实测所在那一小格的事前把握。事前把握为 0 时,记"事前把握为 0,惊讶算不出",不拿 0 或无穷大顶替。
- **分歧量**(只记录)= 各人折线等权平均后的世界比特 − 各人世界比特的平均值。这里的平均不掺开放预留,所以大家交的范围完全一样时分歧量为 0。
- 只对有效分数记比特和惊讶。世界比特、惊讶、分歧量、分数尺读数和战绩都用第二次预测来算。
- 范围是偏宽还是偏窄,看落点四段和覆盖率。按人分开、按正向与消融分开报告,第一次和第二次预测也各报一份。估得准时,覆盖率约 80%,四段比例约 1 : 4 : 4 : 1。
- 只对有效分数记比特和惊讶。世界比特、惊讶、分歧量、分数尺读数和战绩,正向都用第二次预测来算,诊断用诊 2 的预测来算。
- 范围是偏宽还是偏窄,看落点四段和覆盖率。按人分开、按正向、诊断与消融分开报告,第一次和第二次预测也各报一份。估得准时,覆盖率约 80%,四段比例约 1 : 4 : 4 : 1。
- 比特的多少首先取决于大家事前说得有多宽,所以"比特变少"不能单独证明学到了东西,必须和惊讶、落点一起看。
- 衡量好坏的尺子只有一把:比特、惊讶、覆盖率永远按同一个算法、从每个人的原始范围算出来,不跟着选批、选格这些决策规则一起变。
@@ -579,13 +629,14 @@ VOI(S) = E_{S 的结果}[ max_p E(收益_p | S 的结果) ] − max_p E(收益_p
- 答案出自哪里;
- 撑几成为负时写"关掉 pN 反而更好 X 分(实测)";过了采纳线时,再加一句"已采纳为下一轮基线(消融中发现)"。
2. **每次消融一句程序读出的结论**,外加一行:"程序按方向收益押的因子:pN(预测收益 X)。这只是按公式推出来的参考,你可以不跟。"不押时写明原因。
3. **选批历史**和各次运行结果,包括合法化扣掉的分和资源用量。
4. **战绩**,按人、分正向与消融写;偏高、偏低、穿上沿、穿下沿都在分数原值上判,不按任务方向翻转:
3. **诊断历史**:每轮的诊断解释、诊断实验和实测分数,每条解释在每个实验上确认还是否定,没做的实验和原因,外加一行"程序按诊断推出的方向:dN(实测 +X)。这只是按公式推出来的参考,你可以不跟。"本轮没有诊断时写明原因。
4. **选批历史**和各次运行结果,包括合法化扣掉的分和资源用量。
5. **战绩**,按人、分正向、诊断与消融写;偏高、偏低、穿上沿、穿下沿都在分数原值上判,不按任务方向翻转:
- 中位数偏高几次、偏低几次;
- 被穿过上沿几次、下沿几次;
- 包住几次;
- "作者自评 vs 大家合并"那一栏,只收已经跑过、有有效成绩的候选。
5. 因为基线变了而离开候选池的旧候选名字。
6. 因为基线变了而离开候选池的旧候选名字。
### 6.11 常数与参数
@@ -598,6 +649,8 @@ VOI(S) = E_{S 的结果}[ max_p E(收益_p | S 的结果) ] − max_p E(收益_p
| u、衰减 r | 0.5、0.5 | 方法参数 |
| 第零轮讨论次数 | 2 | 可配置(1 或 2) |
| 修复次数上限〔自定,取自参考项目〕 | 1 | 方法参数 |
| 每人每轮诊断实验上限 A | 2 | 方法参数 |
| 一次诊断最多做几个实验 D | 4 | 方法参数 |
| 轻量检查(每个实现任务)〔自定,取自参考项目〕 | 最多 2 次,每次 5 秒 | 方法参数 |
| 采纳线上限 | ε | 跟随 ε |
| 采纳线下限、剩余空间下限、比特格宽 Δ | ε/100 | 跟随 ε |
@@ -609,6 +662,44 @@ VOI(S) = E_{S 的结果}[ max_p E(收益_p | S 的结果) ] − max_p E(收益_p
方法参数只在做方法实验时才改。配置对话不逐项问,按本表的现行值写进配置文件,给用户看过;研究开始时,全部取值冻结进账本。
### 6.12 诊断:方向收益、信息价值、选实验、结算
**成分与权重**:同 6.7。每条诊断解释算一个成分,开放预留也算一个成分。解释合起来占 1 − λ,研究者之间等权,同一个人的几条解释平分他那一份;开放预留占 λ。每个成分对每个诊断实验都有一个分布:解释用它自己的三个数补上尾巴后的折线,开放预留用这个实验的均匀分布(6.3)。同一个成分里,各实验之间互相独立。
**方向收益**:设当前基线分数为 b,诊断实验 d 实测为 x,往这个方向走的收益是
g_d(x) = x − b
越小越好的任务按 6.1 换算成改进量。它量的是"做了这件事比现在高多少",也就是这个方向还剩的空间。另有一个选项"这几个方向都不走",收益为 0。
**信息价值**:做实验组合 S 的价值为
VOI(S) = E_{S 的结果}[ max(0, max_d E(g_d | S 的结果)) ] − max(0, max_d E(g_d))
- max_d 取遍合并后的全部诊断实验,包括没选进 S 的。
- 成分权重的更新、做了的实验用实测、没做的实验用新权重加权平均,以及积分方法,都同 6.7。
**价值减成本**:
- 价值(S) = u × m′ × VOI(S)。u、m′ 同 6.7,其中 R̂ = ⌈(余额 − 1) ÷ 每批上限⌉。
- 成本 = 2ĝ₀ × \[(K + 1) ÷ (K + 2) − K ÷ (K + 1)\],K 是每批上限,ĝ₀ = max(0, max_d E(g_d))。不管做几个实验,诊断都只占一次运行,所以任何非空组合的成本都相同。
- 净值(S) = 价值(S) − 成本。
**选实验**:
1. 余额不到 2 次时不诊断。
2. 合并后的实验不超过 D 个时,只看"全做"这一个组合;超过 D 个时,看所有恰好 D 个实验的组合。多做一个实验,信息价值只会不变或变大,成本又不变,所以只比较装满的组合。
3. 取净值最大、并且净值 &gt; 1e-12 的组合。净值相差不到 1e-12 的视为相同,按实验编号从小到大比。都不大于 1e-12 时,本轮不诊断。
4. 没选中的实验记"没做",写明原因("放不下"或"信息价值不足以抵过成本"),附上含这个实验的组合里净值最大的那个净值。没做的实验以后不补,研究者下一轮可以重新提。
**结算**:
- 每个实验的结局:有效分数,或"证据不足:原因"(跑崩、超时、没有产物、修不了、核验不通过)。证据不足的实验不判、不记账。
- 每条诊断解释在每个有效实验上,实测落在它自己的 \[q₁, q₉\] 里面(含两端)记确认,落在外面记否定。确认与否定只是这个实验上事前预测的记录,不代表解释为真的概率。
- 世界比特和惊讶按 6.9。
- **诊断推出的方向**:按有效实验的实测更新成分权重(实测落在所有成分范围之外时保持起始权重,同 6.8);有效实验用实测换算收益,其余实验用新权重估。收益最大的实验就是诊断推出的方向,记下实验编号和收益;最大收益不为正时,记"诊断没有指出能涨分的方向"。它只写进信念本作参考,不强制。
- 每轮最多一次诊断结算。
---
## 七、预算与扣次
@@ -622,7 +713,7 @@ VOI(S) = E_{S 的结果}[ max_p E(收益_p | S 的结果) ] − max_p E(收益_p
**什么时候扣次数**
- 基线、正向候选、消融格,都按实际启动计入。
- 基线、诊断、正向候选、消融格,都按实际启动计入。一次诊断不管做几个实验,都只算一次。
- 启动前先预留一次名额,确认进程已经启动,才扣一次。
- 启动后失败、超时、被取消,照样计数。
- 确认没有启动就取消的,退还名额;已经发生的准备成本照样记录。
@@ -633,23 +724,26 @@ VOI(S) = E_{S 的结果}[ max_p E(收益_p | S 的结果) ] − max_p E(收益_p
**什么时候开下一轮**
- 余额至少还有 1 次,就开下一轮;余额为 0,研究结束。不设轮数上限。
- 本轮正向的批量 k = min(每批上限, 余额)。
- 诊断只在余额至少 2 次时做(见 6.12)。
- 本轮正向的批量 k = min(每批上限, 余额),余额取诊断之后的。
- 消融最多测"余额 − 1"格,保证下一轮至少还能跑 1 次正向(见 6.7)。
- 最后一次正向如果用掉了全部余额,又采纳了多因子改法,这次采纳就没有消融,各格记"没测:剩余次数不够"。
**示例**(推演,不是真实运行):运行次数 13,每批上限 2。消融选哪几格是假设的。
**示例**(推演,不是真实运行):运行次数 13,每批上限 2,诊断开、消融关(现行配置)。诊断做不做、采纳与否都是假设的。
| 时点 | 用掉 | 余额 | 发生什么 |
| ------- | ---: | ---: | ---------------------------- |
| 基线 | 1 | 12 | |
| 第 1 轮正向 | 2 | 10 | 采纳一个 3 因子改法 |
| 第 1 轮消融 | 2 | 8 | 假设信息价值减成本选中 2 格;第 3 格记"没测" |
| 第 1 轮诊断 | 1 | 11 | 选中 3 个诊断实验,一次运行跑完 |
| 第 1 轮正向 | 2 | 9 | 采纳一个 3 因子改法 |
| 第 2 轮诊断 | 1 | 8 | |
| 第 2 轮正向 | 2 | 6 | 没有采纳 |
| 第 3 轮诊断 | 0 | 6 | 假设大家的诊断解释预测一致,信息价值不抵成本,本轮不诊断 |
| 第 3 轮正向 | 2 | 4 | 采纳一个 2 因子改法 |
| 第 3 轮消融 | 0 | 4 | 假设大家都押同一个因子,信息价值为 0,两格都记"没测" |
| 第 4 轮正向 | 2 | 2 | 没有采纳 |
| 第 5 轮正向 | 2 | 0 | 余额用完,研究结束 |
| 第 4 轮诊断 | 1 | 3 | |
| 第 4 轮正向 | 2 | 1 | 没有采纳 |
| 第 5 轮 | 1 | 0 | 余额不到 2 次,不诊断;正向跑 1 个候选,研究结束 |
---
@@ -670,7 +764,7 @@ VOI(S) = E_{S 的结果}[ max_p E(收益_p | S 的结果) ] − max_p E(收益_p
- 圆心在正方形外,或者半径缩到 0 仍不合法,判为修不了。
3. 修完的分数如果比原分数还高,直接报错。
4. 每次运行多记三样:原违反量、原分数、合法化扣掉的分数。
5. 跑崩、超时、没有产物、修不了的运行,照样扣次数,记为失败。正向运行出现这种情况不能被采纳;消融格记"证据不足"。
5. 跑崩、超时、没有产物、修不了的运行,照样扣次数,记为失败。正向运行出现这种情况不能被采纳;诊断实验和消融格记"证据不足"。
**防作弊靠结构,不靠审查**
@@ -699,8 +793,8 @@ VOI(S) = E_{S 的结果}[ max_p E(收益_p | S 的结果) ] − max_p E(收益_p
- **每个花钱的动作都先登记、再执行、再登记结果**,包括正式运行和模型调用。每次启动都走同一条恢复路径:从账本读出当前状态,找出已经登记、但还没有结果的动作,逐个核对。
- 正式运行能核对出"确认启动"或"确认没启动"的,按第七部分扣次数或退还;核对不出来的,记"状态未知"并停下。
- 模型任务还没有收下提交的,重新发起;已经收下提交的,以账本为准。
- **驱动了实际动作的决定,一经写入,恢复时就按原决定走,不重算。** 这类决定包括:选批、测哪几格、入口分配、押的因子。还没写入的决定,由同一个纯函数从账本里的输入重新算出,结果相同。这里不用全局随机数;需要随机时,种子由研究编号、轮次、版本算出。
- **同一格只结算一次**,同一条解释在同一格上只有一行账。重复读取、导入、恢复,或者换个编号重建同一次消融,都不会再记一次账。同一次运行服务于不同的比较时,记录共享同一个来源,不算成几份独立的证据。
- **驱动了实际动作的决定,一经写入,恢复时就按原决定走,不重算。** 这类决定包括:选批、做哪几个诊断实验、测哪几格、入口分配、押的因子。还没写入的决定,由同一个纯函数从账本里的输入重新算出,结果相同。这里不用全局随机数;需要随机时,种子由研究编号、轮次、版本算出。
- **同一格、同一个诊断实验只结算一次**,同一条解释在同一格或同一个实验上只有一行账。重复读取、导入、恢复,或者换个编号重建同一次消融,都不会再记一次账。同一次运行服务于不同的比较时,记录共享同一个来源,不算成几份独立的证据。
- **冻结的东西不可覆盖,更正一律追加记录。** 这包括协议、因子清单、因子位置表、范围、原始证据。冻结先于启动,这个先后关系在中断前后都要成立:中断前已经冻结的范围,仍然算事前预测;中断后才写的范围,不能冒充事前预测。
- **运行一旦启动,就按实测记账。** 跑完才发现实现有错,也不标为无效重跑。
- **不支持中途作废重做某一轮**,也不支持替换提示词模板、放弃某个阶段。想重来,就另开一份新研究。
@@ -729,7 +823,12 @@ VOI(S) = E_{S 的结果}[ max_p E(收益_p | S 的结果) ] − max_p E(收益_p
## 十一、可换的规则与对照组
做方法实验时,下面两个决策点可以换规则。研究开始时,程序把配置翻译成"这份研究的步骤清单"和"每个决策点用哪条规则",存进账本。
做方法实验时,下面两个步骤可以开关,两个决策点可以换规则。研究开始时,程序把配置翻译成"这份研究的步骤清单"和"每个决策点用哪条规则",存进账本。
**步骤开关**
- 诊断(4.3 诊 1–诊 4):开或关。现行配置开。
- 消融(4.3 ⑬–⑰):开或关,开时写选格规则。现行配置关。
**选批规则**
@@ -743,13 +842,13 @@ VOI(S) = E_{S 的结果}[ max_p E(收益_p | S 的结果) ] − max_p E(收益_p
- 随机抽同样多的格:格数取"信息价值减成本"对同一输入会选的格数;〔自定〕
- 都不测。
**对照组(暂不实现)**:步骤开关(关掉消融、挑刺与回应、第零轮或第一次预测)和"朴素循环"(几位研究者各交提案、不预测不挑刺、随机挑几个去跑、留下最好的)是给论文准备的对照实验。用户 2026-10-02 定:完整流程在本项目里跑稳之前先不做,要做时再按当时的方法补进这一节。原始设计见参考项目设计-16 第 7.3 节。
**对照组(暂不实现)**:其余步骤开关(关掉挑刺与回应、第零轮或第一次预测)和"朴素循环"(几位研究者各交提案、不预测不挑刺、随机挑几个去跑、留下最好的)是给论文准备的对照实验。用户 2026-10-02 定:完整流程在本项目里跑稳之前先不做,要做时再按当时的方法补进这一节。原始设计见参考项目设计-16 第 7.3 节。
---
## 十二、已知局限
1. 方向收益量的是已经拿到的分数,当成收益用会估高。靠"押的因子、预测收益、下一轮实际涨幅"这几项记录,在多份研究之间检查。
1. 消融的方向收益量的是已经拿到的分数,当成收益用会估高。靠"押的因子、预测收益、下一轮实际涨幅"这几项记录,在多份研究之间检查。
2. 因子怎么划由作者决定,只靠"拿不准就算因子"和挑刺把关;"延续"写错了也察觉不到。
3. 保障的定义仍然要靠读代码来判断。答案路径和实验员的提醒能在事后发现问题,但不能在事前保证。
4. 消融中发现的新基线,其余因子的作用是在原来的完整代码上测出来的。因子之间有交互时,两者会不同,信念本里会写明"测于完整代码"。
@@ -757,4 +856,7 @@ VOI(S) = E_{S 的结果}[ max_p E(收益_p | S 的结果) ] − max_p E(收益_p
6. 第一次预测估的是原始提案,和最后真正跑的冻结协议可能有出入,所以两次预测的对比里,也混着"协议被改过"这一层。
7. 所有研究者都认为下一步该在同一个因子上继续时,信息价值严格为 0,这次采纳的因子就不测,没有"关掉它少多少分"的实测。导出里会记下"没测"和净值,真实运行后看这种情况出现得多不多,再决定要不要把知识本身的价值算进信息价值。
8. 一份研究只有十来次运行、一到三次采纳,所有比较都只能当案例来讲。
9. 诊断实验是在已有答案上接着算、和别的实验平分一次运行的时间,它量到的空间和一份候选从头跑满时限能拿到的不一样。靠"诊断推出的方向、它的收益、本轮沿这个方向的候选实测"这几项记录,在多份研究之间检查。
10. 所有诊断解释对各实验的预测都一样时,信息价值很小,本轮不诊断;大家一致地错了,也就没有机会测出来。开放预留是唯一的余量,真实运行后看这种情况出现得多不多。
11. 程序不强制研究者沿诊断推出的方向提案。诊断指出了方向、却没有人沿它提,账本里查得出来。
+9 -5
View File
@@ -94,6 +94,9 @@
```
1. 开轮:放信念本,处理留池候选
1a. 诊断(余额至少 2 次):诊断解释与实验 → 判重合并 → 诊断预测 → 选诊断实验 →
实现 → 核验 →(不通过:修复 → 再核验)→ 一次正式运行 → 诊断结算
〔规则:信息价值减成本〕
2. 提案
3. 判重合并
4. 第一次预测(看原始提案)
@@ -104,7 +107,7 @@
9. 对每个入选候选:实现 → 核验 →(不通过:修复 → 再核验)→ 正式运行
10. 整批公开,记分数账和信息账
11. 采纳
12. 若采纳的改法有 2 个以上因子:
12. 若消融开着、而且采纳的改法有 2 个以上因子(现行配置消融关):
列格 → 解释 → 选格 → 对每个选中的格:消融实现 → 核验 → 运行 → 结算
〔规则:选格规则〕
13. 收尾,更新信念本
@@ -120,6 +123,7 @@
| 2. 开轮到选批 | 4.3 ①–⑧(选批由用户 2026-10-03 定并进来) | 第 1 轮的整体研究质量(任务书 14):提案在研究路径上处在哪一步、多样性与判重、提案质量、挑刺与回应、预测是否合理、选批、过程健康;同一轮的提示词按调研结论先诊断再改 | 不回放(用户 2026-10-03 定)。参考项目高分运行(12-real-2、14-real-1、15-real-1、15-tight-2、16-real-1)第 1 轮的文字和我们的 3 次运行一起去掉来历,交全新上下文的审阅者按同一套方面打分比较 |
| 3. 实现到采纳 | ⑨–⑫ | 扣掉的次数等于确认启动的运行数;修复用完不跑、不扣、记事件 | 15-tight-2 第 1 轮的修复 |
| 4. 消融到收尾 | ⑬–⑱ 与研究结束 | 解释冻结早于任何一格启动;每格只结算一次 | 不回放(用户 2026-10-04 同意)。从头真实跑 3 份完整研究到余额用完,当四部分合起来的验收;消融与收尾和参考项目 15-real-1、15-tight-2、16-real-1 并排看 |
| 5. 诊断(任务书 18) | 4.3 诊 1–诊 4;消融默认关 | 诊断预测冻结早于诊断运行启动;一次诊断只扣一次、只结算一次 | 不回放。从头真实跑 3 份完整研究,和任务书 17 的 B、D(没有诊断、消融开)并排看 |
**怎么验证**(用户 2026-10-03 定):一律用真 Jev、真 Docker,不做假的 Jev、Docker、任务,flow 不为此开替换口子。同样的输入真实跑几次,结果都符合要求就算通过;真实运行里没出现过的情况不专门造出来测。用户原话:"我建议用一律用真 Jev、真 Docker。因为其实我们现在是在做科学研究,不是在开发程序……我们只需要重复运行多次"。模型一侧两种都做:
@@ -136,7 +140,7 @@
**全部只追加。** 所有记录放在同一张表里,每一行是:序号(自动递增,就是时间先后)、种类、内容(JSON)、内容的哈希。整张表禁止修改、禁止删除,由数据库触发器保证。要更正就追加一条新记录;"开"和"关"、"替换"也都写成新记录。
恢复时只核对、不重做写入(CLAUDE.md"中断后怎么恢复"),所以记录照写就是,不需要通用的去重。有自己编号、按定义只发生一次的记录,按编号加数据库唯一约束,重复了就报错:阶段开、阶段关、运行登记、确认启动、运行结果、模型调用开始、模型调用结束、消融结算(按轮次:每轮最多采纳一个改法,所以最多一次消融)。没有这种编号的记录(提交的各个版本、事件、用量)照写。前后顺序(比如启动前要先登记)由 flow 的同一个入口保证,ledger 不查。运行编号由 flow 起;确认没启动、退还名额后要重试,就起一个新编号。
恢复时只核对、不重做写入(CLAUDE.md"中断后怎么恢复"),所以记录照写就是,不需要通用的去重。有自己编号、按定义只发生一次的记录,按编号加数据库唯一约束,重复了就报错:阶段开、阶段关、运行登记、确认启动、运行结果、模型调用开始、模型调用结束、消融结算、诊断结算(按轮次:每轮最多一次)。没有这种编号的记录(提交的各个版本、事件、用量)照写。前后顺序(比如启动前要先登记)由 flow 的同一个入口保证,ledger 不查。运行编号由 flow 起;确认没启动、退还名额后要重试,就起一个新编号。
| # | 记录 | 内容 | 谁写入 |
| --- | --- | --- | --- |
@@ -145,10 +149,10 @@
| 3 | 提交 | 各种提交的每一版:入口、讨论、志愿、提案、两次预测、挑刺、回应、解释、收尾、实现、核验:阶段关闭后以最后一版为准,此后由 ledger 拒绝再写。私人笔记的每一条:不属于任何阶段,以最后写入的一条为准。每一版带收下时用到的 Jev 判断(含原始概率和结论,没用到 Jev 的为空)。被退回的提交也记,附对象(同提交的 target:候选、原提案或消融格,没有对象的为空)、退回理由和用到的 Jev 判断 | flow(经 submissions 判定后) |
| 4 | 冻结协议 | 每个候选的冻结版本:方法.md 4.3 ⑥ 列的因子清单、保障清单、指标登记、正文、实现条款,以及轮次、出发的基线、合并了哪些原提案。答复不在其中,留在回应或统一的提交记录里(用户 2026-10-03 定) | flow(主体由 submissions 拼) |
| 5 | 作者自评 | 封存时的三个数;解封时追加一条解封记录 | flow |
| 6 | 冻结代码 | 每份候选代码和消融格代码的版本号,以及因子位置表 | flow(版本号由 workspace 给出) |
| 6 | 冻结代码 | 每份候选代码、诊断程序和消融格代码的版本号,以及因子位置表、诊断实验位置表 | flow(版本号由 workspace 给出) |
| 7 | 运行 | 每次正式运行三条:登记要跑(占名额);确认启动(扣次);结果(分数、合法化、指标、答案路径、资源) | flow(结果由 runner 与 tasks 给出) |
| 8 | 决定 | 程序做的每个决定:选批、采纳、选格、押的因子、入口分配、判重合并。每条存规则名、规则版本、方法参数、种子、全部输入、输出;用到 Jev 的(判重合并),输入里带 Jev 的原始概率 | flow(由 rules 计算) |
| 9 | 结算 | 每格的结局、撑几成、配合关系标签、每条解释的确认或否定、世界比特、惊讶 | flow(由 rules 计算) |
| 8 | 决定 | 程序做的每个决定:选诊断实验、选批、采纳、选格、押的因子、入口分配、判重合并(提案和诊断实验)。每条存规则名、规则版本、方法参数、种子、全部输入、输出;用到 Jev 的(判重合并),输入里带 Jev 的原始概率 | flow(由 rules 计算) |
| 9 | 结算 | 消融:每格的结局、撑几成、配合关系标签、每条解释的确认或否定、世界比特、惊讶。诊断:每个实验的结局与实测、每条诊断解释的确认或否定、世界比特、惊讶、诊断推出的方向 | flow(由 rules 计算) |
| 10 | 用量 | 模型调用三条:开始(附这次任务的全部材料)、每次回复的用量、结束(带这次调用的墙钟时间;中断后恢复时补写的结束记录,结局记出错、原因写"进程中断",墙钟时间记测不到)。正式运行的资源用量记在运行结果里。只记录 | flow(用量由 agents 交出) |
| 11 | 事件 | 违规记录、"按配置跳过"、"没测"及原因、停下的原因 | flow |