paint-brush
这个开源库在几行代码中将 AI 推理速度提高了 5-20 倍经过@emilec
821 讀數
821 讀數

这个开源库在几行代码中将 AI 推理速度提高了 5-20 倍

经过 Nebuly7m2022/04/11
Read on Terminal Reader
Read this story w/o Javascript

太長; 讀書

nebullvm 库是一个用于加速 AI 计算的开源工具。它将您的 AI 模型作为输入并输出优化版本,在您的硬件上运行速度提高 5-20 倍。 Nebullvm 正在迅速流行起来,在发布当天就有 250 多颗 GitHub 星。该库的目标是:与深度学习模型无关。安装库和优化模型需要几行代码。它很容易使用。它在您的机器上本地运行。一切都在本地运行。

People Mentioned

Mention Thumbnail
Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coins Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - 这个开源库在几行代码中将 AI 推理速度提高了 5-20 倍
Nebuly HackerNoon profile picture

nebullvm是如何工作的?

它将您的 AI 模型作为输入并输出优化版本,在您的硬件上运行速度提高 5-20 倍。换句话说,nebullvm 会测试多个深度学习编译器,以确定在特定机器上执行模型的最佳方法,而不会影响模型的准确性。

就是这样。只需几行代码。

非常感谢大家支持这个开源项目!该库在发布当天收到了 250 多颗 Github 星星⭐,这真是太棒了🚀

方向图

让我们进一步了解 nebullvm 和 AI 优化。我们应该从哪里开始?从...

  • 关于为什么很少有开发人员优化人工智能和相关负面后果的一些背景
  • 图书馆如何运作的概述
  • 一些用例、技术演示和基准
  • 图书馆背后的技术描述

还是直接跳到图书馆→ nebullvm

语境

最后,人工智能 (AI) 的采用正在迅速增长,尽管我们距离充分利用这项技术的潜力还很遥远。

事实上,通常情况下,人工智能开发人员将大部分时间花在数据分析、数据清理和模型测试/训练上,目的是构建非常准确的人工智能模型。

然而……很少有模型能够投入生产。如果他们这样做了,就会出现两种情况:

AI 模型由熟练的数据科学家和优秀的 AI 工程师开发,他们通常在云、编译器、硬件和所有低级事务方面的经验有限。当他们的模型准备好部署时,他们选择了他们能想到的第一个 GPU 或 CPU 在云或他们的公司/大学服务器上,没有意识到由于不知情而对模型性能造成的严重影响(即更慢和更昂贵的计算)硬件选择,糟糕的云基础设施配置,缺乏模型/硬件后训练优化。

其他公司已经开发出运行良好的内部 AI 模型。 AI 推理对这些公司至关重要,因此他们通常会组建一个硬件/云工程师团队,他们会花费数小时寻找开箱即用的方法来优化模型部署。

你属于这两组之一吗?那么你可能会对 nebullvm 库感兴趣,下面我们解释一下原因。

图书馆

nebullvm 是如何工作的?

你导入库,nebullvm 做了一些魔法,你的 AI 模型运行速度会快 5-20 倍。

就是这样。只需几行代码。

nebullvm 库的目标是让任何开发人员从深度学习编译器中受益,而不必浪费大量时间来理解、安装、测试和调试这项强大的技术。

Nebullvm 正在迅速流行起来,在发布当天就有 250 多个 GitHub 星,以及来自初创公司和大型科技公司的数百名活跃用户。图书馆的目标是:

💻 与深度学习模型无关。 nebullvm 支持所有最流行的架构,例如转换器、LSTM、CNN 和 FCN。

🤖 与硬件无关。该库现在可以在大多数 CPU 和 GPU 上运行,并且很快将支持 TPU 和其他特定于深度学习的 ASIC。

🔥 与框架无关。 nebullvm 支持最广泛使用的框架(PyTorch、TensorFlow 和 Hugging Face),并且很快将支持更多。

🔑安全。一切都在您的机器上本地运行。

☘️易于使用。安装库和优化模型需要几行代码。

利用最好的深度学习编译器。有大量的 DL 编译器可以优化 AI 模型在硬件上的运行方式。开发人员在每次模型部署时都需要花费大量时间来安装和测试它们。图书馆帮你搞定!

用例

为什么将计算速度提高 5 到 20 倍如此有价值?

节省时间→ 加速您的 AI 服务并使其实时化。

省钱→降低云计算成本。

节能→ 减少 AI 服务的电力消耗和碳足迹。

也许您可以轻松掌握加速计算如何使您的特定用例受益。我们还将为您提供一些使用案例,说明 nebullvm 如何帮助不同领域的社区中的许多人:

快速计算使搜索和推荐引擎更快,从而在网站和平台上带来更愉快的用户体验。此外,近实时人工智能是许多医疗科技公司和自动驾驶的严格要求,因为缓慢的响应时间可能会使人们的生命处于危险之中。虚拟世界和游戏行业也需要接近零的延迟才能让人们无缝交互。速度还可以在加密/NFT/快速交易等领域提供优势。

以最小的努力降低成本永远不会伤害任何人。对此几乎没有什么可解释的。

随着时间的推移,绿色人工智能是一个越来越受欢迎的话题。每个人都清楚气候变化的风险和影响,尽可能减少能源消耗非常重要。对该问题的广泛认识反映在跨部门的购买行为如何朝着更大的可持续性发展。此外,在某些情况下,低功耗是系统要求,尤其是在可能未连接到连续电源的物联网/边缘设备上。

技术展示

我们建议按照Github上的安装说明立即在您的 AI 模型上测试该库。相反,如果您想亲身体验该库的功能,请查看此链接中的笔记本,您可以在其中在流行的深度学习模型上测试 nebullvm。请注意,笔记本仍然需要您安装库,就像在模型上测试 nebullvm 一样,这需要几分钟。安装后,nebullvm 将在短时间内优化您的模型。

基准

我们还在领先供应商的流行 AI 模型和硬件上测试了 nebullvm。

  • 硬件:M1 Pro、NVIDIA T4、英特尔至强、AMD EPYC
  • 人工智能模型:EfficientNet、Resnet、SqueezeNet、Bert、GPT2

乍一看,我们可以观察到加速在硬件模型耦合之间变化很大。总体而言,该库提供了很好的积极成果,大多数加速了 2 到 30 倍。

总而言之,结果是:

Nebullvm 为未优化的 AI 模型提供正向加速

  • 早期结果显示 Hugging Face 模型的性能较差(但积极)。对 Hugging Face 的支持刚刚发布,将在未来版本中实施改进
  • Nebullvm 在英特尔硬件上提供了约 2-3 倍的提升。这些结果很可能与针对英特尔设备的 PyTorch 已经高度优化的实施有关
  • 在 NVIDIA 机器上表现出色
  • 该库在 Apple M1 芯片上也提供了出色的性能
  • 并且在所有场景中,nebullvm 的易用性都非常有用,让您可以利用深度学习编译器,而无需花费数小时研究、测试和调试这项技术

下表显示了未优化模型和优化模型的响应时间(以毫秒 (ms) 为单位),以 100 次实验的平均值作为各种模型-硬件耦合的平均值。它还显示了nebullvm提供的加速比,其中加速比定义为优化模型的响应时间相对于非优化模型的响应时间。

用于实验的硬件如下:

  • M1 Pro → Apple M1 Pro 16GB RAM
  • 英特尔至强 → AWS 上的 EC2 实例 - t2.large
  • AMD EPYC(霄龙)→ AWS 上的 EC2 实例 - t4a.large
  • Nvidia T4 → AWS 上的 EC2 实例 - g4dn.xlarge

技术

Nebullvm 利用最好的深度学习编译器来加速 AI 模型的推理。

那么深度学习编译器到底是什么?

深度学习编译器将您的模型作为输入并生成它的高效版本,该版本可以在特定硬件上更快地运行模型计算图。

如何?

原则上,有几种方法都试图重新安排神经网络的计算,以更好地利用硬件内存布局并优化硬件利用率。

用非常简单的术语来说,深度学习优化可以通过优化整个端到端计算图以及在图 [ 1、2 ]重构运算符(主要用于与矩阵乘法相关的循环)来实现。以下是一些优化技术的示例:

  • 算子融合。它指的是首先识别出符合融合条件的一系列算子,然后用相应的手写实现替换的过程。融合运算符允许更好地共享计算、删除中间分配,并通过组合循环嵌套促进进一步优化。 [ 3 ]
  • 量化。它指的是用于以低于浮点精度的位宽执行计算和存储张量的技术。量化模型使用整数而不是浮点值对张量执行部分或全部操作。 [ 4, 5 ]
  • 图修剪。剪枝是指去除神经网络中的某些参数,因为它们是冗余的并且对输出没有显着贡献,从而产生更小、更快的网络。 [ 6 ]

深度学习优化很大程度上取决于具体的软硬件耦合,具体的编译器在具体的耦合上效果最好。因此,很难先验地了解市场上许多深度学习编译器针对每个特定用例的性能,因此需要进行测试。这正是nebullvm所做的,为程序员节省了无数时间。

致谢

nebullvm 背后的团队是一群前 MIT、ETH 和 EPFL 的人,他们联合起来推出了Nebuly 。他们开发了这个开源库以及许多其他伟大的技术,以提高人工智能的效率。您可以在其网站LinkedInTwitterInstagram上找到更多关于 Nebuly 的信息。

许多荣誉归功于图书馆的主要贡献者Diego Fiori 。迭戈是一个好奇的人,总是渴望知识,他喜欢消费和美酒佳肴一样多的知识。他是一个多才多艺的程序员,非常嫉妒他的代码,从不让他的代码看起来不够华丽。简而言之,Diego 是Nebuly的 CTO。

还要非常感谢开源社区,他们开发了许多可以加速 AI 模型的 DL 编译器。

最后,非常感谢所有支持nebullvm 开源社区,发现错误并修复它们,并支持创建最先进的超强大 AI 加速器的人。

参考

有关深度学习编译器的论文和文章。

nebullvm 使用的深度学习编译器的文档。