Skip to main content

A library to make neural networks lighter and faster with fastai

Project description

header

FeaturesInstallationTutorialsCommunityCitingLicense

Overview

fasterAI is a PyTorch-based library that makes neural networks smaller, faster, and more efficient through state-of-the-art compression techniques. The library provides simple but powerful implementations of pruning, knowledge distillation, quantization, and other network optimization methods that can be applied with just a few lines of code.

Why compress your models with fasterai?

  • Reduce model size by up to 90% with minimal accuracy loss
  • Speed up inference for deployment on edge devices
  • Lower energy consumption for more sustainable AI
  • Simplify architectures while maintaining performance
Performance Improvements

Features

1. Sparsification

Sparsification

Make your model sparse by replacing selected weights with zeros using Sparsifier or SparsifyCallback.

Parameter Description Options
sparsity Percentage of weights to zero out 0-100%
granularity Level at which to apply sparsity 'weight', 'vector', 'kernel', 'filter'
context Scope of sparsification 'local' (per layer), 'global' (whole model)
criteria Method to select weights 'magnitude', 'movement', 'gradient', etc.
schedule How sparsity evolves during training 'one_shot', 'iterative', 'gradual', etc.

2. Pruning

Pruning

Remove zero-weight nodes from your network structure using Pruner or PruneCallback.

Parameter Description Options
pruning_ratio Percentage of weights to remove 0-100%
context Scope of sparsification 'local' (per layer), 'global' (whole model)
criteria Method to select weights 'magnitude', 'movement', 'gradient', etc.
schedule How sparsity evolves during training 'one_shot', 'iterative', 'gradual', etc.

3. Knowledge Distillation

Distillation

Transfer knowledge from a large teacher to a smaller student using KnowledgeDistillationCallback.

Parameter Description Options
teacher Teacher model Any PyTorch model
loss Distillation loss function 'SoftTarget', 'Logits', 'Attention', etc.
activations_student Student layers to match Layer names as strings
activations_teacher Teacher layers to match Layer names as strings
weight Balancing weight for distillation 0.0-1.0

4. Regularization

Regularization

Push weights toward zero during training using RegularizeCallback.

Parameter Description Options
criteria Regularization criteria Same as sparsification criteria
granularity Level of regularization Same as sparsification granularity
weight Regularization strength Floating point value
schedule How sparsity evolves during training 'one_shot', 'iterative', 'gradual', etc.
layer_types Layer types to regularize 'nn.Conv2d', 'nn.Linear', etc.

5. Quantization

Quantization

Reduce the precision of weights and activations using Quantizer or QuantizeCallback.

Parameter Description Options
backend Target backend 'x86', 'qnnpack'
method Quantization method 'static', 'dynamic', 'qat'
use_per_tensor Force per-tensor quantization True/False

Quick Start

This is how easy it is to induce Sparsification in your PyTorch model:

from fasterai.sparse.all import *

learn = vision_learner(dls, model)
learn.fit_one_cycle(n_epochs, cbs=SparsifyCallback(sparsity, granularity, context, criteria, schedule))

Installation

pip install git+https://github.com/FasterAI-Labs/fasterai.git

or

pip install fasterai

Tutorials


Join the community

Join our discord server to meet other FasterAI users and share your projects!


Citing

@software{Hubens,
  author       = {Nathan Hubens},
  title        = {fasterai},
  year         = 2022,
  publisher    = {Zenodo},
  version      = {v0.3.0},
  doi          = {10.5281/zenodo.6469868},
  url          = {https://doi.org/10.5281/zenodo.6469868}
}

License

Apache-2.0 License.

footer

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fasterai-0.3.2.tar.gz (51.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fasterai-0.3.2-py3-none-any.whl (58.8 kB view details)

Uploaded Python 3

File details

Details for the file fasterai-0.3.2.tar.gz.

File metadata

  • Download URL: fasterai-0.3.2.tar.gz
  • Upload date:
  • Size: 51.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for fasterai-0.3.2.tar.gz
Algorithm Hash digest
SHA256 646d2c855188a70466ab681177942d0f89c20e884315bf0aa0bb2cd1b636567f
MD5 0536caefc3589646202f6dd842f9d4fc
BLAKE2b-256 29ba58b277238cf56518a844ede471fcd2534cc6ab6ea12c24b2c2d4512124a5

See more details on using hashes here.

File details

Details for the file fasterai-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: fasterai-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 58.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for fasterai-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8a494a7112cedb3dfd46a41c1bbafdf3e6ed4a4f01cd4e84c7244f6ba50dd5cd
MD5 d238bfdafc3e377a36df36d8c3b3945d
BLAKE2b-256 092d2125d9b167723286735966b91a52c03850fd2249897f23826f9557cce087

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page