为什么训练深度学习模型需要 GPU?

您所在的位置:网站首页 clm模型和wrf模型要用什么gpu 为什么训练深度学习模型需要 GPU?

为什么训练深度学习模型需要 GPU?

2024-07-07 20:22| 来源: 网络整理| 查看: 265

这是因为我提到的每一本书或我听到的每一次演讲,作者或演讲者总是说深度学习需要大量的计算能力来运行。但当我在我那台微薄的机器上构建出我的第一个深度学习模型时,我感到如释重负!我不必接管 Google 才能成为深度学习专家

😀

 

这是每个初学者在深入学习深度学习时都会面临的常见误解。尽管深度学习确实需要大量硬件才能有效运行,但您不需要无限的硬件来完成您的任务。您甚至可以在笔记本电脑上运行深度学习模型!

只是一个小小的免责声明;您的系统越小,获得性能足够好的经过训练的模型所需的时间就越多。你可能基本上是这样的:

 

 

让我们问自己一个简单的问题;为什么我们需要更多的硬件来进行深度学习?

答案很简单,深度学习是一种算法——一种软件构造。我们用我们最喜欢的编程语言定义一个人工神经网络,然后将其转换为一组在计算机上运行的命令。

如果您必须猜测您认为神经网络的哪些组件需要大量硬件资源,您的答案是什么?

我心目中的几个候选人是:

预处理输入数据训练深度学习模型存储训练好的深度学习模型模型的部署

其中,训练深度学习模型是最密集的任务。让我们详细看看为什么会这样。

 

训练深度学习模型

训练深度学习模型时,会执行两个主要操作:

前向传球向后传递

在前向传递中,输入通过神经网络传递,处理输入后生成输出。而在后向传递中,我们根据前向传递中得到的误差来更新神经网络的权重。

 

这两个运算本质上都是矩阵乘法。一个简单的矩阵乘法可以用下图表示

 

在这里,我们可以看到第一个数组的一行中的每个元素都与第二个数组的一列相乘。因此,在神经网络中,我们可以将第一个数组视为神经网络的输入,第二个数组可以视为网络的权重。

这似乎是一个简单的任务。现在让您了解一下深度学习的规模 - VGG16(深度学习应用中经常使用的 16 个隐藏层的卷积神经网络)拥有约 1.4 亿个参数;又名权重和偏差。现在想想您必须执行的所有矩阵乘法才能将一个输入传递到该网络!如果我们采用传统方法,则需要数年时间来训练此类系统。

 

如何更快地训练你的神经网络?

我们看到神经网络的计算密集部分是由多个矩阵乘法组成的。那么我们怎样才能让它更快呢?

我们可以通过同时执行所有操作而不是一个接一个地执行来简单地做到这一点。简而言之,这就是为什么我们使用 GPU(图形处理单元)而不是 CPU(中央处理单元)来训练神经网络。

为了让您有一些直观的了解,我们回顾一下历史,证明 GPU 比 CPU 更适合执行该任务。

在深度学习蓬勃发展之前,谷歌拥有一个极其强大的系统来进行处理,这是他们专门为训练巨大的网络而构建的。这个系统非常庞大,总成本高达 50 亿美元,拥有多个 CPU 集群。

现在,斯坦福大学的研究人员在计算方面构建了相同的系统,以使用 GPU 训练他们的深度网络。你猜怎么着; 他们将成本降低至仅 33,000 美元!该系统是使用 GPU 构建的,具有与谷歌系统相同的处理能力。相当令人印象深刻吧?

 

谷歌斯坦福大学核心数1K CPU = 16K 核心3GPU = 18K 核心成本$5B3.3 万美元训练时间星期星期

我们可以看到 GPU 占据统治地位。但是 CPU 和 GPU 到底有什么区别呢?

 

CPU和GPU的区别

为了理解其中的差异,我们采用一个经典的类比来直观地解释这种差异。

假设您必须将货物从一个地方转移到另一个地方。您可以选择法拉利和货运卡车。

法拉利的速度非常快,可以立即帮助您转移一批货物。但可以携带的货物量很少,而且燃料的使用量会很高。

货运卡车速度很慢,并且需要花费很多时间来转移货物。但与法拉利相比,它可以承载的货物量更大。此外,它的燃油效率更高,因此使用量更低。

那么你会选择哪一个来工作呢?

显然,你首先会看到任务是什么;如果你要紧急去接你的女朋友,你肯定会选择法拉利而不是货运卡车。但如果您要搬家,您将使用货运卡车来运输家具。

以下是从技术上区分两者的方法:

 

来源

注意:GPU 主要用于游戏和进行复杂的模拟。这些任务又主要是图形计算,所以GPU就是图形处理单元。如果 GPU 用于非图形处理,则称为 GPGPU——通用图形处理单元

 

GPU 简史——我们是如何走到这一步的

现在,您可能会问为什么 GPU 现在如此流行。让我们回顾一下GPU的发展简史

基本上,GPGPU 是一种涉及 GPU 和 CPU 的并行编程设置,可以以与图像或其他图形形式类似的方式处理和分析数据。GPGPU 是为了更好、更通用的图形处理而创建的,但后来发现它非常适合科学计算。这是因为大多数图形处理涉及对大型矩阵应用操作。

GPGPU 在科学计算中的使用早在 2001 年就开始使用矩阵乘法。第一个在 GPU 上以更快的方式实现的常见算法是 2005 年的 LU 分解。但是,此时研究人员必须在 GPU 上编写每个算法,并且必须了解低级图形处理。

2006年,Nvidia推出了高级语言CUDA,它可以帮助您用高级语言从图形处理器编写程序。这可能是研究人员与 GPU 交互方式最显着的变化之一

 

今天使用哪个 GPU?

在你继续购买 GPU 进行深度学习之前,我将在这里快速介绍一些技巧。

场景一:

您应该确定的第一件事是您的任务需要什么类型的资源。如果您的任务很小或者可以适应复杂的顺序处理,则不需要大型系统来工作。您甚至可以完全跳过 GPU 的使用。因此,如果您计划主要研究“其他”ML 领域/算法,则不一定需要 GPU。

 

场景2:

如果您的任务有点密集,并且有可处理的数据,那么合理的 GPU 将是您更好的选择。我通常使用我的笔记本电脑来解决玩具问题,它的 GPU 稍微过时了(2GB Nvidia GT 740M)。拥有一台带 GPU 的笔记本电脑可以帮助我无论走到哪里都能运行。有一些配备 Nvidia GTX 1080(8 GB VRAM)的高端(并且预计很重)笔记本电脑,您可以在极限情况下查看。

 

场景3:

如果您经常处理复杂的问题,或者是一家利用深度学习的公司,那么您最好构建一个深度学习系统或使用 AWS 或 FloydHub 等云服务。Analytics Vidhya 为自己构建了一个深度学习系统,并为此分享了我们的规范。这是文章。

 

场景四:

如果您是 Google,您可能需要另一个数据中心来维持!玩笑归玩笑,如果你的任务规模比平时更大,而且你有足够的零用钱来支付费用;您可以选择 GPU 集群并进行多 GPU 计算。还有一些选项可能在不久的将来可用,例如 TPU 和更快的 FPGA,这将使您的生活更轻松。

 

未来看起来令人兴奋

如上所述,为了寻找加速计算的方法,正在进行大量的研究和积极的工作。谷歌预计将在今年晚些时候推出 Tensorflow 处理单元 (TPU),其加速速度有望超过当前 GPU。

同样,英特尔正在致力于创建更快的 FPGA,这可能会在未来几天提供更高的灵活性。此外,云服务提供商(例如AWS)的产品也在增加。我们将在未来几个月看到它们中的每一个出现。

 


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3