首页 存档 技术 查看内容

数学烂也要学AI | 带你造一个经济试用版AI终极必杀器

2018-3-30 13:00 |来自: 互联网 399 0

摘要: 大数据文摘作品,转载要求见文末 原作者 |Daniel Jeffries 编译 |刘云南,一针,Saint,Yawei Xia 今天我们将建立我们自己的深度学习终极大杀器。 我们会搜集最好的精华,并且把他们组合成数字终结者。 我们也会讨 ...


大数据文摘作品,转载要求见文末

原作者 |Daniel Jeffries

编译 |刘云南,一针,Saint,Yawei Xia


今天我们将建立我们自己的深度学习终极大杀器。

  • 我们会搜集最好的精华,并且把他们组合成数字终结者。

  • 我们也会讨论如何把最新的深度学习软件架构一步步安装到Ubuntu Linux 16.04中。

在这台机器上运行神经网络就像热激光束穿过黄油一样快捷流畅。你不用花超过129,000美元来购买Nvidia’s DGX-1,这个AI超级计算机可以放在一个盒子里。我马上要给你展示它的性能,你绝对不可能找到比它表现更好的了。

最后,如果你的预算比较紧张,也别绝望,我会给出其他省钱的选择。


首先一个超便宜的升级选项

注:太长可以不看

在我们深入构建一个深度学习怪兽之前,我想给你一条最容易的路升级。

如果你不想攒一个全新的机器,你还有一个超棒的选择。


简单地升级你的GPU(采用Titan X或GTX 1080),装一个VMware Workstation或者使用另一种支持GPU加速的虚拟化软件!你还可以仅安装Ubuntu裸机,如果你需要一个Windows系统的计算机,在虚拟机中运行它就行了,这样你的机器就火力全开,可以开始深度学习了。

安装Ubuntu和深度学习架构需要使用的指南在本文的最后。!然后你只需要买一些便宜的配件,就能搞定深度学习超级之星了。

好了,让我们开始吧。

我会把大杀器和省钱优选这两种类型的元件用不同的简称来标识一下:

MINO(不差钱儿)=终极大杀器

ADAD(兜里只剩一块钱,胸中还有一个梦)=经济试用版


终极大杀器元件大聚会

GPU们先来

CPU不再是宇宙中心。人工智能的应用反转了剧本。如果你曾经攒过普通的游戏装备,可能试过把史上最差的英特尔芯片拔出来。

但是时代变了,英伟达成了新的“英特尔”。

深度学习世界中最重要的元件是GPU(们)。

虽然AMD在过去几年的虚拟货币挖掘中遥遥领先,但在人工智能领域仍无建树。这种状况很快会改变,因为他们正在快马加鞭在这个快速扩张的新兴领域攻城掠池,然而现在英伟达仍是王者。当然他们也不会顶着“新英特尔”这个光环停滞不前。他们收购了Nervana系统,并且计划在2017年推出他们自己的深度学习专门集成芯片。

深度学习的GPU首选

让我们从MINO开始介绍。终极GPU是Titan X,它无可匹敌。

它采用3584个 CUDA核心,1531MHZ,还拥有12GB容量的G5X,据说存储速度可达10Gbps。

在深度学习中,核心数量很重要,那些核心附近的存储量也同样。

深度学习其实也没什么,就是一堆线性代数。想象着它是一个超级无敌大的EXCEL表格。处理所有这些数字会把一个标准的4或8核心英特尔CPU累瘫。

把数据移进和移出存储器是一个很大的瓶颈,所以在芯片上布置更多的存储器可以解决这个问题,这就是为什么Titan X是这个世界的王者。

你能以建议零售价1200美元的价格从英伟达买到Titan X。不幸的是,你只能买两个。但这可是终极大杀器啊,我们要买四个!那才是真正的四卡合一!

为了实现这个目标,你要花一点高价从第三方零售商那里购买。我觉得从英伟达买两个再从亚马逊买两个很容易实现。这样花费就到了5300美元,这也是到目前为止这个工作站的最大开支。

如果你打算运行Minecraft游戏,它可能还是看起来满屏像素,但如果你想训练一个模型来战胜癌症,这正是你要的显卡。:)

游戏硬件参考网站会告诉你,任何超过两张图形处理卡显卡的计算机都是远远超过处理性能需求的,但这只是游戏! 对于人工智能来说,你只会想把显卡装得越多越好。当然,人工智能也有效益平衡点,但是数量接近于几十个或者几百个(取决于算法),不是四个。所以继续加吧,我的朋友。

请注意,你绝对不需要SLI桥,除非你还打算用这台机器玩游戏。这玩意仅仅适用于图形渲染,而我们现在的图形处理很少,这和在matplotlib绘制的大量图表不一样。


省钱版GPU

你的ADAD显卡是GeForce GTX 1080基本版。1080包括2560个CUDA核心,比Titan X少了许多,但是只需花费一半的价钱,建议零售价是699美元。

它的RAM也更少,只有8GB而不是12GB。

我已经在使用EVGA了,表现很好,所以在你的机器上加装四个这家伙吧。2797与5300美元相比较,节省了许多经费,性能表现却几乎相同。

ADAD的第二优选是GeForce GTX 1070。它装备了1920个CUDA核心,所以也是一个很好的选择。它的建议零售价是499美元,但是超频版的EVGA 1070s只需花389美元,所以价格是更实惠的1556美元。非常可行。

当然,如果你没有这么多钱,可以买两或三张卡。甚至只有一个也能让你朝正确的方向前进。

让我们算个数,用两三张显卡达到最佳目的。

3 个Titan X = 10,752 CUDA 核心, 36GB 的 GPU RAM = $三八00

  • 2 个 Titan X = 7,167 CUDA 核心, 24 GB 的GPU RAM = $2400

  • 3 个 GTX 1080 = 7,680 CUDA 核心, 24GB的GPU RAM = $2097

  • 2 个 GTX 1080 = 5,120 CUDA 核心, 16GB 的 GPU RAM = $1398

  • 3 个 GTX 1070 = 5,760 CUDA 核心, 24GB 的 GPU RAM = $1167

  • 2个GTX 1070 = 3,840 CUDA 核心, 16GB 的GPU RAM = $778


最佳选择是3 GTX的1080s。使用一半的价格只减了3072个核心。独家揭秘:我就是这样建立我的工作站的。


固态硬盘和连续运转驱动

你需要一个固态硬盘,特别是当你构建卷积神经网络并处理大量图像数据时。三星的850 EVO型的1 TB固态硬盘是当前的至尊极品。更妙的是,固态硬盘的价格最近几年出现了暴跌,所以不会破费太多。1 TB 的850型现在只要大约319美元。

ADAD版本的850是250GB的版本,你花98美元就可以轻易地买到它。

您还需要一个连续运转驱动器来存储下载的数据。 深度学习中的数据集可能很大。一台4 TB的希捷Barracuda就能搞定。


主板



因为我们想把四个显卡集成到你的机箱中,你可选择的主板就很少了。为了满足在四个显卡的情形下主板能支持最高的总线速度,我们需要微星的超级游戏 X99A SLI Plus。

你也可以选择华硕X99 Deluxe II。

如果你的显卡少于4个,你就有了更多的选项。对于主板来说,我觉得稳定性最重要。这是血的教训,在攒虚拟货币挖掘装备时我就吃了大亏。 如果你经常运行你的GPU,不稳定的主板会把你的机器很快烧毁。技嘉公司制作出非常耐用的主板产品系列。X99 Ultra Gaming产品绝对稳如磐石,价格237美元。


机箱


Cooler Master Cosmos II是终极完美的全塔式机箱。它采用铝和钢制成,设计成和赛车类似的流线型风格,是台美丽的机器。

如果你想要一个中塔式机箱,用Cooler Master Maker 5T绝对错不了。

我怎么也不会赞同买一台便宜机箱。如果这样,一旦打开机箱检修故障,你就会发觉当初真是脑子进了水。无需修理的机箱才是好机箱。有许多高性价比的机箱,所以提前做好功课吧。

CPU(中央处理器)

你的深度学习机器不需要太高的CPU性能。大多数应用程序是单线程的,而从应用中加载数据的GPU才是需要多核心工作的地方。所以别把钱花在这儿。

也就是说,你也可以使处理器达到最快的处理速度,对于i7-6700K来说就是4GHz。你可以用风扇让它一直维持这个速度。但坦率说,这是可笑的过分要求,但是价格已经降了很多,而我只需要单线程性能。这就是你要的CPU了。

如果你想安静一点,可以选择液体散热的CPU,但是你一般也不会把CPU用那么厉害。大多数的风扇噪音都是从GPU那里来的。

这里没有ADAD的替代品了。3.5GHz频率的i5处理器带液体制冷,它的价位和4GHz的i7相同,所以何必麻烦呢?


电源

要配置一套支持双卡四芯的**设备,EVGA的Supernova G2 1600W电源将会是最好的投资,而它大概会花上你305美元。

Titan X高达250W的热设计功率可轻松占去1000W,那么

留给CPU、内存和系统的功率就不太多了,所以最好配备承受范围内功率最大的电源,这样能留出来的部分就更多一些。

如果你的预算有些紧张,那就选择性价比更高的1300W电源吧,只需184美金就能到手。


软件配置

目前硬件的部分就完成了,我们来看看软件部分吧。

你有三个选择

  • 利用Docker容器(注:一个开源的应用容器引擎)

  • 使用虚拟机

  • 安装裸机


若是选择使用Docker,那么建议从Nvidia-Docker项目入手(the official Nvidia-Docker)。不过,要想真正把框架库文件和编程语言都搞定的话,你还得在此镜像基础上安装很多东西。

你可以选择一款集成式的深度学习容器,比如Github上的Docker。

本来我还挺喜欢这个集成Docker镜像,不过它有些小毛病,想想安装设置的过程那么复杂,倒也没什么奇怪的了。

我找到了其中一个问题(libopenjpeg2 现在在Ubuntu 16.04 LTS中是 libopenjpeg5)的解决办法,但是不高兴再想怎么解决其他的了,所以目前为止我还在等官方来搞定。如果你是那种热衷解决Dockerfiles漏洞并反馈给Github的人,我真心鼓励你去给这个集成项目帮帮忙。

另一个比较大的问题就是这个Docked 镜像文件实在是太大了,大到因为下载超时没办法直接从 Dockerhub上找资源。这就意味着你必须自己动手构建一个,然而这么做要花上好几个小时去编译、搭新层、调试,这么多的时间都差不多足够倒腾裸机了。

最后还要说一点,有些我想用的东西Docker也不提供,比如Anaconda Python。

所以最终我还是决定参考教程the all-in-one bare metal tutorial(集成裸机指南),并且在它的基础上升级一下,再加入一些个性化配置。

虚拟机

和我之前在太长可以不看那个部分里的说的一样,你是绝对可以通过安装支持虚拟GPU的专业VMware 工作站(注:一款虚拟机软件)来提升手头上的游戏电脑性能的,而且这么做还不用花多少钱,太适合预算有限的人了。除此之外,VMware 工作站还有许多优点,比如它支持在一台主机上同时运行、切换多个虚拟机,你甚至可以用快照来记录当前的配置环境,在后续的操作过程中若是出现错误,就能够通过它来还原到出错误之前的状态。虽说用VMware虚拟机没有Docker上手快,不过目前VM技术已经非常成熟了,熟悉之后你就会发现有很多工具可用,使用体验绝对一流。

裸机

最后我还是选择了裸机。这个方法有点土了,不过作为资深系统管理员,我觉得还是它最靠谱,毕竟一切都在掌控之中。

开始之前,我先说几个关于深度学习软件的重点。

其实绝大部分的AI研究都是用Python写的,因为它简单易学好操作。我不敢保证在AI正式进入人们的生产生活之后Python会成为最主要的语言,但就目前来说Python是很有必要掌握的。有不少重要框架在它的基础上运行,而且Python有着非常强大而丰富的库,这是其他语言不能比的。

此外,R语言和Scala也很受欢迎,对它们也要多多重视。

下面这个清单列出了设置裸机时我们主要需要的东西。

语言

  • Anaconda(对应Python 3.6扩展版)-Anaconda是一个性能非常强大的Python发行版本,包含了100多个数据科学适用的Python,R语言和Scala的热门安装包。

  • R-用于统计计算和统计绘图的语言和操作环境

  • Scala-Scala全称为Scalable Language,是一门类似于JAVA而且性能极佳的的模块化语言。


驱动和应用程序编程接口

  • Nvidia驱动程序

  • CUDA-一种由Nvidia推出的通用并行计算架构和应用程序编程接口模型。

  • cuDNN-一套Nvidia专门为深度神经网络设计的GPU计算加速库。

辅助应用程序

  • Jupyter-一个超级赞的web应用程序,便于用户共享文档并且支持实时代码。

框架/库

  • TensorFlow-谷歌的开源DL框架,可以说支撑起了部分产品,比如谷歌翻译。

  • Theano-一个靠谱而且受欢迎的机器学习框架。

  • Caffe-来自伯克利的深度学习框架。

  • Torch-一个GPU优先的科学计算框架,广泛支持机器学习算法。

  • MXNET-可扩展性极强的DL系统,得到了亚马逊和一些大学的支持。

优秀的抽象库

  • Keras-一个很棒的用Python语言编写的神经网络库,基于TensorFlow或Theano开发

  • Lasagne-用于构造和训练神经网络的轻量库。

Python库

基本上任何科学的计算系统都需要大量的库来保证运行效率,所以我们马上来装上一些最常用的库吧。

  • Pip=Python安装包管理工具

  • Pandas=高性能数据分析库

  • Scikit-learn=强大机器学习库

  • Numpy=Python的一种开源的数字扩展

  • Matplotlib=可视化库(注:Python的2D绘图库)

  • Scipy=数值计算库

  • IPython=交互式Python

  • Scrappy=网络数据爬取框架

  • NLTK=自然语言工具箱

  • Pattern=网络挖掘库

  • Seaborn=统计数据可视化

  • OpenCV=计算机视觉库

  • Rpy2=R语言接口

  • Py-graphviz=统计数据绘图

  • OpenBLAS=线性代数库


设置Linux工作站

要解决科技前沿问题,最新版本的Ubuntu LTS是必要的选择。(在我写下这篇文章时的版本是16.04)我很期待在将来能够看到更多教程详细介绍Red Hat Enterprise Linux和它的重新编译产品,像是CentOS和Scientific Linux,不过就现在来说,我们还是用Ubuntu来研究深度学习吧。当然了,之后我可能会继续讨论以Red Hat Enterprise Linux为中心的构造。

用Rufus把Ubuntu装进U盘里。

在统一的可扩展固件接口(UEFI)模式下安装好Ubuntu。


第一次boot

第一次boot之后会黑屏,这是因为开源驱动跟不上最新、最好的芯片。按照以下步骤解决:

电脑在boot的时候,打开TTY设备:

Ctrl Alt F1

打开最新的Nvidia驱动,然后reboot:

  • 登陆TTY中的root账号

  • 运行 sudo apt-get purge nvidia-*

  • 运行sudo add-apt-repository ppa:graphics-drivers/ppa 之后是 sudo apt-get update

  • 运行sudo apt-get install nvidia-375

  • Reboot,这时图像的问题应该就解决了。


升级电脑

打开计算机终端,输入下面的代码:

sudo apt-get update -y

sudo apt-get upgrade -y

sudo apt-get install -y build-essential cmake g gfortran git pkg-config python-dev software-properties-common wget

sudo apt-get autoremove

sudo rm -rf /var/lib/apt/lists/*


CUDA

从英伟达官网上下载CUDA 8安装包,打开下载目录然后安装好CUDA。

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local.deb

sudo apt-get update -y

sudo apt-get install -y cuda

加载CUDA为环境变量

echo ‘export PATH=/usr/local/cuda/bin:$PATH’

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部