Skip to content

Commit d585d05

Browse files
KhrulkovVclaude
andcommitted
feat: update NLP-prompts experiment — treatment uses static_r (rotation) + hotpotqa prompts
Per Elena (ml-research-methodologist) + Reviewer 2 consensus: - Replace L (hotpotqa, fixed-300) with L (hotpotqa, rotation-300 via static_r) - All 3 treatment runs (L/M/N) now use problem=static_r + prompts=hotpotqa - Control (K) stays on static + default prompts (mirrors Run E) - Two variables change K→L/M/N (prompts + val set); pre-registered compound treatment - Fixes the n=1 uninterpretable condition issue flagged by both advisors Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 0bf400f commit d585d05

1 file changed

Lines changed: 33 additions & 29 deletions

File tree

docs/plans/2026-03-03-nlp-prompts-experiment.md

Lines changed: 33 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -82,24 +82,30 @@ The `task_description.txt` already provides domain context about the chain archi
8282

8383
All treatment runs use:
8484
- NLP-specific prompts (`prompts=hotpotqa` Hydra override)
85-
- Standard pipeline (NOT hotpotqa_asi) -- we do NOT include P2 (ASI) in the base treatment
86-
- Fixed 300-sample validation (NOT P1 rotation) -- we do NOT include P1 either
87-
- Rationale: P1 and P2 showed null-to-negative effects. Adding them would confound the prompt intervention. If NLP prompts show a positive signal, we can test P1+P2 combination in a follow-up.
85+
- Rotation val set (`problem.name=chains/hotpotqa/static_r`) — each program evaluated on a different hash-seeded 300/1000 subset
86+
- Standard pipeline (NOT hotpotqa_asi) -- we do NOT include P2 (ASI)
87+
- Rationale: P2 (ASI) showed null-to-negative effect alone (Run F: 53.7%). Rotation is included to reduce selection noise from the fixed-300 val set's ~5-10pp val-test gap.
8888

89-
The control run uses the exact same config as Run E (standard pipeline, fixed 300 validation, default prompts).
89+
The control run uses the exact same config as Run E (standard pipeline, fixed 300 validation (`static`), default prompts).
9090

91-
### 4.3 Val Set Decision: Fixed 300
91+
### 4.3 Val Set Decision: Rotation for Treatment, Fixed for Control
9292

93-
**Rationale**: P1 (rotation) showed null effect on test EM and a *worse* val-test gap than Run E in some conditions. Fixed-300 matches the control condition (Run E), enabling clean comparison. The 5.7pp val-test gap in Run E is a known property of this setup; it does not prevent detecting mutation quality improvements (a better mutation engine should improve both val and test EM).
93+
**Treatment (L/M/N)**: Use `static_r` (rotation, 300/1000 samples, hash-seeded per chain spec). Rationale: the 5.7-9.7pp val-test gap in P1xP2 was partially caused by stable val-set overfitting. Rotation ensures val scores are unbiased estimators of generalisation; programs that truly improve will show consistent gains across different subsets.
94+
95+
**Control (K)**: Uses `static` (fixed first-300 samples), matching Run E exactly. This preserves the historical comparison.
96+
97+
**Tradeoff**: Two variables change between K and L/M/N (prompts + val set). This is a deliberate compound treatment: the research question is "does the NLP-prompts-with-rotation package improve test EM?" rather than isolating each variable. The pre-registered contrast is K vs. L/M/N mean.
9498

9599
## 5. Design Table
96100

97-
| Run | Label | Prompts | Pipeline | Problem Dir | DB | Mutation Server | Chain Server | Seed |
98-
|-----|-------|---------|----------|-------------|----|-----------------|--------------|------|
99-
| K | Control | default | standard | static | 14 | 10.226.72.211:8777 | 10.226.17.25:8001 | ddce37b4 |
100-
| L | NLP-1 | hotpotqa | standard | static | 15 | 10.226.15.38:8777 | 10.226.17.25:8000 | ddce37b4 |
101-
| M | NLP-2 | hotpotqa | standard | static | 16 | 10.226.185.131:8777 | 10.225.185.235:8001 | ddce37b4 |
102-
| N | NLP-3 | hotpotqa | standard | static | 17 | 10.225.51.251:8777 | 10.225.185.235:8000 | ddce37b4 |
101+
| Run | Label | Prompts | Problem Dir | Val Set | DB | Mutation Server | Chain Server | Seed |
102+
|-----|-------|---------|-------------|---------|----|-----------------|--------------|----- |
103+
| K | Control | default | static | fixed-300 | 14 | 10.226.72.211:8777 | 10.226.17.25:8001 | ddce37b4 |
104+
| L | NLP-1 | hotpotqa | static_r | rotation-300 | 15 | 10.226.15.38:8777 | 10.226.17.25:8000 | ddce37b4 |
105+
| M | NLP-2 | hotpotqa | static_r | rotation-300 | 16 | 10.226.185.131:8777 | 10.225.185.235:8001 | ddce37b4 |
106+
| N | NLP-3 | hotpotqa | static_r | rotation-300 | 17 | 10.225.51.251:8777 | 10.225.185.235:8000 | ddce37b4 |
107+
108+
All runs use `pipeline=standard`, `num_parents=1`, `max_mutations_per_generation=8`, `max_elites_per_generation=8`, `max_generations=50`.
103109

104110
**Run labels**: K-N continue the alphabetical sequence (E-H used by P1xP2).
105111

@@ -112,20 +118,20 @@ The control run uses the exact same config as Run E (standard pipeline, fixed 30
112118
Held constant across all 4 runs:
113119
- Seed program: ddce37b4
114120
- max_generations: 50
115-
- max_mutations_per_generation: 16 (effective 8 with AllCombinationsParentSelector + num_parents=1 + max_elites=8)
121+
- max_mutations_per_generation: 8 (AllCombinationsParentSelector + num_parents=1 + max_elites=8)
116122
- max_elites_per_generation: 8
117123
- num_parents: 1
118124
- primary_resolution: 50
119125
- Chain LLM: Qwen3-8B (thinking mode, temp=0.6, top_p=0.95, top_k=20)
120126
- Mutation LLM: Qwen3-235B-A22B-Thinking-2507
121127
- step_max_tokens: {2: 4096, 3: 2048, 5: 4096, 6: 2048}
122-
- Validation: fixed first 300 train samples
123128
- Test set: 300 held-out samples (HotpotQA_test.jsonl)
124-
- Problem directory: `problems/chains/hotpotqa/static` (same for all -- no P1 rotation, no P2 ASI)
125129
- Pipeline: `standard`
126130
- Redis: fresh DBs, no resume
127131

128-
**Only difference between K (control) and L/M/N (treatment)**: `prompts.dir` (null vs. path to `gigaevo/prompts/hotpotqa/`).
132+
**Differences between K (control) and L/M/N (treatment)**:
133+
1. `prompts.dir`: null (K) vs. `gigaevo/prompts/hotpotqa/` (L/M/N)
134+
2. Problem directory: `static` fixed-300 val (K) vs. `static_r` rotation-300 val (L/M/N)
129135

130136
## 7. Intervention Specification: NLP-Specific Prompts
131137

@@ -319,43 +325,41 @@ Per monitoring plan above.
319325
## 13. Launch Script Specification
320326

321327
```bash
322-
# Common parameters (same as P1xP2)
328+
# Common parameters
323329
COMMON_PARAMS=(
330+
pipeline=standard
324331
num_parents=1
325332
primary_resolution=50
326-
max_mutations_per_generation=16
333+
max_mutations_per_generation=8
327334
max_elites_per_generation=8
328335
max_generations=50
329336
program_loader.problem_dir="$SEED_DIR"
330337
)
331338
332-
# Run K: control (default prompts)
339+
# Run K: control (default prompts, fixed-300)
333340
python run.py ${COMMON_PARAMS[@]} \
334341
problem.name=chains/hotpotqa/static \
335-
pipeline=standard \
342+
prompts=default \
336343
redis.db=14 \
337344
llm_base_url="http://10.226.72.211:8777/v1"
338345
339-
# Run L: NLP prompts
346+
# Run L: NLP prompts + rotation
340347
python run.py ${COMMON_PARAMS[@]} \
341-
problem.name=chains/hotpotqa/static \
342-
pipeline=standard \
348+
problem.name=chains/hotpotqa/static_r \
343349
prompts=hotpotqa \
344350
redis.db=15 \
345351
llm_base_url="http://10.226.15.38:8777/v1"
346352
347-
# Run M: NLP prompts
353+
# Run M: NLP prompts + rotation
348354
python run.py ${COMMON_PARAMS[@]} \
349-
problem.name=chains/hotpotqa/static \
350-
pipeline=standard \
355+
problem.name=chains/hotpotqa/static_r \
351356
prompts=hotpotqa \
352357
redis.db=16 \
353358
llm_base_url="http://10.226.185.131:8777/v1"
354359
355-
# Run N: NLP prompts
360+
# Run N: NLP prompts + rotation
356361
python run.py ${COMMON_PARAMS[@]} \
357-
problem.name=chains/hotpotqa/static \
358-
pipeline=standard \
362+
problem.name=chains/hotpotqa/static_r \
359363
prompts=hotpotqa \
360364
redis.db=17 \
361365
llm_base_url="http://10.225.51.251:8777/v1"

0 commit comments

Comments
 (0)