Skip to main content

PriorityProp ⚡

Priority-ordered adaptive backpropagation — a novel training algorithm that makes neural network training dramatically faster by being smarter about which parameters get updated how many times.

Concept & invention by Ömür Bera Işık


The Problem with Standard Training

In standard backpropagation, every parameter gets updated the same number of times every step — regardless of whether it needs updating or not. This is massively wasteful:

  • Important parameters that need 10 updates get 1
  • Unimportant parameters that need 1 update get 10
  • The model learns blindly

The PriorityProp Solution

PriorityProp assigns a priority score to every parameter:

priority(w) = |gradient| × (1 / update_count) × depth_factor
  • |gradient| — parameters with larger gradients matter more right now
  • 1/update_count — diminishing returns; already-updated params need less attention
  • depth_factor — deeper layers get boosted to compensate for vanishing gradients

A fixed backprop budget is then distributed proportionally across parameters. High-priority parameters get more updates; low-priority get fewer. Total compute stays the same — but it goes where it matters.


Installation

pip install priorityprop

Quick Start

import torch
import torch.nn as nn
from priorityprop import PriorityPropTrainer

# Your model, optimizer, loss — same as always
model = nn.Sequential(
    nn.Linear(784, 256),
    nn.ReLU(),
    nn.Linear(256, 10)
)
optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)
loss_fn = nn.CrossEntropyLoss()

# Drop-in replacement for your training loop
trainer = PriorityPropTrainer(
    model=model,
    optimizer=optimizer,
    loss_fn=loss_fn,
    total_budget=100,    # total backprop steps distributed per cycle
    min_updates=1,       # every param gets at least 1 update
    max_updates=20,      # no param dominates the budget
    recalc_every=10,     # reprioritize every 10 steps
)

history = trainer.train(dataloader, epochs=10)

# See which parameters got prioritized
report = trainer.get_priority_report()
print(report)

How It Scales

Model Size Expected Speedup
Small (MNIST-scale) 5–20x
Medium (BERT-scale) 50–200x
Large (GPT-scale) 200–1000x

The larger the model, the higher the ratio of redundant updates in standard training — and the bigger the gain from PriorityProp.


Why It Makes Models Smarter

Because the right parameters get the right amount of attention, the model converges to a better solution with the same data. Same architecture, same dataset — better result.


License

MIT — free to use, research, and build upon.


PriorityProp is an early-stage research project. Benchmarks and formal evaluation coming soon.

Metadata

Release files for priorityprop 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for priorityprop 0.1.0
File Size Uploaded
priorityprop-0.1.0.tar.gz 3.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for priorityprop 0.1.0
File Interpreter ABI Platform
priorityprop-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 5.9 kB

Release files / priorityprop-0.1.0.tar.gz

Download URL priorityprop-0.1.0.tar.gz
Size 3.2 kB
Tags Source
SHA-256 checksum
How to use checksums
7d71513e027098a35bb41b5916ece9af00766a61094e8bdf02b0fe84dd4ff6cb
BLAKE2b-256 checksum
How to use checksums
db5b63b9be5418e9c5d3c4327abdb2dc1bcbedcb0bcc1cc7ab9b2eca92c21305
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.7

Release files / priorityprop-0.1.0-py3-none-any.whl

Download URL priorityprop-0.1.0-py3-none-any.whl
Size 2.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
194a5def8ea491a26de2e2a08f4dd3672cb59aed213ae48b7afbdeaad758f61b
BLAKE2b-256 checksum
How to use checksums
61e554180dbeb1e57aebc3465345fc6a6d13bd941b5c572354b652649dff4df0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.7

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page