项目作者: danielhanchen
项目描述 :
RAM机器学习速度提高50%,减少50%。 Numba改写了Sklearn。 SVD,NNMF,PCA,LinearReg,RidgeReg,随机,截断SVD / PCA,CSR矩阵均快50 +%
高级语言: Jupyter Notebook
项目地址: git://github.com/danielhanchen/hyperlearn.git

2-2000x faster algos, 50% less memory usage, works on all hardware - new and old.
If you want to collab on fast algorithms - msg me!!
Join our Discord server on making AI faster, or if you just wanna chat about AI!! https://discord.gg/unsloth
Unsloth Website
Documentation
50 Page Modern Big Data Algorithms PDF
Hyperlearn’s algorithms, methods and repo has been featured or mentioned in 5 research papers!
+ Microsoft, UW, UC Berkeley, Greece, NVIDIA
Hyperlearn’s methods and algorithms have been incorporated into more than 6 organizations and repositories!
+ NASA + Facebook's Pytorch, Scipy, Cupy, NVIDIA, UNSW
During Hyperlearn’s development, bugs and issues were notified to GCC!

HyperLearn is written completely in PyTorch, NoGil Numba, Numpy, Pandas, Scipy & LAPACK, C++, C, Python, Cython and Assembly, and mirrors (mostly) Scikit Learn.
HyperLearn also has statistical inference measures embedded, and can be called just like Scikit Learn’s syntax.
Some key current achievements of HyperLearn:
- 70% less time to fit Least Squares / Linear Regression than sklearn + 50% less memory usage
- 50% less time to fit Non Negative Matrix Factorization than sklearn due to new parallelized algo
- 40% faster full Euclidean / Cosine distance algorithms
- 50% less time LSMR iterative least squares
- New Reconstruction SVD - use SVD to impute missing data! Has .fit AND .transform. Approx 30% better than mean imputation
- 50% faster Sparse Matrix operations - parallelized
- RandomizedSVD is now 20 - 30% faster

Comparison of Speed / Memory
Algorithm |
n |
p |
Time(s) |
|
RAM(mb) |
|
Notes |
|
|
|
Sklearn |
Hyperlearn |
Sklearn |
Hyperlearn |
|
QDA (Quad Dis A) |
1000000 |
100 |
54.2 |
22.25 |
2,700 |
1,200 |
Now parallelized |
LinearRegression |
1000000 |
100 |
5.81 |
0.381 |
700 |
10 |
Guaranteed stable & fast |
Time(s) is Fit + Predict. RAM(mb) = max( RAM(Fit), RAM(Predict) )
I’ve also added some preliminary results for N = 5000, P = 6000

Help is really needed! Message me!
Key Methodologies and Aims
1. Embarrassingly Parallel For Loops
- Including Memory Sharing, Memory Management
- CUDA Parallelism through PyTorch & Numba
2. 50%+ Faster, 50%+ Leaner
3. Why is Statsmodels sometimes unbearably slow?
- Confidence, Prediction Intervals, Hypothesis Tests & Goodness of Fit tests for linear models are optimized.
- Using Einstein Notation & Hadamard Products where possible.
- Computing only what is neccessary to compute (Diagonal of matrix and not entire matrix).
- Fixing the flaws of Statsmodels on notation, speed, memory issues and storage of variables.
4. Deep Learning Drop In Modules with PyTorch
- Using PyTorch to create Scikit-Learn like drop in replacements.
5. 20%+ Less Code, Cleaner Clearer Code
- Using Decorators & Functions where possible.
- Intuitive Middle Level Function names like (isTensor, isIterable).
- Handles Parallelism easily through hyperlearn.multiprocessing
6. Accessing Old and Exciting New Algorithms
- Matrix Completion algorithms - Non Negative Least Squares, NNMF
- Batch Similarity Latent Dirichelt Allocation (BS-LDA)
- Correlation Regression
- Feasible Generalized Least Squares FGLS
- Outlier Tolerant Regression
- Multidimensional Spline Regression
- Generalized MICE (any model drop in replacement)
- Using Uber’s Pyro for Bayesian Deep Learning
- The Apache 2.0 license is adopted.