Spaces:
Running on Zero
Running on Zero
File size: 5,044 Bytes
ff63ba1 9f9fbec ff63ba1 1bb3265 42650ec b3d11b8 4a79e5b 9f9fbec 463bcbe 6d68f94 9f9fbec 42650ec b3d11b8 42650ec ff63ba1 b3d11b8 ff63ba1 463bcbe 42650ec b3d11b8 ff63ba1 463bcbe ff63ba1 b3d11b8 42650ec b3d11b8 ff63ba1 393bb89 ff63ba1 9f9fbec ff63ba1 393bb89 42650ec 463bcbe 42650ec 463bcbe 42650ec b3d11b8 42650ec b3d11b8 42650ec b3d11b8 ff63ba1 393bb89 ff63ba1 393bb89 ff63ba1 393bb89 ff63ba1 b3d11b8 ff63ba1 463bcbe 42650ec 6d68f94 ff63ba1 6d68f94 42650ec 6d68f94 42650ec 6d68f94 42650ec 6d68f94 42650ec 6d68f94 ff63ba1 b3d11b8 ff63ba1 393bb89 ff63ba1 393bb89 42650ec ff63ba1 42650ec ff63ba1 b3d11b8 ff63ba1 6d68f94 ff63ba1 b3d11b8 ff63ba1 b3d11b8 ff63ba1 b3d11b8 ff63ba1 b3d11b8 ff63ba1 393bb89 42650ec b3d11b8 ff63ba1 b3d11b8 ff63ba1 463bcbe ff63ba1 463bcbe 42650ec 463bcbe 42650ec 463bcbe ff63ba1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | # FeatureLens v0.10 validation
v0.10 does **not** change paraphrase robustness, layer trajectory, feature-set interventions, dose-response inference, cue × context, or the in-place focus implementation. Do not spend ZeroGPU quota rerunning those paths.
The only new live behavior is the **association-to-causality synthesis** computed after the existing discovery + candidate-triage workflow.
## 1. Local release gate — no HF GPU
From the repository root:
```bash
python3 -m pytest -q && \
python3 -m compileall -q app.py featurelens experiments scripts && \
python3 -m ruff check app.py featurelens experiments tests scripts && \
python3 scripts/ui_smoke.py && \
python3 scripts/release_check.py
```
Expected high-level result:
- all tests pass;
- Ruff reports `All checks passed!`;
- `FeatureLens UI launch smoke: PASS`;
- release check ends with `release: v0.10.0`.
Stop if any local gate fails.
---
# HF acceptance — two GPU calls total
Use the existing Workbench context:
- **Workbench → Prompt:** `The derivative of x squared is`
- **Workbench → Residual layer:** `14`
- **Workbench → Prompt token index:** `-1`
You do **not** need to click **Inspect sparse features** first.
## 2. GPU call 1 — causal-ready mathematics discovery
Exact path:
**Feature evidence → A. Concept-guided candidate discovery**
Set exactly:
- **Target concept:** `mathematics`
- **Residual layer:** `14`
- **Prompts per concept:** `4`
- **Candidate features:** `12`
- **Candidate ranking:** `Causal-ready at current token`
Click:
**Discover concept-associated candidates**
Expected regression behavior from v0.9:
- the summary should say `12/12` displayed candidates are active at the selected Workbench token;
- **Candidate features to screen** should auto-populate with the first five returned feature IDs;
- no additional UI/focus regression testing is required because that code was not changed in v0.10.
For the current canonical prompt, the v0.9 result began with candidates `16369`, `5712`, `26112`, `25992`, `21670`. Exact floating-point values can vary slightly, but a major ordering change should be reported.
## 3. GPU call 2 — triage + association-to-causality synthesis
Exact path:
**Feature evidence → B. Batched causal candidate triage**
Leave the five auto-populated candidates selected.
Set:
- **Screen target continuation:** `2x`
Click:
**Screen candidate ablations**
The normal **Candidate ablation screen** should appear first.
Immediately below it, without another GPU action, v0.10 should populate:
### `Association vs causal influence`
with:
1. a descriptive summary;
2. **Discovery–causality alignment** table;
3. **Association evidence vs target effect** scatter plot.
### Required alignment-table columns
- `Feature id`
- `Discovery rank`
- `Target-effect rank`
- `Distribution-shift rank`
- `Candidate score`
- `Selectivity`
- `Current token activation`
- `|Δ mean log p/token|`
- `Next-token JS`
- `Discovery→target rank shift`
### Required summary behavior
The summary must identify separately:
- top discovery candidate;
- strongest target-effect candidate;
- strongest next-token distribution-shift candidate;
- Spearman `ρ(candidate score, |target effect|)`;
- Spearman `ρ(candidate score, next-token JS)`;
- an explicit warning that the live correlations are descriptive because the screened set is small and triage has no random-control ensemble.
For the exact v0.9 values you reported, the expected qualitative pattern is:
- discovery rank #1: feature `16369`;
- strongest target effect: feature `25992`;
- strongest next-token JS shift: feature `16369`;
- discovery score versus target-effect magnitude: strongly negative descriptive rank correlation;
- discovery score versus JS: positive but weaker descriptive rank correlation.
Do not require exact decimals as a pass condition.
### Rank-shift sanity check
For the v0.9 ordering:
- feature `25992`: discovery rank `4`, target-effect rank `1` → `Discovery→target rank shift = +3`;
- feature `16369`: discovery rank `1`, target-effect rank `5` → rank shift `-4`.
This is the most important v0.10 regression check because it demonstrates that concept-evidence rank and target-causal rank are not interchangeable.
---
## 4. What to send back
Only send:
1. the v0.10 **Candidate ablation screen** if it changed materially from v0.9;
2. the new **Discovery–causality alignment** table;
3. the new association/causality summary with the two Spearman values;
4. optionally a screenshot of **Association evidence vs target effect** if the plot looks wrong.
Do **not** rerun identity paraphrase, layer trajectory, 1/3/5 sweep, dose response, cue × context, or focus behavior for v0.10. Those implementations were not changed.
---
# Final hardening later
The broad adversarial/release suite remains deferred until the live feature set is frozen. After v0.10 acceptance, the next high-value step should be the real offline held-out benchmark rather than another round of unrelated live widgets.
|