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

https://scikit-learn.org/

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

https://wandb.ai/home

部署模型

https://docs.bentoml.org/

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

Tags:

related content