Ecosystem深度学习
Published on Aug. 22, 2023, 12:02 p.m.
pytorch
https://pytorch.org/ecosystem/
- 爱因斯坦求和约定einsum
- 张量操作einops
tensorflow
https://github.com/tensorflow/ecosystem
mxnet
https://mxnet.apache.org/versions/1.7.0/ecosystem/
Jax
ThunderGBM: Fast GBDTs and Random Forests on GPUs
https://github.com/Xtra-Computing/thundergbm
https://thundergbm.readthedocs.io/en/latest/
LightGBM GPU
https://lightgbm.readthedocs.io/en/latest/GPU-Tutorial.html
sklearn
cuML机器学习加速库 兼容sk
cuML 是一套实现机器学习算法和数学原语函数的库,这些函数与其他RAPIDS项目共享兼容的 API 。
cuML 使数据科学家、研究人员和软件工程师能够在 GPU 上运行传统的表格 ML 任务,而无需深入了解 CUDA 编程的细节。在大多数情况下,cuML 的 Python API 与scikit-learn 的API 相匹配 。
对于大型数据集,这些基于 GPU 的实现可以比其 CPU 等效项快 10-50 倍。有关性能的详细信息,请参阅cuML Benchmarks Notebook。
https://github.com/rapidsai/cuml
Hummingbird 将经过训练的 ML 模型编译为张量计算以加快推理速度。
Hummingbird是一个用于将经过训练的传统 ML 模型编译为张量计算的库。Hummingbird允许用户无缝地利用神经网络框架(例如PyTorch)来加速传统的 ML 模型。感谢Hummingbird,用户可以受益于:(1)在神经网络框架中实现的所有当前和未来的优化;(2) 原生硬件加速;(3) 有一个独特的平台来支持传统和神经网络模型;并拥有所有这一切 (4),而无需重新设计他们的模型。
目前,您可以使用Hummingbird将经过训练的传统 ML 模型转换为PyTorch、TorchScript、ONNX和TVM)。Hummingbird 支持各种 ML 模型和特征化器。这些模型包括 scikit-learn决策树和随机森林,以及LightGBM和XGBoost分类器/回归器。对其他神经网络后端和模型的支持在我们的路线图上。
Hummingbird 还在 Sklearn API 之后提供了一个方便的统一“推理”API。这允许将 Sklearn 模型与 Hummingbird 生成的模型交换,而无需更改推理代码。通过将模型转换为 PyTorch 和 TorchScript,还可以使用TorchServe为它们提供服务。
https://github.com/microsoft/hummingbird
Onnx 生态
部署推理
https://onnxruntime.ai/docs/ecosystem/
wandb
部署模型
TVM
TVM是一款开源的、端到端的深度学习模型编译框架,用于优化深度学习模型在CPU、GPU、ARM等任意目标环境下的推理运行速度,常见的应用场景包括:
需要兼容所有主流模型作为输入,并针对任意类型的目标硬件生成优化部署模型的场景
对部署模型的推理延迟、吞吐量等性能指标有严格要求的场景
需要自定义模型算子、自研目标硬件、自定义模型优化流程的场景
https://tvm.apache.org/
XLA:优化机器学习编译器
XLA(加速线性代数)是一种针对特定领域的线性代数编译器,能够加快 TensorFlow 模型的运行速度,而且可能完全不需要更改源代码。
https://www.tensorflow.org/xla
张量操作
灵活而强大的张量操作,可实现可读和可靠的代码。支持 numpy、pytorch、tensorflow、jax等。
https://github.com/arogozhnikov/einops
介绍看这里
https://www.bilibili.com/read/cv12239491
优化的 Einsum
通过收缩顺序优化优化 NumPy、Tensorflow、Dask 等中的 einsum 函数。
该opt_einsum.contract 函数通常可以作为einsum 函数的替代品,无需进一步更改代码,同时提供卓越的性能。这里,张量收缩是在优化和不优化的情况下执行的:
https://github.com/dgasmith/opt_einsum
EagerPy
https://github.com/jonasrauber/eagerpy
https://www.jiqizhixin.com/articles/2020-09-03-9
更多资源
https://mubucm.com/doc/SurKgLY3df
External-Attention-pytorch 注意力合集
https://github.com/napoler/External-Attention-pytorch
Awesome Tensor Compilers
https://github.com/merrymercy/awesome-tensor-compilers
FLAML(用于超参数优化的 AutoML 库):https : //github.com/microsoft/FLAML
Optuna(超参数优化框架):https : //github.com/optuna/optuna
Julia 包:https : //github.com/IQVIA-ML/LightGBM.jl
JPMML(Java PMML 转换器):https : //github.com/jpmml/jpmml-lightgbm
Treelite(用于高效部署的模型编译器):https : //github.com/dmlc/treelite
lleaves(用于高效推理的基于 LLVM 的模型编译器):https : //github.com/siboehm/lleaves
Hummingbird(模型编译器转换成张量计算):https : //github.com/microsoft/hummingbird
cuML 森林推理库(GPU 加速推理):https : //github.com/rapidsai/cuml
daal4py(英特尔 CPU 加速推理):https : //github.com/intel/scikit-learn-intelex/tree/master/daal4py
m2cgen(各种语言的模型应用程序):https : //github.com/BayesWitnesses/m2cgen
叶子(Go 模型应用器):https : //github.com/dmitryikh/leaves
ONNXMLTools(ONNX 转换器):https : //github.com/onnx/onnxmltools
SHAP(模型输出解释器):https : //github.com/slundberg/shap
Shapash(模型可视化和解释):https : //github.com/MAIF/shapash
dtreeviz(决策树可视化和模型解释):https : //github.com/parrt/dtreeviz
SynapseML(Spark 上的 LightGBM):https : //github.com/microsoft/SynapseML
Kubeflow Fairing(Kubernetes 上的 LightGBM):https : //github.com/kubeflow/fairing
Kubeflow Operator(Kubernetes 上的 LightGBM):https : //github.com/kubeflow/xgboost-operator
lightgbm_ray(LightGBM on Ray):https : //github.com/ray-project/lightgbm_ray
火星(火星上的 LightGBM):https : //github.com/mars-project/mars
ML.NET (.NET/C#-package): https://github.com/dotnet/machinelearning
LightGBM.NET (.NET/C#-package): https://github.com/rca22/LightGBM.Net
红宝石宝石:https : //github.com/ankane/lightgbm-ruby
LightGBM4j(Java 高级绑定):https : //github.com/metarank/lightgbm4j
lightgbm-rs(Rust 绑定):https : //github.com/vaaaaanquish/lightgbm-rs
MLflow(实验跟踪,模型监控框架):https : //github.com/mlflow/mlflow
{treesnip}(R{parsnip}兼容接口):https : //github.com/curso-r/treesnip
{mlr3extralearners}(R{mlr3}兼容接口):https : //github.com/mlr-org/mlr3extralearners
lightgbm-transform(特征转换绑定):https : //github.com/microsoft/lightgbm-transform