wikillm

Concept · 1 paper · updated 2026-11-06

Error feedback

Error feedback keeps a dense copy of the parameters and computes each step at a compressed copy, then applies the update to the dense copy so the compression error is not lost. In the one card so far, it lets pruned weights return to a sparse network trained in a single run. Only one paper with a card covers it.

sparsitymodel-compressionoptimization

Markdown2 min read

AI-compiled overview, updated 2026-11-06, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.

Overview

A compressed model (for example a sparse one) is cheaper to run, but the compression throws information away. Error feedback keeps the discarded part in a dense copy of the parameters. Each step is computed at the compressed point, and the update goes to the dense copy, so the difference between the two (the error) is carried forward rather than lost 2006.07253 §3.

The paper links this to the error-feedback literature (Stich et al., 2018; Karimireddy et al., 2019), which it cites as the source of the idea 2006.07253 §3. Those papers have no cards here, so this page says nothing about their content.

Variants

Dense copy with a magnitude mask (DPF)

The sparse model is m ⊙ x, where m is a binary mask recomputed from the dense weights x by global magnitude every 16 iterations. The gradient is taken at the sparse model and applied to the dense weights, so a weight that was cut can grow back into the mask 2006.07253 §3 2006.07253 alg. 1. The paper states the error as e_t = x̂_t − x_t and writes the update as a gradient at the dense point plus that error 2006.07253 §3.

Card: Dynamic Model Pruning with Feedback.

Reported results, all author-reported and from scratch without extra fine-tuning unless noted: WideResNet-28-2 on CIFAR-10 at 99% sparsity reaches 88.92 ± 0.29 top-1 against 83.45 ± 0.38 for SNIP 2006.07253 tab. 2. On ImageNet, ResNet-50 at 80% sparsity loses 0.47 points top-1 against the dense model 2006.07253 tab. 4. With 60 extra fine-tuning epochs, the paper reports 91.76 for ResNet-20 at 90% sparsity 2006.07253 tab. 3.

Not covered here

The paper also uses the same scheme for structured (filter) pruning, but only on CIFAR-10 and in a preliminary form 2006.07253 §6 2006.07253 tab. 7. Quantised or distributed uses of error feedback are not covered by any card yet.

When to use which

Only one card exists, so this table compares the pattern with the simpler choices the paper itself uses as baselines.

SituationUseWhy
You need sparse weights from one training run and cannot afford a second stageDense copy with a magnitude mask (DPF)The paper reports one-run training with no separate repair step 2006.07253 §1 2006.07253 §5.2
You can prune a trained model and fine-tune itOne-shot pruning with fine-tuning (baseline in the paper)The paper's comparison uses this as a baseline, and it commits to one mask 2006.07253 tab. 1 2006.07253 §3
You need a fixed mask for a fresh runDo not reuse DPF's final mask as a fixed ticketRetraining the final mask from scratch did not recover the accuracy 2006.07253 §6 2006.07253 fig. 5
Structured (filter) pruning at scaleNot established by this cardThe structured results are CIFAR-10 only and preliminary 2006.07253 §6

The mask-update period is a design choice. The paper uses 16 iterations for all experiments and calls it the best value in its tested range 2006.07253 app. A.3.3.

Implementation sketch

Core loop of the dense-copy pattern, as in the paper's Algorithm 1. Sparsity schedule and mask scope are in the card's hyperparameters.

Pseudocode
# Keep dense weights x; recompute the mask from x every p steps  [alg. 1]
def train_with_error_feedback(x, steps, p, sparsity_at):
    for t in range(steps):
        if t % p == 0:
            # Global magnitude mask over the prunable weights  [§5.1]
            mask = magnitude_mask(x, sparsity_at(t))
        # Compressed model used for the forward and backward pass  [§3]
        x_hat = mask * x
        grad = gradient_at(x_hat)
        # The update goes to the dense copy, not the compressed one  [§3]
        x = optimizer_step(x, grad)
    return x, mask * x  # dense copy, compressed model for inference

The timing of the schedule (iterations or epochs) is ambiguous in the paper and is discussed on the card 2006.07253 app. A.2.

Contradictions

None known. Only one card lists this concept.

Papers

Source and license

Compiled from the papers listed on this page, all published under CC BY, CC BY-SA or CC0, with citations. See each paper's page for its authors and license.