蜂鸟:将训练好的ML模型编译成张量计算

2020-06-08 02:33:01

蜂鸟是一个用于将经过训练的传统ML模型编译成张量计算的库。蜂鸟允许用户无缝地利用神经网络框架(如PyTorch)来加速传统ML模型。多亏了蜂鸟,用户可以从以下方面受益:(1)在神经网络框架中实施的所有当前和未来的优化;(2)本地硬件加速;(3)拥有支持传统和神经网络模型的独特平台;以及(4)无需重新设计他们的模型。

目前,您可以使用蜂鸟将经过训练的传统ML模型转换为PyTorch。蜂鸟支持各种基于树的分类器和回归器。这些模型包括SCRKIT学习决策树和随机森林,以及LightGBM和XGBoost分类器/回归器。我们的路线图中包含对其他神经网络后端(如ONNX、TVM)和模型的支持。

蜂鸟在Linux、Windows和MacOS机器上的Python>;=3.5上进行了测试。建议使用虚拟环境(请参阅python3venv文档或在VS代码中使用Python环境)。

一般来说,蜂鸟的语法非常直观和简洁。要在DNN框架上运行传统的ML模型,只需导入HummingBird.ml并将其添加到(';dnn_framework';)中即可。下面是一个使用SCRICKIT-学习随机森林模型和PyTorch作为目标框架的示例。

将Numpy作为NP从skLearning导入。从蜂鸟导入随机森林分类器。ML IMPORT CONVERT#为二进制分类num_class=2X=np创建一些随机数据。数组(np.。随机的。Rand(100000,28),dtype=NP。Float32)y=Np。随机的。RANDINT(NUM_CLASSES,SIZE=100000)#创建并训练一个模型(SECKIT-在本例中学习随机森林分类器)SKL_MODEL=随机森林分类器(n_估计器=10,最大深度=10)SKL_MODEL。fit(X,y)#使用Hummingbird将模型转换为PyTorch model=Convert(SKL_MODEL,';pytorch';)#对CPU模型运行预测。预测(X)#在GPU模型上运行预测。变成(Cuda&39;)模式。预测(X)。

有关愿景和蜂鸟相关技术细节的更多详细信息,请查看我们的文件:

服务于复杂性、性能和成本的驯服模型:张量计算方法的汇编。Supun Nakandalam,Karla Saur,Gyeong-in Yu,Konstantinos Karanasos,Carlo Curino,Markus Wemer,Matteo Interlandi。技术报告。

将经典ML流水线编译成张量计算,用于一刀切的预测服务。苏潘·纳坎达拉,余景仁,马库斯·韦默,马泰奥·Interlandi。ML研讨会系统。NeurIPS 2019