Files
spectralquant/docs/evidence_catalog.json
Ashwin GopinathandAnirudh B. Vangara 19ebecbc4d SpectralQuant v2: calibrated eigenbasis rotation with water-filled bit allocation
Upgrades SpectralQuant from uniform bit allocation to greedy water-filling
inside the semantic subspace, with per-dimension Lloyd-Max codebooks fit to
the empirical scalar marginal. Adds full three-way evaluation harness
(perplexity, generation, latency, LongBench) on Modal H200 GPUs, comprehensive
documentation, and the consolidated arxiv-ready manuscript.

v1 is preserved on the 'v1' branch.

Co-Authored-By: Anirudh B. Vangara <anirudh@sentra.app>
2026-05-15 12:24:05 -07:00

1163 lines
49 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"schema_version": "1",
"repo": "niashwin/spectralquant-v2",
"baseline_repo": "Dynamis-Labs/spectralquant",
"generated_at": "2026-04-29",
"generated_by": "Phase 1 evidence catalog scaffold (auto-walked v1 artifacts; numbers extracted from JSON when present)",
"notes": [
"Every entry has a stable evidence_id. v2 scripts and the v2 report must reference these IDs rather than typing numbers.",
"Every numeric value listed here is copied from the cited file or marked `caveat`; do not trust an entry that lacks `source_file`.",
"Caveats are part of the evidence. Do not paper over them in the report.",
"Caveats listed as 'V1-GAP-*' are blocking for v2 publication unless explicitly demoted in docs/claims_discipline.md."
],
"entries": [
{
"id": "V1-PAPER-001",
"kind": "paper_source",
"path": "paper_output/spectralquant.tex",
"supports": ["v1 narrative", "method description", "figure list"],
"caveats": ["Treat as authored claims, not validated evidence — every empirical sentence must be re-traced to a JSON file before reuse in v2 report."]
},
{
"id": "V1-PAPER-002",
"kind": "paper_compiled",
"path": "paper_output/spectralquant.pdf",
"supports": ["compiled v1 report"],
"caveats": ["Compiled output. Source of truth is the .tex plus the JSON files behind every empirical sentence."]
},
{
"id": "V1-PAPER-003",
"kind": "paper_bib",
"path": "paper_output/spectralquant_refs.bib",
"supports": ["citation list"],
"caveats": []
},
{
"id": "V1-PAPER-004",
"kind": "paper_figures_dir",
"path": "paper_output/figures/",
"supports": ["v1 published figures (eigenvalue spectrum, memory savings, pareto, scaling, seqlen)"],
"files": [
"paper_output/figures/fig_eigenvalue_spectrum.pdf",
"paper_output/figures/fig_memory_savings.pdf",
"paper_output/figures/fig_pareto.pdf",
"paper_output/figures/fig_scaling.pdf",
"paper_output/figures/fig_seqlen.pdf"
],
"caveats": ["v2 must regenerate any figure it reuses from the underlying JSON, not by importing the PDF."]
},
{
"id": "V1-PAPER-005",
"kind": "figure_generator",
"path": "paper_output/generate_figures.py",
"supports": ["script that generated v1 paper figures"],
"caveats": []
},
{
"id": "V1-README-001",
"kind": "readme_claims_table",
"path": "README.md",
"supports": ["canonical v1 claim → script → JSON mapping (Headline Results table; Paper Claims table)"],
"caveats": [
"README headline says SQ 0.9485 vs TQ 0.9226 on Qwen2.5-14B with 5.95x vs 5.02x. These match results/memory_efficiency/all_models.json (V1-RESULT-001) — but only the 14B Instruct row.",
"README claims `2.2x faster latency` at 512 tokens; this conflicts with V1-RESULT-003 (V1-GAP-003)."
]
},
{
"id": "V1-IMPL-001",
"kind": "code_module",
"path": "src/spectralquant/calibration.py",
"supports": ["per-layer/per-head key collector", "PCA / covariance / d_eff (participation ratio)"],
"caveats": ["v2 must verify which d_eff convention is used (normalized vs unnormalized — see V1-GAP-004) before extending."]
},
{
"id": "V1-IMPL-002",
"kind": "code_module",
"path": "src/spectralquant/spectral_rotation.py",
"supports": ["calibrated eigenbasis rotation vs Haar/random rotation baseline"],
"caveats": []
},
{
"id": "V1-IMPL-003",
"kind": "code_module",
"path": "src/spectralquant/nonuniform_quantization.py",
"supports": ["Lloyd-Max quantizer", "uniform-bit semantic codebook (v1)"],
"caveats": ["v2 must extend this for per-dimension codebooks driven by water-filling. v1 uniform behavior must remain reachable via use_water_fill=False."]
},
{
"id": "V1-IMPL-004",
"kind": "code_module",
"path": "src/spectralquant/selective_qjl.py",
"supports": ["semantic-only QJL residual correction"],
"caveats": []
},
{
"id": "V1-IMPL-005",
"kind": "code_module",
"path": "src/spectralquant/engine.py",
"supports": ["SpectralQuantEngine (extends TurboQuantEngine)"],
"caveats": ["Two engine classes coexist (this file and src/spectralquant/spectralquant.py). v2 must pick one canonical engine — see V1-GAP-010."]
},
{
"id": "V1-IMPL-006",
"kind": "code_module",
"path": "src/spectralquant/spectralquant.py",
"supports": ["legacy standalone SpectralQuant pipeline"],
"caveats": ["Duplicate engine surface vs V1-IMPL-005. v2 must consolidate or clearly document which is the supported entrypoint (V1-GAP-010)."]
},
{
"id": "V1-IMPL-007",
"kind": "code_module",
"path": "src/spectralquant/metrics.py",
"supports": ["cosine similarity, MSE, compression-ratio helpers"],
"caveats": []
},
{
"id": "V1-IMPL-008",
"kind": "code_module",
"path": "src/spectralquant/utils.py",
"supports": ["seeding, model config, data loading"],
"caveats": []
},
{
"id": "V1-IMPL-009",
"kind": "code_module",
"path": "src/spectralquant/__init__.py",
"supports": ["public namespace"],
"caveats": ["Public exports must be audited for the duplicate-engine issue (V1-GAP-010)."]
},
{
"id": "V1-EXP-001",
"kind": "experiment_script",
"path": "experiments/run_memory_efficiency.py",
"supports": ["main 4-model results table"],
"produces": ["results/memory_efficiency/all_models.json"],
"caveats": ["README claims 4 models; on-disk all_models.json contains only 3 Qwen sizes (V1-GAP-002)."]
},
{
"id": "V1-EXP-002",
"kind": "experiment_script",
"path": "experiments/neurips_models_asymmetry.py",
"supports": ["Mistral + Gemma + cross-model KV asymmetry"],
"produces": ["results/neurips/neurips_mistral.json", "results/neurips/neurips_gemma.json", "results/neurips/neurips_kv_asymmetry.json"],
"caveats": ["Gemma row in neurips_kv_asymmetry.json is an HF gated-repo 403 error, not a measurement (V1-GAP-011)."]
},
{
"id": "V1-EXP-003",
"kind": "experiment_script",
"path": "experiments/neurips_seeds_latency.py",
"supports": ["seeds CI", "latency crossover", "Qwen 7B PPL"],
"produces": ["results/neurips/neurips_10seed.json", "results/neurips/neurips_latency_crossover.json", "results/neurips/neurips_qwen7b_ppl.json"],
"caveats": ["File is named '10seed' but contains 5 seeds on disk (V1-GAP-001)."]
},
{
"id": "V1-EXP-004",
"kind": "experiment_script",
"path": "experiments/neurips_llama_full.py",
"supports": ["LongBench n=5", "NIAH on Llama-3.1-8B"],
"produces": ["results/v3/v3_longbench.json", "results/v3/v3_niah_llama_v2.json", "results/neurips/neurips_llama_niah.json", "results/neurips/neurips_llama_ppl.json"],
"caveats": ["LongBench n=5 is too small to support generalization claims (V1-GAP-008)."]
},
{
"id": "V1-EXP-005",
"kind": "experiment_script",
"path": "experiments/lowrank_cossim_sweep.py",
"supports": ["low-rank SVD projection sweep r=2..64"],
"produces": ["results/lowrank/lowrank_cossim_sweep.json"],
"caveats": []
},
{
"id": "V1-EXP-006",
"kind": "experiment_script",
"path": "experiments/run_v3_perplexity_crossarch.py",
"supports": ["cross-architecture PPL"],
"produces": ["results/v3/v3_crossarch.json", "results/v3/v3_perplexity.json"],
"caveats": []
},
{
"id": "V1-EXP-007",
"kind": "experiment_script",
"path": "experiments/run_v3_ppl_niah_v2.py",
"supports": ["PPL parity", "NIAH v2"],
"produces": ["results/v3/v3_perplexity_v2.json", "results/v3/v3_niah_llama_v2.json"],
"caveats": ["fp16 / TQ / SQ all show identical PPL=9.5099805... at 1023 tokens — verified, but the equality may indicate the test is too short to differentiate methods (V1-GAP-004b)."]
},
{
"id": "V1-EXP-008",
"kind": "experiment_script",
"path": "experiments/run_v3_deff_distshift_latency.py",
"supports": ["d_eff sweep, distribution shift, latency"],
"produces": ["results/v3/v3_distribution_shift.json", "results/v3/v3_deff_sweep.json", "results/v3/v3_latency.json"],
"caveats": ["v3_latency.json reports SQ compression at 21.04 ms vs TQ at 0.40 ms at 512 tokens — this directly contradicts neurips_latency_crossover.json (V1-GAP-003)."]
},
{
"id": "V1-EXP-009",
"kind": "experiment_script",
"path": "experiments/run_calibration_stability.py",
"supports": ["calibration stability (CV)"],
"produces": ["results/calibration_stability/stability.json"],
"caveats": ["The on-disk JSON is annotated 'Reconstructed from B200 experiment log output (original file was truncated during download)' — treat as derived, not raw (V1-GAP-005)."]
},
{
"id": "V1-EXP-010",
"kind": "experiment_script",
"path": "experiments/run_final_experiments.py",
"supports": ["Config F ablation"],
"produces": ["results/final/final_experiments.json"],
"caveats": []
},
{
"id": "V1-EXP-011",
"kind": "experiment_script",
"path": "experiments/phase1_eigenspectral.py",
"supports": ["eigenspectral phase1 calibration scan"],
"produces": ["results/eigenspectral/phase1_metadata.json", "results/eigenspectral/summary_statistics.json", "results/eigenspectral/deff_per_layer.csv", "results/eigenspectral/calibration/"],
"caveats": [
"phase1_metadata.json has gate1_status='FAILED' on disk (V1-GAP-006).",
"Reports mean d_eff_keys ≈ 35.19 — this is the UNNORMALIZED participation ratio. Conflicts with the normalized-keys d_eff ≈ 3.95 used in the headline claim (V1-GAP-004)."
]
},
{
"id": "V1-EXP-012",
"kind": "experiment_script",
"path": "experiments/phase0_setup.py",
"supports": ["phase 0 baseline reproduction targets"],
"produces": ["results/baseline_reproduction/"],
"caveats": ["Listed in v1 evidence map as marking TurboQuant baseline reproduction status — must be inspected before any 'official TurboQuant' claim (V1-GAP-012)."]
},
{
"id": "V1-EXP-013",
"kind": "experiment_script",
"path": "experiments/phase2_integration.py",
"supports": ["v1 integration scripts"],
"produces": [],
"caveats": []
},
{
"id": "V1-EXP-014",
"kind": "experiment_script",
"path": "experiments/phase3_exp1_attention_quality.py",
"supports": ["v1 attention-quality experiment"],
"produces": [],
"caveats": []
},
{
"id": "V1-EXP-015",
"kind": "experiment_script",
"path": "experiments/phase3_exp2_ablation.py",
"supports": ["v1 ablation"],
"produces": ["results/comparison/ablation_v2.json", "results/comparison/full_ablation.json"],
"caveats": ["Ablation files claim TQ baseline cosines that diverge from V1-RESULT-001 by configuration (V1-GAP-013)."]
},
{
"id": "V1-EXP-016",
"kind": "experiment_script",
"path": "experiments/phase3_exp3_generation.py",
"supports": ["generation eval (v1)"],
"produces": [],
"caveats": []
},
{
"id": "V1-EXP-017",
"kind": "experiment_script",
"path": "experiments/phase3_exp4_benchmarks.py",
"supports": ["v1 benchmarks"],
"produces": [],
"caveats": []
},
{
"id": "V1-EXP-018",
"kind": "experiment_script",
"path": "experiments/phase3_exp5_vector_search.py",
"supports": ["v1 vector-search eval"],
"produces": [],
"caveats": []
},
{
"id": "V1-EXP-019",
"kind": "experiment_script",
"path": "experiments/phase3_exp6_latency.py",
"supports": ["v1 latency micro-benchmarks"],
"produces": [],
"caveats": ["Cross-check with V1-RESULT-003 and V1-RESULT-007 before reusing any number (V1-GAP-003)."]
},
{
"id": "V1-EXP-020",
"kind": "experiment_script",
"path": "experiments/phase3_exp7_calibration_cost.py",
"supports": ["v1 calibration cost"],
"produces": [],
"caveats": ["README cites '15-second calibration'; this file's measurement is the closest on-disk timing (V1-GAP-007)."]
},
{
"id": "V1-EXP-021",
"kind": "experiment_script",
"path": "experiments/run_all_experiments.py",
"supports": ["v1 driver"],
"produces": [],
"caveats": []
},
{
"id": "V1-EXP-022",
"kind": "experiment_script",
"path": "experiments/multiregime_sweep.py",
"supports": ["multi-regime quantization sweep"],
"produces": ["results/multiregime/"],
"caveats": []
},
{
"id": "V1-EXP-023",
"kind": "experiment_script",
"path": "experiments/optimal_allocation_sweep.py",
"supports": ["bit-allocation sweep (precursor to v2 water-filling)"],
"produces": ["results/optimal_allocation/"],
"caveats": ["Probably the closest v1 artifact to the v2 water-filling idea — inspect before implementing waterfill.py."]
},
{
"id": "V1-EXP-024",
"kind": "experiment_script",
"path": "experiments/push_to_095.py",
"supports": ["aggressive-bit push experiment"],
"produces": ["results/push_095/"],
"caveats": []
},
{
"id": "V1-EXP-025",
"kind": "experiment_script",
"path": "experiments/shaped_cache_sweep.py",
"supports": ["shaped-cache figure pipeline"],
"produces": ["results/shaped_cache/", "figures/shaped_cache_*.png"],
"caveats": []
},
{
"id": "V1-RESULT-001",
"kind": "result_json",
"path": "results/memory_efficiency/all_models.json",
"supports": ["headline cosine and compression numbers across 3 Qwen sizes"],
"extracted": {
"Qwen2.5-14B-Instruct": {
"n_layers": 48,
"n_kv_heads": 8,
"head_dim": 128,
"d_eff": 4,
"TQ_3bit": {
"cos_sim": 0.9226097098489603,
"ratio": 5.019607843137255,
"avg_bits": 3.1875
},
"TQ_2bit": {
"cos_sim": 0.8248648208379745,
"ratio": 7.314285714285714,
"avg_bits": 2.1875
},
"SQ_noQJL_v3": {
"cos_sim": 0.9484994028011958,
"ratio": 5.953488372093023,
"avg_bits": 2.6875
}
}
},
"caveats": [
"README headline (0.9485 vs 0.9226, 5.95x vs 5.02x) is correct for Qwen2.5-14B-Instruct comparing TQ_3bit vs SQ_noQJL_v3 — but the two configs are at DIFFERENT avg_bits (TQ uses 3.19 bits, SQ uses 2.69 bits). The comparison is honest only if framed as 'at matched-or-better compression ratio'.",
"README claims '4 models'; this file holds 3 Qwen sizes (V1-GAP-002).",
"Mistral and Llama numbers referenced in README come from results/neurips/neurips_*.json, not this file."
]
},
{
"id": "V1-RESULT-002",
"kind": "result_json",
"path": "results/neurips/neurips_kv_asymmetry.json",
"supports": ["key vs value d_eff asymmetry across 5 models"],
"extracted": {
"Qwen2.5-1.5B-Instruct": {
"d_eff_keys": 3.95,
"d_eff_vals": 40.34,
"head_dim": 128
},
"Qwen2.5-7B-Instruct": {
"d_eff_keys": 4.3,
"d_eff_vals": 52.15,
"head_dim": 128
},
"Qwen2.5-14B-Instruct": {
"d_eff_keys": 4.17,
"d_eff_vals": 52.11,
"head_dim": 128
},
"Llama-3.1-8B-Instruct": {
"d_eff_keys": 3.64,
"d_eff_vals": 44.21,
"head_dim": 128
},
"Mistral-7B-Instruct-v0.3": {
"d_eff_keys": 4.18,
"d_eff_vals": 54.93,
"head_dim": 128
}
},
"caveats": [
"gemma-2-9b-it row is an HF 403 gated-repo error, not a measurement (V1-GAP-011).",
"These d_eff values use NORMALIZED keys (per the v1 method) and are not comparable to the unnormalized 35.19 number in V1-RESULT-008 (V1-GAP-004)."
]
},
{
"id": "V1-RESULT-003",
"kind": "result_json",
"path": "results/neurips/neurips_latency_crossover.json",
"supports": ["latency crossover at 512 tokens"],
"extracted": {
"model": "Qwen/Qwen2.5-1.5B-Instruct",
"seq_lengths": [
512,
1024,
2048
],
"crossover_seq_len": 512,
"per_seq_len_512": {
"tq_per_step_ms": 0.5663140000020661,
"sq_per_step_ms": 0.2572705000005726,
"tq_attention_ms": 0.22659400000080154,
"sq_attention_ms": 0.07081800000108274,
"tq_compress_1token_ms": 0.33972000000126457,
"sq_compress_1token_ms": 0.18645249999948987,
"sq_speedup_over_tq": 2.2012395513702723,
"attn_speedup_sq_over_tq": 3.199666751353288
}
},
"caveats": [
"Conflicts with V1-RESULT-007 which reports SQ compression ≈ 21 ms vs TQ ≈ 0.4 ms at 512 tokens (V1-GAP-003).",
"Numbers are bound to Qwen2.5-1.5B-Instruct only. README's 2.2x latency claim is therefore single-model, not 'across architectures'."
]
},
{
"id": "V1-RESULT-004",
"kind": "result_json",
"path": "results/v3/v3_perplexity_v2.json",
"supports": ["PPL parity claim (Qwen 1.5B)"],
"extracted": {
"fp16_ppl": 9.509980534121931,
"tq_ppl": 9.509980534121931,
"sq_ppl": 9.509980534121931,
"n_tokens": 1023
},
"caveats": [
"All three methods report identical PPL to 13+ digits, which is suspicious for a real compression pipeline. Likely a too-short / non-decoding eval — must be re-run before any 'compression-neutral PPL' claim (V1-GAP-014)."
]
},
{
"id": "V1-RESULT-005",
"kind": "result_json",
"path": "results/neurips/neurips_qwen7b_ppl.json",
"supports": ["Qwen 7B PPL ≈ 7.51 claim"],
"extracted": {},
"caveats": ["Inspect ctx-length list and methods before reuse; v1 evidence map flags only the 7B headline value."]
},
{
"id": "V1-RESULT-006",
"kind": "result_json",
"path": "results/neurips/neurips_10seed.json",
"supports": ["seeds CI on Qwen 1.5B"],
"extracted": {
"seeds_in_file": [
42,
123,
7,
2024,
31415
],
"n_seeds_in_file": 5,
"tq_mean": 0.8408672554194927,
"sq_mean": 0.8634522778466345,
"wilcoxon_p": 0.03125,
"claimed_in_readme": "10 seeds"
},
"caveats": [
"Filename and README say 10-seed; on-disk JSON contains 5 seeds (V1-GAP-001). The Wilcoxon p=0.03125 is exactly the minimum p-value achievable with n=5 paired observations and is not robust to a single dropped seed."
]
},
{
"id": "V1-RESULT-007",
"kind": "result_json",
"path": "results/v3/v3_latency.json",
"supports": ["compression vs attention latency at 512 tokens"],
"extracted": {
"seq_len": 512,
"tq_compression_ms_mean": 0.39903219999928297,
"sq_compression_ms_mean": 21.04302000000189,
"tq_attention_ms_mean": 0.22737699999879624,
"sq_attention_ms_mean": 0.050958600002104504
},
"caveats": [
"SQ compression here is ~50x SLOWER than TQ — directly contradicts V1-RESULT-003 which shows SQ compression FASTER than TQ at the same sequence length (V1-GAP-003).",
"The two JSONs cannot both be the published latency story; v2 must reconcile or demote."
]
},
{
"id": "V1-RESULT-008",
"kind": "result_json",
"path": "results/eigenspectral/summary_statistics.json",
"supports": ["unnormalized eigenspectral d_eff (phase 1)"],
"extracted": {
"keys_mean_d_eff": 35.18859328542437,
"values_mean_d_eff": 56.65463628087725
},
"caveats": [
"These are the UNNORMALIZED d_eff values. The headline claim 'd_eff/head_dim ≈ 3–4%' depends on the NORMALIZED-key methodology in V1-RESULT-002 (V1-GAP-004).",
"phase1_metadata.json marks gate1_status='FAILED' (V1-GAP-006)."
]
},
{
"id": "V1-RESULT-009",
"kind": "result_json",
"path": "results/eigenspectral/phase1_metadata.json",
"supports": ["phase 1 metadata"],
"extracted": {
"model": "Qwen/Qwen2.5-1.5B",
"n_seqs": 50,
"seq_len": 128,
"n_layers": 28,
"n_kv_heads": 2,
"head_dim": 128,
"gate1_status": "FAILED",
"wall_time_s": 31.05
},
"caveats": ["gate1_status='FAILED' is on disk (V1-GAP-006). wall_time 31 s is the closest data point to the README '15-second calibration' claim (V1-GAP-007)."]
},
{
"id": "V1-RESULT-010",
"kind": "result_json",
"path": "results/eigenspectral/deff_per_layer.csv",
"supports": ["per-layer d_eff CSV"],
"extracted": {},
"caveats": ["CSV not JSON — must verify column conventions before reuse."]
},
{
"id": "V1-RESULT-011",
"kind": "result_json",
"path": "results/calibration_stability/stability.json",
"supports": ["calibration stability CV claim"],
"extracted": {
"mean_cv": 0.0394,
"max_cv": 0.202,
"n_heads_cv_above_02": 1,
"total_heads": 56,
"n_samples_per_split": 50,
"per_split_mean_deff": [
3.93,
3.71,
3.61
],
"note_in_file": "Reconstructed from B200 experiment log output (original file was truncated during download)"
},
"caveats": ["File self-declares as RECONSTRUCTED FROM LOGS, not the original artifact (V1-GAP-005). Treat as supportive, not primary."]
},
{
"id": "V1-RESULT-012",
"kind": "result_json",
"path": "results/comparison/comparison_results.json",
"supports": ["per-head TQ vs SQ at 3 bits on Qwen 1.5B"],
"extracted": {
"model_name": "Qwen/Qwen2.5-1.5B-Instruct",
"total_bits": 3,
"tq_mean_cosine_sim": 0.970284141600132,
"sq_mean_cosine_sim": 0.41865663044154644,
"mean_improvement": -0.5516275111585855,
"win_rate": 0.0,
"n_samples": 16,
"skipped": 14
},
"caveats": [
"STRONGLY NEGATIVE result: SQ loses to TQ on every head sampled. Either (a) this is a broken or early SQ build, (b) a different SQ configuration than the headline, or (c) a real weakness at small-model 3-bit. Must be reconciled or excluded before publication (V1-GAP-002b)."
]
},
{
"id": "V1-RESULT-013",
"kind": "result_json",
"path": "results/comparison/proper_comparison.json",
"supports": ["a 'proper comparison' run that contradicts V1-RESULT-012"],
"extracted": {},
"caveats": ["File name suggests this is the corrected version of V1-RESULT-012. v2 must determine which file the headline depends on."]
},
{
"id": "V1-RESULT-014",
"kind": "result_json",
"path": "results/comparison/full_ablation.json",
"supports": ["full ablation table (TurboQuant baseline through full SpectralQuant)"],
"extracted": {},
"caveats": []
},
{
"id": "V1-RESULT-015",
"kind": "result_json",
"path": "results/comparison/ablation_v2.json",
"supports": ["v2 ablation variant"],
"extracted": {},
"caveats": ["'v2' in this filename is v1-era nomenclature, NOT the SpectralQuant v2 spec target. Do not confuse with the v2 water-filling work."]
},
{
"id": "V1-RESULT-016",
"kind": "result_json",
"path": "results/lowrank/lowrank_cossim_sweep.json",
"supports": ["low-rank SVD baseline failure for value cache (r=4 → CosSim≈0.15 claim)"],
"extracted": {},
"caveats": []
},
{
"id": "V1-RESULT-017",
"kind": "result_json",
"path": "results/final/final_experiments.json",
"supports": ["Config F ablation; PPL; CIs"],
"extracted": {},
"caveats": []
},
{
"id": "V1-RESULT-018",
"kind": "result_json",
"path": "results/v3/v3_crossarch.json",
"supports": ["cross-architecture cosine deltas (Llama only on disk)"],
"extracted": {},
"caveats": [
"README cites Llama +1.74 pp / Mistral +1.21 pp / Gemma +0.72 pp; this file currently only carries the Llama row — Mistral comes from neurips_mistral.json and Gemma from neurips_gemma.json (which is partly an HF 403)."
]
},
{
"id": "V1-RESULT-019",
"kind": "result_json",
"path": "results/v3/v3_distribution_shift.json",
"supports": ["distribution-shift experiment (wiki↔code)"],
"extracted": {
"split_keys": ["wiki→wiki", "wiki→code", "code→wiki", "code→code"]
},
"caveats": []
},
{
"id": "V1-RESULT-020",
"kind": "result_json",
"path": "results/v3/v3_longbench.json",
"supports": ["LongBench n=5"],
"extracted": {
"tasks": ["narrativeqa", "qasper", "hotpotqa", "gov_report", "trec", "triviaqa"]
},
"caveats": ["n=5 per task is too small for any 'LongBench improvement' claim (V1-GAP-008)."]
},
{
"id": "V1-RESULT-021",
"kind": "result_json",
"path": "results/v3/v3_niah_llama_v2.json",
"supports": ["Needle-in-a-haystack on Llama"],
"extracted": {},
"caveats": ["v1 evidence map flags NIAH artifacts as limited and partly broken (V1-GAP-009)."]
},
{
"id": "V1-RESULT-022",
"kind": "result_json",
"path": "results/v3/v3_summary.json",
"supports": ["v3 summary aggregate"],
"extracted": {},
"caveats": []
},
{
"id": "V1-RESULT-023",
"kind": "result_json",
"path": "results/all_results_summary.json",
"supports": ["top-level cross-experiment summary"],
"extracted": {},
"caveats": ["Not schema-validated; treat as derived index, not primary source."]
},
{
"id": "V1-FIG-001",
"kind": "figure",
"path": "figures/shaped_cache_heatmap.png",
"supports": ["shaped cache sweep heatmap"],
"produced_by": "gen_shaped_cache_figures.py",
"caveats": []
},
{
"id": "V1-FIG-002",
"kind": "figure",
"path": "figures/shaped_cache_kv_sensitivity.png",
"supports": ["KV sensitivity figure"],
"produced_by": "gen_shaped_cache_figures.py",
"caveats": []
},
{
"id": "V1-FIG-003",
"kind": "figure",
"path": "figures/shaped_cache_pareto.png",
"supports": ["Pareto figure"],
"produced_by": "gen_shaped_cache_figures.py",
"caveats": []
},
{
"id": "V1-FIG-004",
"kind": "figure",
"path": "paper_output/figures/fig_eigenvalue_spectrum.pdf",
"supports": ["paper Figure: eigenvalue spectrum"],
"produced_by": "paper_output/generate_figures.py",
"caveats": []
},
{
"id": "V1-FIG-005",
"kind": "figure",
"path": "paper_output/figures/fig_memory_savings.pdf",
"supports": ["paper Figure: memory savings"],
"produced_by": "paper_output/generate_figures.py",
"caveats": []
},
{
"id": "V1-FIG-006",
"kind": "figure",
"path": "paper_output/figures/fig_pareto.pdf",
"supports": ["paper Figure: Pareto"],
"produced_by": "paper_output/generate_figures.py",
"caveats": []
},
{
"id": "V1-FIG-007",
"kind": "figure",
"path": "paper_output/figures/fig_scaling.pdf",
"supports": ["paper Figure: model scaling"],
"produced_by": "paper_output/generate_figures.py",
"caveats": []
},
{
"id": "V1-FIG-008",
"kind": "figure",
"path": "paper_output/figures/fig_seqlen.pdf",
"supports": ["paper Figure: sequence length scaling"],
"produced_by": "paper_output/generate_figures.py",
"caveats": []
},
{
"id": "V1-CONF-001",
"kind": "config",
"path": "configs/default.yaml",
"supports": ["v1 default experimental configuration"],
"caveats": []
},
{
"id": "V1-CONF-002",
"kind": "config",
"path": "configs/quick.yaml",
"supports": ["v1 quick-run configuration"],
"caveats": []
},
{
"id": "V1-CONF-003",
"kind": "build",
"path": "Makefile",
"supports": ["v1 make targets"],
"caveats": []
},
{
"id": "V1-CONF-004",
"kind": "build",
"path": "pyproject.toml",
"supports": ["v1 package metadata"],
"caveats": ["Repository URL still points at dynamis-labs/spectralquant; v2 should retarget to niashwin/spectralquant-v2 when implementing Phase 5+."]
},
{
"id": "V1-TEST-001",
"kind": "test",
"path": "tests/test_calibration.py",
"supports": ["v1 calibration unit tests"],
"caveats": []
},
{
"id": "V1-TEST-002",
"kind": "test",
"path": "tests/test_quantization.py",
"supports": ["v1 quantization unit tests"],
"caveats": []
},
{
"id": "V1-TEST-003",
"kind": "test",
"path": "tests/test_spectral_rotation.py",
"supports": ["v1 spectral-rotation unit tests"],
"caveats": []
},
{
"id": "V1-TEST-004",
"kind": "test",
"path": "tests/test_end_to_end.py",
"supports": ["v1 end-to-end smoke tests"],
"caveats": []
},
{
"id": "V1-TEST-005",
"kind": "test",
"path": "tests/conftest.py",
"supports": ["pytest fixtures"],
"caveats": []
},
{
"id": "V2-SPEC-001",
"kind": "spec",
"path": "docs/spectralquant_v2_technical_spec.md",
"supports": ["v2 implementation spec, target claims, claims discipline"],
"caveats": ["Authoritative for v2. Any conflict between this spec and v1 README must be resolved in favor of the spec."]
},
{
"id": "RUN-THREEWAY-MISTRAL-5BIT",
"kind": "modal_run_artifact",
"path": "spectralquant-v2-results:/results/three_way/Mistral-7B-v0.3_b5_calib32_eval8_seed42.json",
"supports": [
"Three-way attention-output cosine on mistralai/Mistral-7B-v0.3 at avg_bits=5",
"Compression accounting at b=5: TQ ratio 3.0843, SQ v2 ratio 3.0820",
"Backs the b=5 row of docs/full_matrix_evidence_summary.md §3"
],
"caveats": [
"Sliced full-path benchmark row: WikiText-103, n_calib=32, n_eval=8, 8 sampled layers, single seed (42).",
"TurboQuant arm is the local reimplementation (V1-GAP-012 still in force).",
"Per-layer aggregates only; per-head min-cosine distribution is NOT in this artifact.",
"Local staging copy at modal_artifacts/mistral7b_full_b5/ is off-repo; the canonical store is the Modal volume.",
"Validates against schemas/three_way_result.schema.json with schemas/accounting.schema.json cross-resolved."
],
"produced_by": "experiments/run_three_way.py at commit abcb09197998cc027df688abceae5fb81cfcd31d",
"extracted": {
"commit": "abcb09197998cc027df688abceae5fb81cfcd31d",
"mode": "full",
"paper_valid": true,
"model": "mistralai/Mistral-7B-v0.3",
"avg_bits": 5,
"seed": 42,
"n_calib": 32,
"n_eval": 8,
"n_layers_sample": 8,
"calibration_corpus": "WikiText-103",
"eval_corpus": "WikiText-103",
"disjoint_eval": true,
"max_calib_tokens": 384,
"layer_sample": [
0,
4,
8,
12,
16,
20,
24,
28
],
"tq_attn_cosine_mean": 0.6555936578661203,
"tq_attn_cosine_std": 0.08860784489360324,
"sq_v1_attn_cosine_mean": 0.9404250364750624,
"sq_v1_attn_cosine_std": 0.039762185465969976,
"sq_v2_attn_cosine_mean": 0.9421251676976681,
"sq_v2_attn_cosine_std": 0.03903264058311664,
"tq_compression_ratio": 3.0843373493975905,
"sq_v2_compression_ratio": 3.0820165537998494,
"engine": "SpectralQuantEngine",
"gpu": "NVIDIA H200",
"model_revision": "caa1feb0e54d415e2df31207e5f4e273e33509b1"
}
},
{
"id": "RUN-THREEWAY-MISTRAL-3BIT",
"kind": "modal_run_artifact",
"path": "spectralquant-v2-results:/results/three_way/Mistral-7B-v0.3_b3_calib32_eval8_seed42.json",
"supports": [
"Three-way attention-output cosine on mistralai/Mistral-7B-v0.3 at avg_bits=3",
"Compression accounting at b=3: TQ ratio 5.0196, SQ v2 ratio 5.0135",
"Backs the b=3 row of docs/full_matrix_evidence_summary.md §3"
],
"caveats": [
"Sliced full-path benchmark row: WikiText-103, n_calib=32, n_eval=8, 8 sampled layers, single seed (42).",
"TurboQuant arm is the local reimplementation (V1-GAP-012 still in force).",
"Per-layer aggregates only; per-head min-cosine distribution is NOT in this artifact.",
"5.0135 ratio is method-derived from accounting.py; this run does NOT unblock the v1 5.95x headline (V1-GAP-014).",
"Local staging copy at modal_artifacts/mistral7b_full_b3/ is off-repo; the canonical store is the Modal volume.",
"Validates against schemas/three_way_result.schema.json with schemas/accounting.schema.json cross-resolved."
],
"produced_by": "experiments/run_three_way.py at commit abcb09197998cc027df688abceae5fb81cfcd31d",
"extracted": {
"commit": "abcb09197998cc027df688abceae5fb81cfcd31d",
"mode": "full",
"paper_valid": true,
"model": "mistralai/Mistral-7B-v0.3",
"avg_bits": 3,
"seed": 42,
"n_calib": 32,
"n_eval": 8,
"n_layers_sample": 8,
"calibration_corpus": "WikiText-103",
"eval_corpus": "WikiText-103",
"disjoint_eval": true,
"max_calib_tokens": 384,
"layer_sample": [
0,
4,
8,
12,
16,
20,
24,
28
],
"tq_attn_cosine_mean": 0.6262865311000496,
"tq_attn_cosine_std": 0.09203311289718222,
"sq_v1_attn_cosine_mean": 0.9329149769619107,
"sq_v1_attn_cosine_std": 0.036942990577146936,
"sq_v2_attn_cosine_mean": 0.9326824732124805,
"sq_v2_attn_cosine_std": 0.03698033263189286,
"tq_compression_ratio": 5.019607843137255,
"sq_v2_compression_ratio": 5.013463892288861,
"engine": "SpectralQuantEngine",
"gpu": "NVIDIA H200",
"model_revision": "caa1feb0e54d415e2df31207e5f4e273e33509b1"
}
},
{
"id": "RUN-THREEWAY-MISTRAL-2BIT",
"kind": "modal_run_artifact",
"path": "spectralquant-v2-results:/results/three_way/Mistral-7B-v0.3_b2_calib32_eval8_seed42.json",
"supports": [
"Three-way attention-output cosine on mistralai/Mistral-7B-v0.3 at avg_bits=2",
"Compression accounting at b=2: TQ ratio 7.3143, SQ v2 ratio 7.3012",
"Backs the b=2 row of docs/full_matrix_evidence_summary.md §3"
],
"caveats": [
"Sliced full-path benchmark row: WikiText-103, n_calib=32, n_eval=8, 8 sampled layers, single seed (42).",
"TurboQuant arm is the local reimplementation (V1-GAP-012 still in force).",
"Per-layer aggregates only; per-head min-cosine distribution is NOT in this artifact.",
"Largest SQ v2 − v1 cosine gap (+0.0177) at b=2 — this is the only run where the water-filling effect is visibly above noise; do not generalize the b=2 gap to other bit widths.",
"Local staging copy at modal_artifacts/mistral7b_full_b2/ is off-repo; the canonical store is the Modal volume.",
"Validates against schemas/three_way_result.schema.json with schemas/accounting.schema.json cross-resolved."
],
"produced_by": "experiments/run_three_way.py at commit abcb09197998cc027df688abceae5fb81cfcd31d",
"extracted": {
"commit": "abcb09197998cc027df688abceae5fb81cfcd31d",
"mode": "full",
"paper_valid": true,
"model": "mistralai/Mistral-7B-v0.3",
"avg_bits": 2,
"seed": 42,
"n_calib": 32,
"n_eval": 8,
"n_layers_sample": 8,
"calibration_corpus": "WikiText-103",
"eval_corpus": "WikiText-103",
"disjoint_eval": true,
"max_calib_tokens": 384,
"layer_sample": [
0,
4,
8,
12,
16,
20,
24,
28
],
"tq_attn_cosine_mean": 0.649525182787329,
"tq_attn_cosine_std": 0.07121738383507918,
"sq_v1_attn_cosine_mean": 0.9035388147458434,
"sq_v1_attn_cosine_std": 0.04216283361648719,
"sq_v2_attn_cosine_mean": 0.9212694820016623,
"sq_v2_attn_cosine_std": 0.03809236742452301,
"tq_compression_ratio": 7.314285714285714,
"sq_v2_compression_ratio": 7.301247771836007,
"engine": "SpectralQuantEngine",
"gpu": "NVIDIA H200",
"model_revision": "caa1feb0e54d415e2df31207e5f4e273e33509b1"
}
},
{
"id": "RUN-THREEWAY-QWEN-3BIT",
"kind": "modal_run_artifact",
"path": "spectralquant-v2-results:/results/three_way/Qwen2.5-7B_b3_calib32_eval8_seed42.json",
"supports": [
"Three-way attention-output cosine on Qwen/Qwen2.5-7B at avg_bits=3",
"Compression accounting at b=3 on a different architecture: TQ ratio 5.0196, SQ v2 ratio 5.0135",
"Backs the Qwen row of docs/full_matrix_evidence_summary.md §3"
],
"caveats": [
"Sliced full-path benchmark row: WikiText-103, n_calib=32, n_eval=8, 8 sampled layers, single seed (42).",
"TurboQuant arm is the local reimplementation (V1-GAP-012 still in force).",
"Per-layer aggregates only; per-head min-cosine distribution is NOT in this artifact.",
"Cosine values are notably lower than Mistral at the same bit width (TQ 0.399 vs 0.626; SQ v2 0.779 vs 0.933) — record this asymmetry rather than averaging across architectures.",
"Single-architecture single-bit single-seed datapoint; does NOT support a 'universal' or 'cross-architecture' claim.",
"Local staging copy at modal_artifacts/qwen7b_full_b3/ is off-repo; the canonical store is the Modal volume.",
"Validates against schemas/three_way_result.schema.json with schemas/accounting.schema.json cross-resolved."
],
"produced_by": "experiments/run_three_way.py at commit abcb09197998cc027df688abceae5fb81cfcd31d",
"extracted": {
"commit": "abcb09197998cc027df688abceae5fb81cfcd31d",
"mode": "full",
"paper_valid": true,
"model": "Qwen/Qwen2.5-7B",
"avg_bits": 3,
"seed": 42,
"n_calib": 32,
"n_eval": 8,
"n_layers_sample": 8,
"calibration_corpus": "WikiText-103",
"eval_corpus": "WikiText-103",
"disjoint_eval": true,
"max_calib_tokens": 384,
"layer_sample": [
0,
3,
6,
9,
12,
15,
18,
21
],
"tq_attn_cosine_mean": 0.39858556439867243,
"tq_attn_cosine_std": 0.1490800404894516,
"sq_v1_attn_cosine_mean": 0.7723933034576476,
"sq_v1_attn_cosine_std": 0.1054777042492236,
"sq_v2_attn_cosine_mean": 0.7785805761814117,
"sq_v2_attn_cosine_std": 0.1103928103362831,
"tq_compression_ratio": 5.019607843137255,
"sq_v2_compression_ratio": 5.013463892288861,
"engine": "SpectralQuantEngine",
"gpu": "NVIDIA H200",
"model_revision": "d149729398750b98c0af14eb82c78cfe92750796"
}
},
{
"id": "RUN-PERPLEXITY-QWEN2.5-7B",
"kind": "modal_run_artifact",
"path": "results/v3/modal/perplexity__Qwen2.5-7B__b3_seed42_n1024_tok1024_str512_fp16+spectralquant_v2+turboquant.json",
"supports": ["Qwen2.5-7B b=3 perplexity vs FP16 vs in-repo TurboQuant on 104k tokens of WikiText-103 validation"],
"caveats": []
},
{
"id": "RUN-LATENCY-QWEN2.5-7B",
"kind": "modal_run_artifact",
"path": "results/v3/modal/latency__Qwen2.5-7B__b3_seed42_bs1_ctx512x1024x2048_gen64_wm3_it10_fp16+spectralquant_v2+turboquant.json",
"supports": ["Qwen2.5-7B latency: fp16 production-kernel + SQv2/TQ K/V microbenchmark + SQv2/TQ hooked-replay end-to-end"],
"caveats": ["hooked-replay rows include Python-level per-layer hook overhead (production_kernel=false); microbench rows must never be compared directly to end-to-end rows."]
},
{
"id": "RUN-GENERATION-QWEN2.5-7B",
"kind": "modal_run_artifact",
"path": "results/v3/modal/generation__Qwen2.5-7B__b3_seed42_t0.00_new128_fp16+spectralquant_v2+turboquant.json",
"supports": ["Qwen2.5-7B greedy generation 8-prompt set: token-overlap-F1 vs FP16 self (SQv2 0.482, TQ 0.120) and distinct-2 (0.768/0.603/0.301)"],
"caveats": ["FP16 token-overlap-F1=1.0 is by construction (self vs self); the comparison is SQv2 0.482 vs TQ 0.120."]
},
{
"id": "RUN-LONGBENCH-QWEN2.5-7B-DETERMINISTIC",
"kind": "modal_run_artifact",
"path": "results/v3/modal/longbench__Qwen2.5-7B__b3_seed42_subsetdeterministic_n50_in8192_out128_fp16+spectralquant_v2+turboquant.json",
"supports": [
"LongBench deterministic 5-task subset (narrativeqa, qasper, hotpotqa, gov_report, trec) at n=50/task, max_input=8192, max_new=128, paper_valid=true",
"Macro scores: fp16=0.1755, spectralquant_v2=0.2004 (+14.2% relative), turboquant=0.0044",
"Per-task qa_f1 (narrativeqa/qasper/hotpotqa): fp16 0.1361/0.1712/0.2713; SQv2 0.1648/0.3274/0.2735; TQ 0.0047/0.0000/0.0025",
"Per-task gov_report ROUGE: fp16 0.1587, SQv2 0.1364, TQ 0.0149; trec classification_em: fp16 0.14, SQv2 0.10, TQ 0.00",
"Replay coverage 1.0 (28/28 layers calibrated, 0 passthrough) for both compressed methods",
"Run identity: commit 1ecb578a0b0251f1a716469e51be4303c7191cd6, Modal app ap-GHvmUwex1Hoav4BRrnTtVi, function call fc-01KQFKCFNP61M33NMBN7CQ4DQB, started 2026-04-30T16:26:17Z, succeeded 2026-04-30T22:04:00Z (~5h38m on H200)"
],
"caveats": [
"subset=deterministic: artifact's own caveats[] declares this is a transparent subset of LongBench (5/21 tasks); never headline as full LongBench (claims_discipline.md §5.2.5)",
"Single seed (42), single bit budget (b=3), single model (Qwen2.5-7B), single hardware class (NVIDIA H200/Modal); no per-task error bars",
"TurboQuant arm is in-repo local re-implementation (methods.turboquant.label='turboquant'); V1-GAP-012 (official Google TurboQuant) is not unblocked",
"Wall-clock dominated by SQv2's per-layer Python-callback hooked-replay overhead (~3.66h for SQv2 alone); not a production-kernel claim",
"First 6h-capped attempt on commit 6154175 (app ap-vTqL16w5Nmaw6s2oGc6czU, started 2026-04-30T10:10Z) was kill-switched without writing JSON; recovery patch in commit 1ecb578 (per-method full-record persistence + 12h kill-switch raise) enabled the canonical run"
]
}
],
"gaps": [
{
"id": "V1-GAP-001",
"summary": "Headline 10-seed CI (README, paper) but only 5 seeds on disk in results/neurips/neurips_10seed.json.",
"blocks_v2_claims": ["Wilcoxon p=0.031 cited as evidence of significance"],
"resolution_options": ["Re-run 5 missing seeds.", "Demote to '5 seeds' in v2 report and recompute statistics with the smaller n.", "Exclude statistical-significance claim from v2 headlines."]
},
{
"id": "V1-GAP-002",
"summary": "README cites 4 models in main results table; results/memory_efficiency/all_models.json contains 3 Qwen sizes only.",
"blocks_v2_claims": ["'4 models' headline in any v2 reuse"],
"resolution_options": ["Restrict v2 reuse to the three Qwen rows actually present.", "Re-run a 4th model and add it to the file before reuse."]
},
{
"id": "V1-GAP-002b",
"summary": "results/comparison/comparison_results.json shows SQ catastrophically losing to TQ at 3 bits on Qwen 1.5B (mean_improvement = -55 pp, win_rate = 0/16). Conflicts with the headline SQ-wins-on-every-head story.",
"blocks_v2_claims": ["'SQ wins per-head' until reconciled with results/comparison/proper_comparison.json"],
"resolution_options": ["Document why this configuration loses and exclude it from the headline.", "If it represents a broken intermediate build, delete it or move it under results/_archive/."]
},
{
"id": "V1-GAP-003",
"summary": "Latency conflict: results/neurips/neurips_latency_crossover.json reports SQ FASTER than TQ at 512 tokens (per-step 0.257 ms vs 0.566 ms); results/v3/v3_latency.json reports SQ ~50x SLOWER for compression at the same sequence length (21.04 ms vs 0.40 ms).",
"blocks_v2_claims": ["'SQ faster than TQ at 512 tokens' headline"],
"resolution_options": ["Pick one canonical latency methodology and re-run.", "Demote latency from headline until reconciled."]
},
{
"id": "V1-GAP-004",
"summary": "Two d_eff conventions live in the repo. Normalized-keys convention gives mean d_eff ≈ 3.95–4.30 across 5 models (V1-RESULT-002). Unnormalized eigenspectral phase 1 gives mean d_eff ≈ 35 (V1-RESULT-008). Both quoted in different places.",
"blocks_v2_claims": ["Any 'd_eff/head_dim ≈ 3–4%' claim that does not specify which convention."],
"resolution_options": ["v2 spec section 9.1 mandates normalized keys for d_eff. v2 must label all unnormalized numbers as such or remove them."]
},
{
"id": "V1-GAP-004b",
"summary": "results/v3/v3_perplexity_v2.json reports identical PPL = 9.5099805... to 13 digits for fp16, TQ, and SQ on Qwen 1.5B over 1023 tokens. The exact equality is suspicious for any real compression pipeline.",
"blocks_v2_claims": ["'Compression-neutral PPL'"],
"resolution_options": ["Re-run with longer context, real decoding, and per-step PPL deltas before reusing this number."]
},
{
"id": "V1-GAP-005",
"summary": "results/calibration_stability/stability.json self-declares 'Reconstructed from B200 experiment log output (original file was truncated during download)'.",
"blocks_v2_claims": ["'CV=3.9%' as a primary stability claim."],
"resolution_options": ["Re-run calibration stability and overwrite the reconstructed file.", "Mark the existing file as derived in the v2 evidence catalog (done)."]
},
{
"id": "V1-GAP-006",
"summary": "results/eigenspectral/phase1_metadata.json has gate1_status='FAILED'.",
"blocks_v2_claims": ["Any direct citation of phase 1 d_eff numbers without re-running."],
"resolution_options": ["Re-run phase 1 with gate fixed.", "Retire phase 1 artifact in favor of the per-model normalized d_eff in V1-RESULT-002."]
},
{
"id": "V1-GAP-007",
"summary": "README says '15-second calibration'; closest on-disk timing is wall_time_s=31.05 in V1-RESULT-009.",
"blocks_v2_claims": ["'15-second calibration' headline."],
"resolution_options": ["Drop the '15-second' framing.", "Re-time calibration on a documented hardware target and update README from JSON."]
},
{
"id": "V1-GAP-008",
"summary": "LongBench evidence (V1-RESULT-020) is n=5 per task — too small to support generalization.",
"blocks_v2_claims": ["'LongBench improvement'"],
"resolution_options": ["Re-run with n ≥ 50 per task before any LongBench claim (per spec §13.7)."]
},
{
"id": "V1-GAP-009",
"summary": "v1 evidence map flags NIAH artifacts as limited / partly broken.",
"blocks_v2_claims": ["'NIAH 10/10' headline."],
"resolution_options": ["Treat NIAH as background until re-run with v2 spec §13.7 protocol."]
},
{
"id": "V1-GAP-010",
"summary": "Two SpectralQuant engine surfaces coexist (src/spectralquant/engine.py and src/spectralquant/spectralquant.py).",
"blocks_v2_claims": ["Reproducibility — depending on import path, callers may exercise different code."],
"resolution_options": ["Pick one canonical engine in Phase 5; deprecate or alias the other; add an explicit __init__.py export."]
},
{
"id": "V1-GAP-011",
"summary": "Gemma row in V1-RESULT-002 is an HF 403 gated-repo error, not a measurement.",
"blocks_v2_claims": ["'Gemma 2-9B' as a measured architecture in v1."],
"resolution_options": ["Acquire HF access and re-run.", "Drop Gemma from the architecture list until re-run."]
},
{
"id": "V1-GAP-012",
"summary": "v1 evidence map says local TurboQuant baseline reproduction is marked failed in at least one phase 0 artifact.",
"blocks_v2_claims": ["'Beats official TurboQuant'."],
"resolution_options": ["Per spec §6 and §18, v2 may only claim 'beats LOCAL TurboQuant baseline' until the official Google implementation is run."]
},
{
"id": "V1-GAP-013",
"summary": "Ablation files (results/comparison/ablation_v2.json, full_ablation.json) report TQ baselines that don't always agree with V1-RESULT-001 numerically.",
"blocks_v2_claims": ["Any ablation row reused as a TQ baseline without reconciliation."],
"resolution_options": ["Pick one canonical TQ baseline file per (model, bits) and reference only that ID in v2 figures."]
},
{
"id": "V1-GAP-014",
"summary": "Compression-ratio formula in spec §10 does not yield 5.95x at b=3, d=3 with the simple appendix derivation. v1 README quotes 5.95x without a derivation that matches the stored bits.",
"blocks_v2_claims": ["Any compression-ratio number not produced by src/spectralquant/accounting.py."],
"resolution_options": ["Implement accounting.py per spec §10.", "Refuse to print headline ratios in v2 figures unless they come from accounting.py output."]
}
],
"updated_at": "2026-04-30"
}