绑定TensorFlow,开放TPU,谷歌云想用AI优势换道超车AWS?

1,997 阅读21分钟
本文由 「AI前线」原创,原文链接:绑定TensorFlow,开放TPU,谷歌云想用AI优势换道超车AWS?
编译 | Debra
作者 | AI 前线编辑部

AI 前线导读:”北京时间 2 月 13 日凌晨,谷歌云平台博客发布了一篇文章:即日起,测试版云端 TPU(Cloud TPU)现已开放上市测试版。Jeff Dean 更是连更推特十条进行介绍。根据官方消息:Cloud TPU 不仅拥有更快的模型训练速度,而费用仅为 6.5 美元 / 小时。”


谷歌新杀器:Cloud TPU

根据官方博客介绍,Cloud TPU 是 Google 设计的一系列硬件加速器,经过优化,可加速和扩展使用 TensorFlow 编程的特定 ML 工作负载。每个云端 TPU 由四个定制 ASIC(硬件编程芯片)构成,可将高达 180 teraflops 的浮点性能和 64 GB 高带宽内存打包到单个板上。

这些主板可以单独使用,也可以通过超快专用网络连接在一起,形成被称之为“TPU pod”的多 petaflop ML 超级计算机。今年晚些时候,Google 将在 GCP 上提供这些大型超级计算机。

Cloud TPU 具有的优势如下:

  • 可以通过控制并可自定义的 Google Compute Engine 虚拟机,以互动方式独占访问连接网络的 Cloud TPU,而无需等待作业在共享计算群集上进行安排。
  • 与其等上几天或几周来培训关键业务型 ML 模型,用户可以在一系列云端 TPU 上过夜培训同一型号的多个变体,并在第二天在生产中部署最精确的培训模型。
  • 用户可以在不到一天的时间内训练 ResNet-50 以达到 ImageNet 基准测试挑战的预期精度,且价格不超过 200 美元。

2017 年 5 月 18 日,Google I/O 大会上,我们第一次见到了传说中的 TPU 2.0,结构中包括了四个芯片,每秒可处理 180 万亿次浮点运算。Google 还找到一种方法,使用新的计算机网络将 64 个 TPU 组合到一起,升级为所谓的 TPU Pods,可提供大约 11500 万亿次浮点运算能力。


轻松搞定 ML 模型训练

传统上,为定制 ASIC 和超级计算机编写程序需要深入的专业知识。相比之下,您可以使用高级 TensorFlow API 编程 Cloud TPU,并使用 Google 开源的一套高性能 Cloud TPU 模型部署的参考项目,可以快速上手:

github.com/tensorflow/…

为了节省使用者的时间和精力,Google 不断测试这些模型实现的性能和收敛性,以达到标准数据集上的预期精度。

将来还将开放其他模型部署的方法。Adventurous ML 专家可以使用 Google 提供的文档和工具,自行优化其他 TensorFlow 云端 TPU 模型。

Google 在 NIPS 2017 上曾经宣布,使用完整的 TPU Pod,ResNet-50 和 Transformer 的训练时间将从一整天的时间缩短到不到 30 分钟,且无需更改代码。

博客中还提到了一家正在使用 Cloud TPU 的企业,投资管理公司 Two Sigma:

“我们决定将我们的深度学习研究集中在云上的原因有很多,但主要是为了获得最新的机器学习基础设施。将 TensorFlow 的工作负荷移至 TPU 可大大降低编程新模型的复杂性以及训练时间,从而提高了我们的生产力。使用 Cloud TPU 代替其他加速器集群,使我们能够专注于构建模型,而不必分散精力注意集群通信模型的复杂性。“ ——Two Sigma 首席技术官 Alfred Spector

Cloud TPU 还简化了对 ML 计算资源的计算和管理:

  • Cloud TPU 可使得 ML 模型加速最优化,并根据需求动态调整容量。
  • Cloud TPU 的大规模、高集群的 ML 模型已经过多年优化,您无需投入专门的能源、冷却、网络和存储设备等方面的精力、时间和专业知识来进行设计、安装和维护。
  • 无需费力保持大量工作站和服务器保持最新的状态,因为 Cloud TPU 已进行了预先配置,而无需安装驱动程序!
  • 享有和所有 Google Cloud 服务相同的复杂的安全保护机制。


绑定自家 TensorFlow,脚踩他家 GPU

谷歌的垄断地位越来越牢固了。

2016 年 5 月,谷歌发布了机器学习专属芯片:TPU,去年又推出了第二代产品 Cloud TPU。第一代产品仅能够处理推理任务,第二代 TPU 增加了可用于机器学习模型训练的功能。谷歌搜索、街景、谷歌照片和谷歌翻译等 Google 服务现在都有一个共同点:他们都使用了张量处理单元(TPU)来加速他们在幕后的神经网络计算。

在软件方面,Google 在机器学习方面的声誉必将给 Cloud TPU 服务带来更多新用户。并且已经使用 Google 的深度学习框架 TensorFlow 的开发人员,无需对其代码进行更改即可使用此服务。TPU 也为 TensorFlow 特地优化过,也就是说 TensorFlow 在 TPU 上会有更好的运行效果。换言之,想要用 TPU 的人可能就不会选择其他的深度学习框架。从长远来看,这给了 Google Cloud 一种与 AWS 和 Azure 不同的脱颖而出的方式。毕竟,现在大多数厂家都提供相同的基础云计算服务,而容器的出现使得将工作负载从一个平台转移到另一个平台变得更加容易。通过 TensorFlow 和 TPU 的结合,Google 在短期内具有独特的优势。

在硬件方面,将 TPU 与英特尔和英伟达的芯片相比的话,Google 曾经宣称“我们发现 TPU 的性能比现在的 CPU 和 GPU 高出 15-30 倍,每瓦特性能高出 30-80 倍。这些优势帮助 Google 的许多服务以规模和成本实现了最先进的神经网络”。谷歌在其 I/O 大会上举了个例子,来表明这款芯片有多么强大:大规模翻译模型可能需要 32 个 GPU 一整天的时间来训练;但只需要一个下午,用八分之一个 TPU,就能把这件事情做好了。

英伟达于去年 12 月公布了首款基于 Volta 架构的 Titan V,官方宣称是目前“全球最强的 GPU”,主要针对的就是 AI 或深度学习等相关领域的科研人士,深度学习计算能力达到 110 teraflops,售价却高达 2999 美元。而 TPU,谷歌并没有直接售卖芯片,而是通过云服务的方式提供服务,让人人都用得起,并且还能提供技术支持,让用户没有后顾之忧。

在云计算的市场上,已经形成以亚马逊、微软、谷歌、阿里为第一梯队的全球格局。亚马逊最早推出云计算,抢占了先机,并具有全方位的服务;微软在安全方面有独特优势;阿里作为国内云计算服务的领头羊,已经连续多年保持高幅度增长;谷歌的核心是搜索业务,其营收主要来自于广告,但云计算服务越来越受到重视。Cloud TPU 可通过谷歌云服务进行选择使用,通过 Google Cloud,任何人都可以租用 Cloud TPUs,并且价格和 GPU 差不多。无疑也增加了谷歌云服务的特殊优势。


云服务巨头厂商哪家强?

云计算的热潮已经席卷全球,这并不奇怪。 对于大多数企业来说,在公司内部复杂的服务器机房和网络中痛苦挣扎的日子已经过去了。 在过去的十年中,云计算已变得更具成本效益、安全性和可靠性。云计算行业的主要供应商现在正大力投资于硬件、软件和全球网络基础设施,以期获得更多的市场份额,因此也催生了更好的计算性能。 良好的竞争对于消费者和供应商合作伙伴来说是件好事,因为这能使他们降低成本,并且供应商们也会不断创新以保持领先。

通常来说,当我们谈到云计算供应商,大部分是时候指的是业界三巨头:微软 Azure、谷歌 Cloud 和亚马逊 AWS。在这篇文章中,我们将对其中的两家:Google Cloud 和 AWS 进行对比,我们将力求使这篇文章不偏不倚,并以通俗的语言解释所有内容。 这两个提供商都会有各自的优点和缺点,因此无论你最后选择哪个供应商,在使用过程中都可能会遇到一些问题。


云计算趋势

在我们深入比较 Google Cloud 和 AWS 之前,让我们先看看最新的云计算趋势。2017 年 1 月,RightScale 进行了第六次年度云计算现状调查,他们采访了 1000 多名 IT 专业人员,分析当前的云计算趋势,其中有不少有趣的发现。

  • 2016 年,32% 的受访者认为云计算最大的挑战是缺少资源或者专业知识,而 2017 年这个数字下降到了 25%。
  • 2016 年,29% 的受访者表示对云计算相关的安全问题感到担忧,而 2017 年这个数字下降到了 25%。
  • 2016 年,15% 的受访者认为性能是云计算的一项重要挑战,而到 2017 年只有 11% 的受访者这么认为。

云计算面对的挑战(源自:RightScale)

从上述与专业知识相关的数据变化中,我们可以看到进入云计算行业的门槛正在迅速降低。你不再需要先成为专家才能使用 Google Cloud 或 AWS 托管你的网站。现在许多云计算托管服务提供商可以让你直接使用云服务,而无需担心专业技术知识。大型企业现在甚至会投资于自己的员工和工程师去考取 Google Cloud、AWS 和 Azure 的认证资格:

  • Google Cloud 认证:云端架构师、数据工程师、G Suite 管理员
  • AWS 认证:解决方案架构师、DevOps 工程师、开发人员、SysOps 管理员
  • Azure 认证:MCSA:云平台、MTA:IT 基础架构、MCSA:Linux on Azure、MCSE:云平台和基础架构等

过去几年中,性能和安全性也取得了突飞猛进的发展,因为云计算提供商不得不发明新的方式来更安全地托管数据,同时提供更快的计算速度。大多数提供商现在默认对数据中心之间的流量进行加密。

这项调查中还有一个有趣的发现,就是 2017 年与 2016 年公共云采用情况的统计数据。AWS 的公有云采用数据保持不变,而 Azure 和 Google Cloud 都有相当大的增长。AWS 仍然是毫无疑问的领头羊,但这主要是因为他们进入云计算行业最早。Google Cloud 和 Azure 后续肯定还会不断追赶。

公有云采用情况(源自:RightScale)

以下是有关云计算行业的其他统计数据和预测:

德勤技术

www2.deloitte.com/content/dam…

根据德勤技术预测,到 2018 年底,在数据中心、软件和服务的 IT 即服务支出将达到 5470 亿美元。

德豪技术展望调查

www.bdo.com/getattachme…

德豪技术展望调查发现,74%的技术首席财务官(CFO)表示,云计算在 2018 年将对其业务产生相当大的影响。

IDC FutureScape

cofinaeventos.pt/portugaldig…

IDC FutureScape 预测,到 2018 年,至少一半的 IT 支出将基于云计算,到 2020 年这项支出将达到所有 IT 基础设施支出的 60%,以及所有软件、服务和技术支出的 60-70%。

维基百科

siliconangle.com/blog/2017/0…

维基百科预测,企业云计算支出在 2016 年至 2026 年间会以 16%的复合年增长率(CAGR)增长。

看看谷歌趋势这段时间的兴趣指数也很有趣,在过去五年云计算一直在稳定增长。

云计算提供商的谷歌趋势

Stack Overflow 作为开发者最大的在线社区之一,也有一个非常漂亮的趋势工具,在这个工具中,他们根据每个月提问的问题百分比来分析模式。开发人员是行业的重要组成部分。虽然首席技术官可能拥有最终决定权,但实际上真正去实施云计算解决方案的是开发人员、工程师和系统管理员。

Overflow 上的云计算趋势

2017 年 12 月 20 日,Jefferies 的分析师 John DiFucci 推出了公有云服务的季度快照。尽管亚马逊在公有云上仍是霸主,但 2017 年谷歌云平台年同比增长 125%,实在令人难以置信!阿里巴巴和微软 Azure 也在飞速增长。

Google Cloud vs AWS(IaaS/Paas 市场)(源自:MarketWatch)


Google 云平台(Google Cloud Platform)

Google 云平台由许多不同的服务和解决方案组成,这些服务和解决方案让用户可以利用 Google 用在自己产品(例如 YouTube 和 Gmail)上相同的软件和硬件基础架构。他们于 2008 年推出了第一款服务 Google App Engine,并推出公众预览版本。

Google 云平台拥有 50 余项产品,其中包括:Google 计算引擎(Compute Engine)、Google 应用程序引擎(App Engine)、Google 容器引擎、Google Cloud Bigtable、Google BigQuery、Google 云端功能、Google 云数据存储、Google 存储、Google 云端 CDN、Google 云端 DNS 等。

在本文中,我们将主要关注 Google 计算引擎及与之相关联的服务,它允许用户按需启动虚拟机。

Google 计算引擎于 2012 年 6 月发布公众预览版,并于 2013 年 12 月发布正式版本。目前,使用 Google 计算引擎的知名公司包括 HTC、百思买、育碧(Ubisoft)、飞利浦、多米诺比萨、Leadpages、希思罗、PayPal、可口可乐、Evernote、索尼音乐等等。谷歌首席执行官 Sundar Pichai 表示,Google 云平台是公司的前三大优先业务。研究公司 Canalys 预估,Google 云平台业务在第三季度将带来 8.7 亿美元的收入,同比增长 76%。

使用 Google 云计算引擎的公司

想了解更多信息,可以查看由 Reto Meier 进行深度注解的 Google Cloud Platformput 历史记录:

medium.com/@retomeier/…


亚马逊网络服务(AWS)

亚马逊网络服务(AWS)是亚马逊网站的子公司,于 2006 年开始为企业和个人提供云计算服务。就像谷歌云平台一样,AWS 也拥有众多不同的服务和解决方案。毋庸置疑,亚马逊绝对可以说是为云计算铺平了道路!我们推荐你看看 TechCrunch 上关于 AWS 是如何诞生的文章:

techcrunch.com/2016/07/02/…

AWS 拥有 200 余项产品,包括:亚马逊弹性计算云(Amazon EC2)、AWS Elastic Beanstalk、亚马逊 EC2 容器服务、亚马逊 DynamoDB、亚马逊 Redshift、亚马逊 S3 等。

本文将主要关注亚马逊弹性计算云(Amazon EC2)及与之相关联的服务,EC2 提供和 Google 计算引擎同样的服务。Amazon EC2 于 2006 年 8 月对公众推出 beta 版本,比谷歌计算引擎早了 6 年。目前使用 Amazon EC2 的知名公司包括 Netflix、Time、NASA、Expedia、Airbnb 和兰博基尼等。

使用 Amazon EC2 的公司


Google Cloud vs AWS

因为谷歌云和 AWS 非常相似,我们可以从几个不同的维度对他们进行对比。由于篇幅有限,我们不可能在这篇文章中对这两家公司的所有细节都完整覆盖,毕竟他们都拥有超过 50 项服务!本文将主要针对以下几项进行对比:计算实例、存储与磁盘、计费与定价

计算实例

第一个要对比的是 Google 计算引擎和 AWS EC2 如何处理其虚拟机(实例)。Google Cloud 虚拟机背后的技术是 KVM,而 AWS EC2 虚拟机背后的技术是 Xen。两者都提供丰富多样的预定义实例配置,包含特定数量的虚拟 CPU、RAM 和网络。但是它们有不同的命名约定,可能很容易引起混淆。Google 计算引擎将它们称为机器类型(machine types),而 Amazon EC2 将它们称为实例类型(instance types)。

  • 你可以为 Google 计算引擎实例配备多达 96 个虚拟 CPU 和 624GB 的 RAM(2017 年 10 月 5 日发布了新的机器类型)。
  • 你可以为 AWS EC2 实例配置多达 128 个虚拟 CPU 和 3,904GB 的 RAM。

以下是两家云计算厂商的类似虚拟机的比较,如高内存、高 CPU、SSD 存储等。

需要注意的是,Google Cloud 允许用户脱离上述预定义的配置,并根据自己的工作负载对实例的 CPU 和 RAM 资源进行自定义,这被称为定制化机器类型。其他类型还包括 Google Cloud Preemptible VM 和 AWS EC2 Spot Instances。

存储与磁盘

云提供商使用的存储和磁盘类型扮演着非常重要的角色,因为他们对性能有直接影响,例如预期的吞吐量(IO),每卷 / 实例的最大 IOP 数以及短时间爆发容量的能力。 当您比较 Google 与 AWS:块存储和对象存储时,有两种主要类型的存储选项。

块存储

块存储本质上是与基于云的虚拟机一起使用的虚拟磁盘卷。Google Compute Engine 提供持久性磁盘,而 AWS EC2 则通过 Elastic Block Store(EBS)提供。

对象存储

对象存储(有时也称为分布式对象存储)实质上是用于存储和访问大量二进制对象或 blob 的托管服务。Google Compute Engine 通过他们的 Google Cloud Storage 服务提供此服务,而 AWS 则通过其 Amazon S3 服务提供此服务。


除了标准的网络块和对象存储之外,计算引擎和 Amazon EC2 都允许用户使用本地连接到运行实例的物理机的磁盘。与永久磁盘相比,本地存储提供了出色的性能,极高的每秒输入 / 输出操作(IOPS)和非常低的延迟。这种类型的存储甚至可以达到几 GB 的读 / 写速度。

Google Cloud 调用这些本地 SSD,而 AWS EC2 将它们称为实例存储卷。Google 允许您将本地固态硬盘连接到任何实例类型,而 AWS 仅支持以下实例类型:C3,F1,G2,HI1,I2,I3,M3,R3 和 X1。2017 年 8 月,Google Cloud 还宣布针对按需和可抢占实例在本地固态硬盘上进行降价。


计费与定价

比较 Google Cloud 和 AWS 时,计费处理方式会有很大不同。说实话,除非用户对这些平台非常熟悉,否则可能会被复杂的计费方式弄得晕头转向。如果你是刚刚开始使用这二者的用户,这两个平台的月度计价器你应该会用得上:

cloud.google.com/products/ca…

估算每月在这两家云服务商身上的费用是一个挑战。甚至还有如 reOptimize 或 Cloudability 这样的专业工具来帮助帮助用户更好地分析自己的账单。AWS 提供一个专门的仪表板方便用户查看账单。Google 云端平台通过其 BigQuery 工具让用户估算开销。两家供应商都在想尽办法降低成本,简化计费。

每秒计费

AWS 在 2017 年 9 月宣布了按每秒钟计费 (在 EC2 实例上至少是 1 分钟)。这为那些需要在短时间内创建新实例并做大量工作的客户提供了更大的灵活性。毫不意外,谷歌云平台也发布了他们的每秒钟计费规则 (谷歌计算引擎实例的最小值)。AWS 和 GCP 几乎同时推出新功能,更是说明了云平台市场的竞争力。

谷歌在他们公布的帖子中举了一个很好的例子:

如果您的虚拟机使用寿命平均每分钟收费时间增加 30 秒,那么您每天运行 2600 个 vCPU 所节省的费用就足以支付您的早晨咖啡(99 美分,假设您可以以某种方式找到 99 美分的咖啡)。相比之下,每小时计费产生的浪费足以每天早上购买一台咖啡机(在这个例子中超过 100 美元)。


承诺的使用折扣与预留实例

Google 云和 AWS 都为那些专注投资于他们平台的用户提供了不同的优惠。

AWS EC2 提供了他们所称的预留实例,与按需定价相比,AWS 提供了显着的折扣(高达 75%),并在特定的可用区域中使用时提供容量预留。他们有不同类型的保留实例:

  • 标准预留实例
  • 可转换预留实例
  • 计划预留实例

Google Cloud 则提出了“ 承诺使用折扣”,截至 2017 年 9 月,所有计算引擎客户都可以使用折扣。这基本上是购买承诺使用合同以获得虚拟机使用的非常优惠价格的能力。

Right Scale 对 Google Cloud 承诺使用折扣与 AWS 预留实例进行了比较,得出了以下结论:

  • 当比较谷歌对 AWS 1 年标准 RI 的 1 年使用折扣时,谷歌的总成本比 AWS 少 28%。
  • 当比较 Google 的 3 年期承诺使用折扣和 AWS 3 年可转换折扣时,Google 环境的总成本比 AWS 低 35%。

Google Cloud 承诺使用折扣与 AWS 预留实例

持续折扣

Google Cloud 提供的另一个非常节省成本的折是官方称之为持续使用折扣的优惠。这些是 Google 云端平台提供的自动折扣,与需要长时间预留实例的 AWS 不同,Google 提供的使用时间更长。免费试用或许有些用户是第一次使用云平台,还不知道该选择哪个,不用担心,因为这两家平台都为用户提供免费试用。

Google Cloud 提供持续 12 个月的价值 300 美元的试用。截至 2017 年 3 月,他们还有免费的等级,没有时间限制。以下是用户可以使用 GCP 免费运行的实例示例:0.2 个虚拟 CPU,0.60 GB 内存的 f1-micro 实例,由共享物理内核支持。(仅限美国地区)5 GB 云存储 +30 GB 磁盘AWS 也提供为期 12 个月的免费试用。以下是您可以运行的实例的示例:t2.micro 实例,750 小时 / 月30GB 磁盘(包括 750 小时 / 月的托管 MySQL 数据库)和 5GB 云存储请务必查看每个提供商的网站以了解更多详细信息,因为它们都提供了许多产品的免费试用版,而不仅仅是它们的计算实例。结论比较了这么多,Google Cloud 和 AWS 谁是赢家?其实这两个提供商都有其优点和缺点。但是,根据测评,谈到定价和速度,Google Cloud Platform 绝对是您想要的一款!

AWS 在过去十年当中,也为全球多家企业提供云计算服务。他们确实是推动云计算行业向前发展的先驱,并且仍然是 Google 和 Azure 等云服务商想要努力复制和超越的。他们的支持性,冗余度和每个地区的可用性都非常出色。

Google Cloud 和 AWS 提供了许多其他产品和服务,我们无法在这篇文章中介绍。但请放心,云计算提供商为获得更多市场份额而不断开展的战斗只会让消费者和合作伙伴受益。这意味着他们会带来更低的价格,更多的产品和服务以及更高的性能。

参考资料

Google Cloud vs AWS in 2018 (Comparing the Giants)

更多干货内容,可关注AI前线,ID:ai-front,后台回复「AI」、「TF」、「大数据」可获得《AI前线》系列PDF迷你书和技能图谱。