模型推理提高5-20倍,一行代码测试多个DL编译器,这个库不懂硬件也会用

人工智能
这个 Nebullvm 一体化库,允许你在一行代码中测试多个 DL 编译器,并将模型的推理速度提高 5-20 倍。

近日,reddit 上一个帖子引来大量网友的讨论,帖子主要内容为:几乎没有人知道优化 AI 模型有多容易,通过添加几行代码,模型的推理速度提高 5-20 倍。

发帖人是初创公司 Nebuly 的联合创始人兼首席运营官 Emile Courthoud。Courthoud 认为目前开发人员虽然精通于 AI、数据集清洗和模型训练等,但是他们在硬件、编译器、计算、云计算等方面知识有欠缺。这导致开发人员会花费大量时间来提高软件的性能,而没有意识到选择合适硬件的重要性。

这个问题困扰了 Courthoud 很长时间,所以他和在 Nebuly 的几个朋友(都来自 MIT、ETH 和 EPFL)将大量精力投入到一个名为 nebullvm 的开源库中,该库涉及 DL 编译器技术,任何开发人员都可以访问,即使是对硬件一无所知的人也可以使用,该库旨在将所有开源的 AI 编译器统一在同一个易于使用的接口下。

Nebullvm 是如何工作的?总体而言,它通过测试不同的 DL(深度学习) 编译器并为用户选择最佳的一个,使得用户所用的 AI 模型与机器(CPU、GPU 等)形成最佳耦合,模型可以加速约 5-20 倍,只需几行代码即可完成。

项目地址:https://github.com/nebuly-ai/nebullvm

Nebullvm 项目简介

用户在下面几种情况下可以选择使用 Nebullvm 库。

  • 想要加快 AI 模型的响应时间;
  • 不希望测试市场上所有的 DL 编译器,只想了解对自身特定应用程序最好的那个;
  • 喜欢把复杂问题简单化,想要几行代码,就知道哪个 DL 编译器最适合自己等。

项目作者设计了一些超级易用的内容:你只需输入 DL 模型,就会得到一个和硬件匹配的最优模型版本。

目前,该项目支持的框架包括 PyTorch、TensorFlow,不久也会支持 Hugging Face。支持的 DL 编译器包括 OpenVINO、TensorRT、TVM,不久也会支持 Rammer、MLIR。

安装 nebullvm,用户可以采用源代码安装,使用 git 安装如下所示:

git clone https://github.com/nebuly-ai/nebullvm.git

然后进入 repo 并使用 pip 安装 nebullvm:

cd nebullvm
pip install .

PyPi 安装:安装 nebullvm 最简单的方法是使用 pip,然后运行如下代码

pip install nebullvm

自动安装方式如下:此方式可以自动安装所有由 nebullvm 支持的 DL 编译器。

python -c "import nebullvm"

但是,如果用户希望避免自动安装,可以采用如下方式:

export NO_COMPILER_INSTALLATION=1

或从命令行添加:

import os
os.environ["NO_COMPILER_INSTALLATION"] = "1"

安装完 nebullvm 就可以使用了,下面代码展示了使用 nebullvm 优化 pytorch 模型的示例:

>>> import torch
>>> import torchvision.models as models
>>> from nebullvm import optimize_torch_model
>>> model = models.efficientnet_b0()
>>> bs, input_sizes = 1, [(3, 256, 256)]
>>> save_dir = "."
>>> optimized_model = optimize_torch_model(
... model, batch_size=bs, input_sizes=input_sizes, save_dir=save_dir
... )
>>> x = torch.randn((bs, *input_sizes[0]))
>>> res = optimized_model(x)


责任编辑:张燕妮 来源: 机器之心
相关推荐

2019-12-25 14:08:50

Pandas数据计算

2019-09-17 09:40:06

编译器开源开发者

2022-10-27 16:03:57

2020-04-02 15:39:51

代码编译器前端

2018-09-19 15:46:51

编程语言Python编译器

2023-10-23 09:56:00

2022-03-08 09:57:04

开源技术模型

2016-12-02 08:53:18

Python一行代码

2022-06-27 08:42:05

代码sklearn机器学习

2024-11-08 17:22:22

2019-04-10 09:39:42

代码存储系统RPC

2023-05-04 07:34:37

Rust代码CPU

2023-11-10 09:41:44

Python代码

2021-12-26 12:10:21

React组件前端

2020-08-05 11:53:41

数据代码自动化

2021-09-06 07:59:13

Go编译器语言

2020-10-06 19:02:11

代码机器学习igel

2020-04-01 08:51:47

注释字符代码

2022-06-24 08:20:56

requests爬虫Python

2012-02-09 09:14:32

C++
点赞
收藏

51CTO技术栈公众号