Spaces:
Running on Zero
Running on Zero
| # Running the FeatureLens offline study on Google Colab | |
| This guide is for the **offline empirical study**, not the public Hugging Face Space. The Space remains the interactive demo; Colab is only used to produce the study artifacts once. | |
| The easiest route is the included notebook: | |
| `notebooks/FeatureLens_Offline_Study_Colab.ipynb` | |
| ## What the run does | |
| The full study executes: | |
| 1. build/verify the 224-prompt discovery set and 28 causal tasks; | |
| 2. collect Qwen3 residuals and prompt-wide Qwen-Scope SAE activations at layers 4, 14, and 26; | |
| 3. fit/evaluate held-out SAE-feature classifiers and the dense residual probe; | |
| 4. run single-feature random-controlled causal interventions; | |
| 5. run 1/3/5 feature-set interventions and controls; | |
| 6. compute candidate-selection stability, study synthesis, figures, and report; | |
| 7. validate that the publishable artifacts are complete and methodologically compatible. | |
| ## Recommended runtime | |
| Use an NVIDIA GPU runtime. A 16 GB T4 is the practical baseline; an L4 or A100 gives more headroom. The notebook detects GPU memory and defaults activation collection to batch size 8 below 20 GB VRAM and 16 otherwise. | |
| Runtime varies with Colab allocation, downloads, and prompt lengths. For planning, budget roughly **1–2 hours on a T4** for a first complete run, including model/SAE downloads; faster GPUs can be substantially quicker. Treat this as a planning estimate, not a benchmark. | |
| ## Persistence model | |
| Colab VMs are temporary. The notebook mounts Google Drive and replaces the repo's `artifacts/` directory with a symlink to a Drive-backed directory. This means: | |
| - activation artifacts survive a runtime reset; | |
| - task-level causal and feature-set checkpoints survive a reset; | |
| - `python -m experiments.run_all --resume` can continue rather than restart completed work; | |
| - Hugging Face model caches remain on the Colab VM for speed and may need to be downloaded again after a new runtime. | |
| The causal and feature-set stages checkpoint after every completed task in v0.15. Completion-marker files are runtime bookkeeping and are excluded from the publishable bundle. | |
| ## Notebook configuration | |
| At the top of the notebook set: | |
| ```python | |
| REPO_URL = "PASTE_YOUR_GIT_REPO_URL_HERE" | |
| BRANCH = "main" | |
| DRIVE_RUN_NAME = "FeatureLens_offline_v015" | |
| ``` | |
| `REPO_URL` can be the public Git URL of the Hugging Face Space repository or another Git mirror containing the same FeatureLens source. | |
| If your default branch is not `main`, change `BRANCH`. | |
| ## If activation collection runs out of memory | |
| The notebook chooses a conservative batch size automatically. If CUDA still runs out of memory, rerun the pipeline cell with: | |
| ```bash | |
| python -m experiments.run_all --resume --activation-batch-size 4 | |
| ``` | |
| Changing the activation batch size changes memory/time trade-offs, not the experiment definition. | |
| ## After the run | |
| The notebook runs: | |
| ```bash | |
| python -m scripts.validate_artifacts | |
| ``` | |
| and creates a small archive containing only the publishable study outputs. It excludes: | |
| - `artifacts/activations/`; | |
| - `.complete` checkpoint markers; | |
| - model/SAE caches; | |
| - temporary files. | |
| Extract the archive over the local FeatureLens repository so the files land under `artifacts/`, then run the normal local release checks and push. The public **Study** tab will read those measured artifacts automatically. | |
| ## Publishable outputs | |
| The bundle is expected to contain files such as: | |
| - `artifacts/feature_catalog.csv` | |
| - `artifacts/layer_metrics.csv` | |
| - `artifacts/stability.csv` | |
| - `artifacts/selection_stability.csv` | |
| - `artifacts/causal_results_final_token.csv` | |
| - `artifacts/causal_results_max_active.csv` | |
| - `artifacts/causal_position_summary.csv` | |
| - `artifacts/feature_set_results.csv` | |
| - `artifacts/study_feature_summary.csv` | |
| - `artifacts/study_summary.json` | |
| - `artifacts/summary.json` | |
| - `artifacts/report.md` | |
| - `artifacts/figures/*.png` | |
| Do not commit the `artifacts/activations/` directory. | |
| ## v0.16 causal addendum after a completed v0.15 study | |
| If the full v0.15 Colab study already completed, **do not rerun the full notebook**. Use: | |
| `notebooks/FeatureLens_Causal_Addendum_Colab.ipynb` | |
| The addendum notebook copies only the small existing study outputs to a new Drive folder, preserves the final-token causal baseline, computes the 28-task `max_feature_activation` causal policy, regenerates the CPU study/report artifacts, validates them, and creates a new publishable ZIP. | |
| The addendum does not recollect 224-prompt activations, refit feature/probe evaluations, rerun stability resampling, or rerun the 1/3/5 feature-set stage. | |