Back to directory

polystep

A gradient-free method for training neural networks, including spiking networks and other models without useful gradients, that perturbs parameters within a finite radius and updates them through a weighted optimal-transport barycenter.

polystep

PolyStep trains models that lack useful gradients, such as spiking neural networks, quantized layers or those with hard routing, by evaluating finite-radius parameter perturbations and moving parameters to a weighted barycenter computed by optimal transport, rather than backpropagating. For ordinary differentiable models, standard backpropagation is usually faster.

Each optimization step samples a rotated polytope of candidate parameter sets, evaluates its vertices, computes transport weights between them, and moves toward their barycenter; an optional subspace mechanism reduces the number of coordinates searched at once, and softmax or Sinkhorn weighting controls how blocks of parameters are treated relative to one another.

It installs with pip, requires Python 3.11 and PyTorch 2.8 or newer, and includes baseline gradient-free methods for comparison, including OpenAI-ES, SPSA, MeZO, random search and CMA-ES. The method was accepted at Transactions on Machine Learning Research.

More in Models

See all 405
  • mini-AGI

    github.com

    A continual learning language model that trains from scratch on a single 8 GB VRAM GPU, assembling its own architecture and adapting its size to the hardware and data available rather than shipping as a fixed pretrained model.

  • An open-source contrastive-embedding pipeline that maps technical CVE vulnerability descriptions to formal cybersecurity compliance controls in NIST SP 800-53 and CMMC, published with its model generation, fine-tuning and evaluation code.

  • peekaboolean

    github.com

    A small vision-language model, fine-tuned with LoRA on a 500-million-parameter backbone, that answers typed multiple-choice, ordinal-score and yes/no questions about an image with calibrated probabilities, in about 400 milliseconds on a laptop.