How Perforated Works
A PyTorch-native optimization layer that improves model efficiency and accuracy.
ML Stack Integration
Where Perforated Fits
Perforated integrates directly into the training loop between your model and optimizer. It improves model efficiency and accuracy during training while preserving your existing architecture, tooling, and deployment workflow.
- Integrates directly into existing PyTorch workflows
- No architecture rebuilds or deployment changes
- Compatible with standard PyTorch and ONNX export
- No runtime dependencies in production
- Designed for both cloud and edge deployment
Drop into existing training loops
Perforated integrates with minimal code changes. Wrap your model, track validation scores, and continue training as usual.
- 3-5 lines of code for basic integration
- Compatible with existing optimizers and schedulers
- Works with DataParallel and DistributedDataParallel
- Supports mixed precision training (AMP)
import torch
from perforated import perforate_model, PAITracker
# Wrap your existing model
model = YourModel()
model = perforate_model(model)
pai_tracker = PAITracker(model)
# Train normally, track validation scores
for epoch in range(num_epochs):
train_one_epoch(model, train_loader)
val_score = validate(model, val_loader)
model, done = pai_tracker.add_validation_score(val_score, model) Representative integration. Exact implementation depends on your training setup.
Integration Workflow
Four steps from integration to deployment.
1. Integrate
Wrap your existing model with perforate_model(). Typically 3-5 lines of code.
2. Train
Continue your normal training loop. Perforated optimizes structure during backpropagation.
3. Evaluate
Validate against your existing metrics and benchmarks. Compare before/after performance.
4. Deploy
Export optimized model to your target environment. No Perforated runtime required.
What Changes, What Doesn't
Clear boundaries for integration planning
What Changes
- Model initialization (wrapped with perforate_model)
- Training loop (add validation score tracking)
- Computational graph structure (optimized during training)
- Training time (may increase 10-30% during optimization)
- Hyperparameters (may need tuning for optimal results)
What Doesn't Change
- Model architecture definition
- Data pipeline and preprocessing
- Loss functions and evaluation metrics
- Deployment infrastructure
- Inference runtime (no Perforated dependency)
- Model export formats (ONNX, TorchScript, etc.)
- Existing optimization techniques (quantization, pruning)
How We Fit Into Your Workflow
Perforated is designed to work alongside existing optimization and fine-tuning methods, helping teams improve accuracy, efficiency, and deployment outcomes without rebuilding their stack.
| Feature | Perforated Recommended | Compression (e.g., pruning, quantization) | Fine-Tuning |
|---|---|---|---|
| Reduce compute requirements | Strong | Limited | |
| Support edge deployment | Strong | Not designed | |
| Integrate into existing workflows | Rework needed | Workflow-specific | |
| Preserve quality under efficiency constraints | Accuracy tradeoffs | Resource-heavy | |
| Improve model accuracy | Accuracy loss | Sometimes | |
| Reduce training data needs | No impact | Sometimes |
Open Source vs Enterprise
Choose the right version for your use case
Open Source
Research and evaluation
- Core perforation algorithms
- Basic PyTorch integration
- Community support via GitHub
- MIT license for research use
- No production guarantees
- Limited optimization features
Enterprise
Production deployments
- Production-grade optimizations
- Advanced diagnostic tools
- Compatibility guarantees
- Priority support and SLAs
- Custom integration assistance
- Commercial license included
Product Questions
Technical details about integration, deployment, and evaluation
Where does Perforated sit in my existing ML stack?
Perforated comes in strictly during the training or fine-tuning phase. It modifies the computational structure of your network during training and leverages a set of unique learning rules to optimize learning. It then exports to any PyTorch processing step, with no changes to existing processes.
Does Perforated require a custom runtime dependency in production?
No. Because Perforated optimizes the computational graph strictly during training, the final exported model is standard PyTorch. There are zero Perforated runtime dependencies required in your edge or cloud production environments.
What is Perforated Backpropagation™?
Perforated Backpropagation™ empowers the artificial neurons of deep neural networks to achieve better performance coding for the same features they coded for in the original architecture. After an initial network training phase, additional "Dendrite Nodes" are added to the network and separately trained with a different objective: to correlate their output with the remaining error of the original neurons. The trained Dendrite Nodes are then frozen, and the original neurons are further trained, now taking into account the additional error signals provided by the Dendrite Nodes. The cycle of training the original neurons and then adding and training Dendrite Nodes can be repeated several times until satisfactory performance is achieved.
What is the difference between the open-source and commercial versions?
The open-source version (Apache 2.0) offers the core dendritic architecture trained with standard backpropagation for research and evaluation. The commercial version includes our patented Perforated Backpropagation™ algorithm for maximum efficiency gains, as well as Perforated Studio—a GUI for configuring runs and inspecting results without hand-rolling integration.
Ready to Evaluate Perforated?
Run our compatibility check to see if Perforated can improve your models. Most evaluations complete in 1-2 days.