Model details
Table | |
|---|
| Base model | openlm-research/open_llama_7b |
| Method | AWP |
| Target / achieved sparsity | 50% / 50.00% |
| Calibration | 64 batches × 4 × 512 tokens |
| Weight correction | none (mask search only) |
| Retraining | none |
What is pruned: every nn.Linear in the 32 decoder layers (attention q/k/v/o and MLP gate/up/down) plus lm_head, 225 layers in total (see pruning_summary.json). Embeddings and norms stay dense.
Method
AWP (Liu et al., 2025, arXiv:2506.10205) minimises the activation-weighted reconstruction error ‖(W − Θ) C^{1/2}‖²_F, C = E[xxᵀ], by iterative hard thresholding: Z = Θ + η (W − Θ) C, η = 2/‖C‖_F, then keep the top-k entries per row. It is initialised from the Wanda mask and runs up to 200 iterations (tolerance 1e-4).
Evaluation
Table with columns: Metric, This model, Dense| Metric | This model | Dense |
|---|
| WikiText-2 PPL ↓ | 10.62 | 8.64 |
| ARC-Easy (acc_norm) | 0.614 | 0.678 |
| ARC-Challenge (acc_norm) | 0.336 | 0.385 |
| HellaSwag (acc_norm) | 0.612 | 0.694 |
| PIQA (acc_norm) | 0.732 | 0.763 |
| WinoGrande (acc) | 0.661 |
Zero-shot via lm-evaluation-harness; ARC/HellaSwag/PIQA acc_norm, WinoGrande acc. Raw results: results/benchmark_awp_llama_50pct.json.
WikiText-2 PPL of all five methods at 50% (dense 8.64):
Table with columns: Method, WikiText-2 PPL ↓| Method | WikiText-2 PPL ↓ |
|---|
| CWS | 11.92 |
| SparseGPT | 12.70 |
| Wanda | 11.43 |
| RIA | 11.20 |
| AWP (this model) | 10.62 |
These are the project's results at the time the checkpoints were uploaded (2026-05-11; results/sparsity_sweep_llama.json @ 6e144ae), with dense PPL 8.64. The repository README now reports these models under a 2048-token protocol (dense 6.61); the ordering between methods is similar.
Usage
import torchfrom transformers import AutoModelForCausalLM, LlamaTokenizer model_id = "ikimyaii/llama-7b-awp-50pct"tokenizer = LlamaTokenizer.from_pretrained(model_id)model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.float16, device_map="auto") lin = model.model.layers[0].mlp.down_projprint(f"sparsity: {(lin.weight == 0).float().mean():.3f}")
Limitations
- These are research checkpoints for studying pruning. They are not instruction-tuned or safety-tuned, and they inherit the base model's biases.
- Weights are stored densely, with zeros at the pruned positions. Sparsity alone gives no speedup without a sparse kernel or event-driven hardware.
- Sparse-LLMs-on-Loihi: pruning scripts, baselines and raw results for this checkpoint.
- CWS: reference implementation of the CWS method these baselines are compared against.
- Weight-Sparsity-Using-Real-Loss and EHWS: follow-up work that optimises the real next-token loss instead of layer-wise reconstruction.