Pruning Evaluation Progress
Last updated: 2026-05-30 UTC.
Scope
Evaluation cache: artifacts/data/calibration/c0543d66aa2199f7/chunks.npy
Baseline: BF16 poolside/Laguna-XS.2, full 4k cache, 1024 chunks.
Importance artifact: artifacts/runs/heapr_paper_128x2048_4xl40s_alllayers_fused_device_b4/atomic_scores.npy
Decision Summary
The primary quality experiment preserves Laguna's static/shared expert and original top-8 routed-expert router. It zeroes importance-ranked 64-atom blocks only inside routed expert tensors.
| Native grouped pruning | Full-cache loss | PPL delta | GSM8K-CoT strict EM | Interpretation |
|---|---|---|---|---|
| BF16 baseline | 2.347142 | 0.00% | 0.931818 | unpruned anchor |
| 10% | 2.363612 | +1.66% | 0.909091 | strongest deployment candidate |
| 20% | 2.416442 | +7.18% | 0.780303 | upper-bound tradeoff point |
| 25% | 2.466706 | +12.70% | 0.681818 | stress point; quality loss is substantial |
| 40% | 2.683520 | +39.99% | not run | loss indicates excessive degradation |
GSM8K-CoT values use the same first 10% subset (132 examples), fixed eight-shot prompt, and greedy
decoding for every row.
| Native grouped pruning | Full-cache loss | Full MMLU 0-shot accuracy | MMLU-STEM 5-shot accuracy | GSM8K-CoT 8-shot strict EM |
|---|---|---|---|---|
| BF16 baseline | 2.347142 | 0.733514 | 0.690771 | 0.931818 |
| 10% | 2.363612 | 0.735437 | 0.693942 | 0.909091 |
| 20% | 2.416442 | 0.734012 | 0.679036 | 0.780303 |
| 25% | 2.466706 | 0.725965 | 0.666350 | 0.681818 |
Loss / Perplexity
| Run | Pruning interpretation | Mean loss | Delta loss | Perplexity | PPL delta | Artifact |
|---|---|---|---|---|---|---|
| BF16 baseline | unpruned | 2.347443 | 0.000000 | 10.458797 | 0.00% | artifacts/runs/baselines/bf16_4k_full_4xl40s_loss.json |
| BF16 baseline, explicit static cache | unpruned | 2.347142 | 0.000000 | 10.455647 | 0.00% | artifacts/runs/baselines/bf16_4k_full_4xl40s_static_cache_b4_loss.json |
| Atomic 10% | lowest atomic scores zeroed globally | 2.362229 | +0.014786 | 10.614584 | +1.49% | artifacts/runs/pruned_loss_full_4k_4xl40s/atomic_pruned_10pct_loss.json |
| Atomic 20% | lowest atomic scores zeroed globally | 2.412423 | +0.064979 | 11.160969 | +6.71% | artifacts/runs/pruned_loss_full_4k_4xl40s/atomic_pruned_20pct_loss.json |
| Atomic 40% | lowest atomic scores zeroed globally | 2.705508 | +0.358065 | 14.961917 | +43.06% | artifacts/runs/pruned_loss_full_4k_4xl40s/atomic_pruned_40pct_loss.json |
| Group 10% diagnostic | importance-sorted 64-atom groups zeroed inside original parent routing | 2.362365 | +0.014922 | 10.616028 | +1.50% | artifacts/runs/pruned_loss_full_4k_4xl40s/group_pruned_10pct_loss.json |
| Repacked group 10% | independently routed 64-atom child groups, fixed top-64 backfill | 2.404768 | +0.057626 | 11.075862 | +5.93% | artifacts/runs/pruned_loss_full_4k_4xl40s/repacked_group_pruned_10pct_loss.json |
| Repacked group 20% | independently routed 64-atom child groups, fixed top-64 backfill | 2.517318 | +0.170176 | 12.395307 | +18.55% | artifacts/runs/pruned_loss_full_4k_4xl40s/repacked_group_pruned_20pct_loss.json |
| Repacked group 40% | independently routed 64-atom child groups, fixed top-64 backfill | 2.928546 | +0.581404 | 18.700425 | +78.85% | artifacts/runs/pruned_loss_full_4k_4xl40s/repacked_group_pruned_40pct_loss.json |
| Native grouped 10% | original top-8 parent routing; pruned 64-atom groups zeroed in place | 2.363612 | +0.016469 | 10.629271 | +1.66% | artifacts/runs/native_group_loss_full_4k_4xl40s/group_pruned_10pct_loss.json |
| Random native grouped 10% | random seed 20260530; original top-8 parent routing; same minimum-retention rule | 2.480595 | +0.133453 | 11.948376 | +14.28% | artifacts/runs/random_group_10pct/group_pruned_10pct_loss.json |
| Native grouped 20% | original top-8 parent routing; pruned 64-atom groups zeroed in place | 2.416442 | +0.069300 | 11.205921 | +7.18% | artifacts/runs/native_group_loss_full_4k_4xl40s/group_pruned_20pct_loss.json |
| Native grouped 25% | original top-8 parent routing; pruned 64-atom groups zeroed in place | 2.466706 | +0.119564 | 11.783569 | +12.70% | artifacts/runs/native_group_loss_full_4k_4xl40s/group_pruned_25pct_loss.json |
| Random native grouped 25% | random seed 20260530; original top-8 parent routing; same minimum-retention rule | 2.561328 | +0.214186 | 12.953011 | +23.89% | artifacts/runs/random_group_25pct/group_pruned_25pct_loss.json |
| Native grouped 40% | original top-8 parent routing; pruned 64-atom groups zeroed in place | 2.683520 | +0.336378 | 14.636528 | +39.99% | artifacts/runs/native_group_loss_full_4k_4xl40s/group_pruned_40pct_loss.json |
Expanded Grouped Router Validation
| Run | Chunks | Mean loss | Perplexity | Artifact |
|---|---|---|---|---|
| BF16 baseline, first full-cache 16 chunks | 16 | 2.475593 | 11.888757 | artifacts/runs/baselines/bf16_4k_full_first16_4xl40s_loss.json |
| Repacked grouped, 0% pruned, first full-cache 16 chunks | 16 | 2.477158 | 11.907380 | artifacts/runs/pruned_loss_full_4k_4xl40s/repacked_group_pruned_00pct_loss_pilot16.json |
| Repacked grouped, 10% pruned, first full-cache 16 chunks | 16 | 2.515994 | 12.378907 | artifacts/runs/pruned_loss_full_4k_4xl40s/repacked_group_pruned_10pct_loss_pilot16.json |
Native Grouped Pruning Pilot
The primary grouped experiment now preserves Laguna's original top-8 parent-expert router and native forward. Pruned 64-atom groups are zeroed inside each original expert tensor. This measures grouped structural-pruning quality soundly, although the current native kernel does not realize the potential deployment speedup.
Per-layer 25% mask statistics: artifacts/reports/native_group_pruning_stats.md
| Run | Chunks | Mean loss | Perplexity | Artifact |
|---|---|---|---|---|
| Native grouped 10% | 16 | 2.482592 | 11.972254 | artifacts/runs/native_group_loss_pilot16/group_pruned_10pct_loss.json |
| Native grouped 20% | 16 | 2.527117 | 12.517363 | artifacts/runs/native_group_loss_pilot16/group_pruned_20pct_loss.json |
| Native grouped 40% | 16 | 2.765421 | 15.885724 | artifacts/runs/native_group_loss_pilot16/group_pruned_40pct_loss.json |
Downstream Evaluation
| Run | Scope | Result | Artifact |
|---|---|---|---|
| Full MMLU 0-shot baseline smoke | 0.1% limit; 58 subject samples | harness completed; accuracy 0.879310 | artifacts/runs/downstream/mmlu_baseline_smoke.json |
| Full MMLU 0-shot baseline | full 14,042 samples | accuracy 0.733514; STEM slice 0.702188 | artifacts/runs/downstream/mmlu_baseline_full.json |
| Full MMLU 0-shot atomic 10% | full 14,042 samples | accuracy 0.737715; delta +0.004202 | artifacts/runs/downstream/mmlu_atomic_10pct_full.json |
| Full MMLU 0-shot atomic 20% | full 14,042 samples | accuracy 0.734511; delta +0.000997 | artifacts/runs/downstream/mmlu_atomic_20pct_full.json |
| Full MMLU 0-shot atomic 40% | full 14,042 samples | accuracy 0.681028; delta -0.052485 | artifacts/runs/downstream/mmlu_atomic_40pct_full.json |
| Full MMLU 0-shot native grouped 10% | full 14,042 samples | accuracy 0.735437; delta +0.001923 | artifacts/runs/downstream/mmlu_native_group_10pct_full.json |
| Full MMLU 0-shot native grouped 20% | full 14,042 samples | accuracy 0.734012; delta +0.000499 | artifacts/runs/downstream/mmlu_native_group_20pct_full.json |
| Full MMLU 0-shot native grouped 25% | full 14,042 samples | accuracy 0.725965; delta -0.007549; STEM slice 0.688233 | artifacts/runs/downstream/mmlu_native_group_25pct_full.json |
| MMLU-STEM 5-shot baseline | report-metric-aligned local lm-eval; 3,153 samples | accuracy 0.690771 | artifacts/runs/downstream/mmlu_stem_5shot_baseline_full.json |
| MMLU-STEM 5-shot native grouped 10% | report-metric-aligned local lm-eval; 3,153 samples | accuracy 0.693942; delta +0.003172 | artifacts/runs/downstream/mmlu_stem_5shot_native_group_10pct_full.json |
| MMLU-STEM 5-shot native grouped 20% | report-metric-aligned local lm-eval; 3,153 samples | accuracy 0.679036; delta -0.011735 | artifacts/runs/downstream/mmlu_stem_5shot_native_group_20pct_full.json |
| MMLU-STEM 5-shot native grouped 25% | report-metric-aligned local lm-eval; 3,153 samples | accuracy 0.666350; delta -0.024421 | artifacts/runs/downstream/mmlu_stem_5shot_native_group_25pct_full.json |
| GSM8K-CoT 8-shot baseline | first 10%; 132 paired samples | strict EM 0.931818; flexible EM 0.886364 | artifacts/runs/downstream/gsm8k_cot_baseline_10pct.json |
| GSM8K-CoT 8-shot native grouped 10% | first 10%; 132 paired samples | strict EM 0.909091; delta -0.022727; flexible EM 0.863636; delta -0.022727 | artifacts/runs/downstream/gsm8k_cot_native_group_10pct_10pct.json |
| GSM8K-CoT 8-shot native grouped 20% | first 10%; 132 paired samples | strict EM 0.780303; delta -0.151515; flexible EM 0.742424; delta -0.143939 | artifacts/runs/downstream/gsm8k_cot_native_group_20pct_10pct.json |
| GSM8K-CoT 8-shot native grouped 25% | first 10%; 132 paired samples | strict EM 0.681818; delta -0.250000; flexible EM 0.689394; delta -0.196970 | artifacts/runs/downstream/gsm8k_cot_native_group_25pct_10pct.json |
| CRUXEval-O CoT baseline smoke | one function; 10 sampled generations; executable pass@1 | harness completed; pass@1 0.0 | artifacts/runs/downstream/cruxeval_output_cot_baseline_smoke.json |
| SWE-bench Lite baseline smoke | one oracle-prepared instance: astropy__astropy-12907 |
official grader completed; generated patch failed to apply | artifacts/runs/downstream/swebench_baseline_smoke_predictions.jsonl |
The SWE-bench smoke validates generation, prediction serialization, Docker availability, and official harness invocation. It is not a quality estimate: the single generated continuation produced a malformed patch and the grader recorded one patch-apply error. Further SWE-bench work is paused while the basic native-grouped benchmarks run.
Additional small benchmark selected from the Laguna technical-report table: gsm8k_cot. The installed
lm-eval task is configured for the report-aligned 8-shot chain-of-thought exact-match setup. Run it
for the baseline and native-grouped 25% variant after MMLU. Because a full run takes more than one hour
per model, use the same first 10% subset for both variants. Runs explicitly cap generation at 256 new
tokens because Laguna's shipped generation config otherwise requests up to 4096.
The report-metric-aligned local MMLU-STEM 5-shot baseline is 0.690771, below the Laguna technical
report's 0.781. The local lm-eval comparison remains useful because the unpruned and pruned models
run through the same harness, but it does not exactly reproduce the report's evaluation stack.
The GSM8K-CoT comparison is likewise a matched local-harness comparison rather than an exact
reproduction of Poolside's internal framework. The local task uses eight fixed chain-of-thought
demonstrations and greedy decoding (do_sample=False). An audit of the paired 10% run confirmed
identical prompts and test examples. The 256-token cap did not bind: generated responses were short,
and the grouped-model errors were predominantly incorrect arithmetic answers rather than truncations.
CRUXEval-O CoT executable grading was smoke-tested successfully. The paired coding subset was stopped
after 84 / 400 baseline generations when the remaining session was time-boxed. The smoke validates
the local generation and executable-grader path but is not a coding-quality estimate.
Grouped Compute Note
For grouped pruning, the simple deployment interpretation is the pruned group fraction. The prioritized 25% experiment removes exactly 19,968 of 79,872 64-wide groups. That is the meaningful reduction if a grouped MoE kernel only materializes retained child experts.
The primary native grouped evaluator preserves the original top-8 parent router and zeroes pruned groups in place. Its current kernel still computes those zeroed blocks, so observed runtime is a quality-measurement harness rather than a realized speedup. The separately reported repacked-child exploration uses fixed top-64 backfill and is not the primary result.
Method Notes
- Atomic pruning was evaluated in memory by loading the BF16 model, zeroing pruned atom rows/columns in the packed expert tensors, and running the native Laguna forward on the full 4k cache.
- Current fixed-shape loss runs pass an explicit Hugging Face
StaticCacheinto each direct forward call withuse_cache=True, avoiding Laguna's internal dynamic-cache construction path. - Atomic and diagnostic-group deltas above use the earlier BF16 baseline. Repacked-group deltas use the explicit-static-cache BF16 baseline, matching those runs' cache path.
- The grouped 10% diagnostic is not the full grouped mini-expert routing experiment. It keeps the original parent-expert router/top-8 behavior and only zeroes 64-wide groups inside selected parent experts.
- That original-router grouped path is now the primary experimental quality measurement: it directly applies 64-atom structural pruning while preserving the source model's routing semantics.
- For grouped mini-experts as independently routable child experts, the evaluator needs to route over child groups. A plausible inherited-router test is: expand each parent expert score to its 8 child groups, mask pruned child groups, select top 64 child groups per token, and evaluate those group contributions. Under no pruning this collapses to the original top-8 parents; under group pruning it can select child groups from more than 8 parent experts.
- The repacked grouped runtime now implements that inherited-router test by repacking each sparse layer from 256 parent experts x 512 atoms into 2048 child experts x 64 atoms, expanding router rows to child groups, selecting top 64 child groups, and assigning each selected group its parent expert's normalized router weight. The 0% pruned first-16 validation above checks that this preserves the unpruned model.
Current Status
- Completed: BF16 full-cache baseline.
- Completed: atomic 10%, 20%, and 40% full-cache loss.
- Completed but diagnostic-only: constrained grouped 10% full-cache loss.
- Stopped: constrained grouped 20%/40%, because it does not answer the independently-routable grouped mini-expert question.
- Completed: repacked grouped 10% full-cache loss with explicit static cache.
- Completed: repacked grouped 20% full-cache loss with explicit static cache.
- Completed: repacked grouped 40% full-cache loss with explicit static cache.
- Completed: unpruned full-cache loss with explicit static cache and directly comparable grouped deltas.
- Completed: baseline MMLU and SWE-bench Lite smoke paths.
- Completed: full baseline and atomic 10%/20%/40% MMLU comparison runs.
- Stopped: full repacked-group MMLU. Repacked child routing over-selects groups for the primary experiment and remains exploratory only.
- Completed: native original-router grouped 10%/20%/40% loss pilot on 16 chunks.
- Completed: native original-router grouped 10%/20%/40% full-cache loss.
- Priority changed by request: evaluate baseline versus native original-router grouped 25% only.
- Completed: native original-router grouped 25% full-cache loss.
- Completed: full-MMLU 0-shot native grouped 25%. This is useful auxiliary evidence but does not match the tech-report MMLU-STEM 5-shot row.
- Completed: report-metric-aligned local MMLU-STEM 5-shot baseline and native grouped 25%.
- Stopped: full GSM8K-CoT baseline after runtime projection exceeded one hour.
- Completed: paired first-10% GSM8K-CoT baseline and native grouped 25%.
- Completed: paired first-10% GSM8K-CoT native grouped 10% and 20% curve points.
- Stopped by request: CRUXEval-O CoT paired subset after executable-grader smoke validation, due to the remaining time box.
- Completed: random native grouped 25% full-cache loss control with seed 20260530. It is +0.094622 loss worse than importance-ranked 25% pruning.
- Completed: random native grouped 10% full-cache loss control with seed 20260530. It is +0.116984 loss worse than importance-ranked 10% pruning.
- Skipped from the grouped MMLU downstream matrix: native grouped 10%, 20%, and 40%.
- Paused by request: further SWE-bench evaluation.
- Validated: full test suite
28 passed; Python compilation andgit diff --checkpassed.