近日,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)