0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度揭示 Facebook 内部支持机器学习的硬件和软件基础架构

DPVg_AI_era 2017-12-31 00:38 次阅读

近日 Facebook 研究团队公开一篇 HPCA 2018 论文,作者包括 Caffe 作者贾扬清等人,深度揭示了Facebook 内部支持机器学习硬件和软件基础架构。Facebook 的几乎所有的服务都广泛应用机器学习,其中计算机视觉只占资源需求的一小部分。此外,Facebook依赖多种机器学习方法,包括但不限于神经网络。硬件方面,用CPU 做推理,CPU 和 GPU都用于训练,并且进行大规模分布式训练。

机器学习是 Facebook 的许多重要产品和服务的核心。这篇文章描述了 Facebook 在全球范围里支持机器学习的硬件和软件基础架构。Facebook 的机器学习工作负载非常多样化:在实践中,不同的服务需要多种不同类型的模型。这种多样性对系统堆栈里的所有层都有影响。此外,在 Facebook 上存储的大部分数据都是通过机器学习流程传输的,这在向高性能分布式训练流交付数据方面提出了严峻的挑战。计算需求也很大,需要利用GPU和CPU平台进行训练,并将大量CPU容量用于实时推理。解决这些问题以及其他层出不穷的新挑战需要各方面的努力,包括机器学习算法、软件和硬件设计。

为20亿用户提供机器学习服务,Facebook如何处理计算和数据

截至2017年12月,Facebook 的用户已经超过20亿人。过去几年中,机器学习被应用于这个大规模的实际问题,形成了机器学习算法创新的良性循环,为模型提供了大量训练数据,并在高性能计算机体系结构的助力下取得进步。在 Facebook 上,机器学习提供了几乎所有用户体验方面的关键能力,包括News Feed,语音和文本翻译,照片和实时视频分类等。

Facebook 在这些服务中利用了各种各样的机器学习算法,包括支持向量机,梯度提升决策树和许多类型的神经网络。本文将描述在 Facebook 上支持机器学习的数据中心基础架构的几个重要方面。基础架构包括内部的“ML-as-a-Service”流,开源机器学习框架和分布式训练算法。从硬件角度来看,Facebook 利用大量的 CPU 和 GPU 平台来训练模型,以便在所需服务延迟时间内支持必要的训练频率。对于机器学习推理,Facebook 主要依靠 CPU 来处理所有神经网络排名服务的主要功能,例如 News Feed,这些服务占据了所有计算负载的大部分。

Facebook 通过机器学习流程将所有存储数据的很大一部分汇集起来,而且这个比例随着时间的推移不断增加,从而提高模型质量。机器学习服务所需的大量数据对 Facebook 数据中心的全球规模提出了挑战。有几种技术被用来高效地向模型提供数据,包括数据馈送和训练的解耦,数据/计算协同定位和网络优化。与此同时,Facebook 的规模也提供了独特的机会。在非高峰期间,日负载周期为分布式训练算法提供了大量可用的CPU。Facebook 的计算fleet遍布10个数据中心,规模也提供了灾难恢复能力。灾难恢复规划是很重要的,因为及时交付新的机器学习模型对于 Facebook 的运营非常重要。

展望未来,Facebook 预计在现有的功能以及新的服务上,机器学习都将快速增长。对于部署这些服务的基础架构的团队来说,这种增长意味着更多挑战。尽管在现有平台上优化基础架构有好处,但我们仍然在积极评估和创建新的硬件解决方案,同时保持算法创新。

关于 Facebook 的机器学习的主要见解:

机器学习在 Facebook 的几乎所有的服务中都有广泛应用,计算机视觉只占资源需求的一小部分。

Facebook依赖多种机器学习方法,包括但不限于神经网络。

大量数据都是通过机器学习流程传送,而这会在计算节点之外造成工程和效率方面的损失。

Facebook 目前在很大程度上依赖 CPU 做推理,CPU 和 GPU 都用于训练,但从性能功耗比的角度看,它不断对新的硬件解决方案进行原型设计和评估。

Facebook 的全球用户规模以及相应的日活动模式导致大量的机器可以用于机器学习任务,例如大规模分布式训练。

Facebook 上的机器学习

机器学习(ML)是指产品利用一系列输入来构建一个调优模型的实例,并利用该模型创建表示、预测或其他形式的有用信号

深度揭示 Facebook 内部支持机器学习的硬件和软件基础架构

图1表示了这个过程,由以下步骤组成,依次执行:

1)建立模型的训练阶段。这个阶段通常是离线执行的。

2)在生产中运行训练模型的推理阶段,并进行一个(一组)实时预测。这一阶段是在线执行的。

Facebook 上机器学习的一个显着特点是受到可能用于训练模型的海量数据的影响。这个数据的规模会产生很多英雄,涉及整个基础架构。

利用机器学习的主要服务:

Facebook 的大部分产品和服务都利用机器学习,包括:

News Feed:排名算法让用户每次访问 Facebook 时首先看到与他们最为相关的故事。

广告(Ads):利用ML来向用户定向显示广告。

搜索:在各种垂直领域提供专门的子搜索,例如视频、照片、人物、事件等等。

Sigma:一个通用的分类和异常检测框架,用于各种内部应用,包括站点完整性,垃圾邮件检测,支付,注册,未经授权的员工访问以及事件推荐

Lumos:从图像及其内容中提取高级属性和嵌入,使算法能够自动理解图像。

Facer:是 Facebook 的面部检测和识别框架。

语言翻译:用于 Facebook 的内容国际化服务。

语音识别:是将音频流转换成文本的服务。

除了上面提到的主要产品之外,还有更多的长尾服务利用各种形式的机器学习。产品和服务的长尾数量达数百个。

机器学习模型

所有基于机器学习的服务都使用“特征”(或输入)来产生量化输出。在 Facebook 上使用的机器学习算法包括 Logistic回归(LR),支持向量机(SVM),梯度提升决策树(GBDT)和深度神经网络(DNN)。LR和SVM是用于训练和使用预测的有效方法。GBDT可以通过额外的计算资源来提高准确性。DNN是最具表现力的,可能提供最高的准确性,但是利用的资源也最多(至少比LR和SVM等线性模型需要的计算量多一个数量级)。这三种类型都对应具有越来越多的自由参数的模型,这些模型必须通过对有标签的输入样本预测精度进行优化来训练。

在深度神经网络中,有3个常用的类:多层感知器(MLP),卷积神经网络(CNN)和递归神经网络(RNN / LSTM)。MLP网络通常用于结构化输入特征(通常是排名),CNN作为空间处理器使用(通常用于图像处理),而RNN / LSTM网络是序列处理器(通常用于语言处理)。表1说明了这些ML模型类型和对应的产品/服务。

深度揭示 Facebook 内部支持机器学习的硬件和软件基础架构

表1:利用机器学习算法的产品/服务

Facebook 里的 ML-as-a-Service

Facebook 有一些内部的平台和工具包,旨在简化产品中利用机器学习的任务。主要包括FBLearner,Caffe2 和 PyTorch。FBLearner 是三个工具的suit,每个工具都专注于机器学习流程的不同部分。FB Learner 利用内部作业调度程序在共享的 GPU 和 CPU 池上分配资源和调度作业,如图1所示。Facebook上的大多数ML训练都是通过FBLearner平台运行的。这些工具和平台一起工作,旨在提高ML工程师的效率,帮助他们专注于算法创新。

FBLearner Feature Store:Feature Store 本质上是一个可用于训练和实时预测的几个特征生成器的目录(catalog),它可以作为一个marketplace,多个团队可以使用它来共享和发现特征。

FBLearner Flow:是 Facebook 的机器学习平台,用于模型训练。

FBLearner Predictor:是 Facebook 的内部推理引擎,它使用在 Flow 中训练的模型来实时提供预测。

深度学习框架

对于深度学习,Facebook 使用两个截然不同但协同作用的框架:针对研究优化的 PyTorch,以及针对生产优化的 Caffe2。

Caffe2:是 Facebook 的内部生产框架,用于训练和部署大规模机器学习模型。Caffe2 专注于产品所需的几个关键特性:性能,跨平台支持,以及基本机器学习算法的覆盖范围,例如卷积神经网络(CNN),递归神经网络(RNN)和多层感知器(MLP)等,这些算法具有稀疏或密集的连接,高达数百亿的参数。Caffe2 的设计涉及模块化方法,在所有后端实现(CPU,GPU和加速器)之间共享统一的图形表示。独立的执行引擎为不同的图形执行需求提供服务,Caffe2 在不同的平台上引入第三方库(例如,cuDNN,MKL 和 Metal),以在不同平台上实现最佳运行时间。

PyTorch:是 Facebook 在AI研究领域的首选框架。它有一个前端,侧重于灵活性,debug和动态神经网络,以进行快速实验。

ONNX:全称Open Neural Network Exchange(开放神经网络交换格式),是一种以标准方式表示深度学习模型的格式,以实现跨不同框架的互操作性。

Facebook 上机器学习的硬件资源

(详细解析见论文原文)

图2:基于CPU的计算服务器

图3:Big Basin GPU服务器设计,包括一个3U机箱的8个GPU。

深度揭示 Facebook 内部支持机器学习的硬件和软件基础架构

表2:用于各种工作负载的脱机训练使用的频率、持续时间和资源。

深度揭示 Facebook 内部支持机器学习的硬件和软件基础架构

表3:在线推理工作负载的资源需求。

图4:2017年9月19日的24小时里,Facebook的所有fleet的日负荷。

结论

基于机器学习的工作负载越来越重要,其影响涵盖了系统堆栈的所有部分。对此,计算机体系结构界对如何最好地应对已经出现的挑战表现出越来越大的关注。虽然以前的工作围绕有效地处理ML训练和推理的必要计算而展开,但是考虑到在解决方案被大规模应用时出现的额外挑战,情况会改变。

在 Facebook,我们发现了几个关键因素,这些因素在我们的数据中心基础架构的设计过程中起决定性作用:数据与计算机协同定位的重要性,处理各种ML工作负载的重要性,不仅仅是计算机视觉, 以及由于日计算周期的闲置容量而产生的机会。我们在设计开源硬件的端到端解决方案时,考虑了上述每个因素,以及平衡性能和可用性的开源软件生态系统。这些解决方案为今天服务超过21亿人的大规模机器学习工作负载提供了强大的动力,同时也反映了机器学习算法和系统设计方面专家的跨学科努力。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Facebook
    +关注

    关注

    3

    文章

    1429

    浏览量

    54720
  • 机器学习
    +关注

    关注

    66

    文章

    8406

    浏览量

    132563
  • 深度学习
    +关注

    关注

    73

    文章

    5500

    浏览量

    121111

原文标题:深入Facebook机器学习部门:服务、模型、框架和硬件(贾扬清等HPCA论文)

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    深度学习硬件架构解析

    深度学习在这十年,甚至是未来几十年内都有可能是最热门的话题。虽然深度学习已是广为人知了,但它并不仅仅包含数学、建模、学习和优化。算法必须在优
    发表于 11-18 16:00 5742次阅读

    FPGA在深度学习应用中或将取代GPU

    将 AI 框架模型映射到硬件架构。 Larzul 的公司 Mipsology 希望通过 Zebra 来弥合这一差距。Zebra 是一种软件平台,开发者可以轻松地将深度
    发表于 03-21 15:19

    基于深度学习技术的智能机器

    图像分析软件。其中硬件负责获取特定条件下的理想图像,软件负责获取图像中的有用信息。基于机器学习的模式识别系统三、
    发表于 05-31 09:36

    【详解】FPGA:深度学习的未来?

    ,FPGA架构是为应用程序专门定制的。在开发FPGA的深度学习技术时,较少强调使算法适应某固定计算结构,从而留出更多的自由去探索算法层面的优化。需要很多复杂的下层硬件控制操作的技术很难
    发表于 08-13 09:33

    功能安全---AUTOSAR架构深度解析 精选资料分享

    AUTOSAR架构深度解析本文转载于:AUTOSAR架构深度解析AUTOSAR的分层式设计,用于支持完整的
    发表于 07-23 08:34

    AUTOSAR架构深度解析 精选资料分享

    AUTOSAR架构深度解析本文转载于:AUTOSAR架构深度解析AUTOSAR的分层式设计,用于支持完整的
    发表于 07-28 07:02

    深度学习领域Facebook等巨头在2017都做了什么

    过去一年间,谷歌、Facebook、微软等巨头加持下,深度学习框架格局发生了极大改变,深度学习领域Fac
    发表于 01-02 10:19 2823次阅读

    介绍Facebook机器学习方面的软硬件基础架构,来满足其全球规模的运算需求

    机器学习Facebook的众多产品和服务中都有着举足轻重的地位。 本文将详细介绍Facebook机器
    的头像 发表于 01-24 11:23 4278次阅读
    介绍<b class='flag-5'>Facebook</b>在<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方面的软<b class='flag-5'>硬件</b>基础<b class='flag-5'>架构</b>,来满足其全球规模的运算需求

    深度学习机器学习深度的不同之处 浅谈深度学习的训练和调参

    近年来,深度学习作为机器学习中比较火的一种方法出现在我们面前,但是和非深度学习
    发表于 05-02 10:30 4329次阅读

    Facebook机器学习是什么?它能用来做什么?

    Facebook机器学习功能可以帮助你的广告系列取得最佳表现。Facebook平台可以通过实时确定表现最佳的版位、预算分配以及广告系列的竞价,帮助你以更低的成本获得尽可能多的转化机会
    的头像 发表于 04-02 15:49 2706次阅读
    <b class='flag-5'>Facebook</b><b class='flag-5'>机器</b><b class='flag-5'>学习</b>是什么?它能用来做什么?

    Facebook用AI技术优化机器人 推动其他形式机器学习的发展

    尽管Facebook不销售机器人,但该公司研究人员在大量使用机器人。机器人技术的进步可以推动其他形式机器
    发表于 05-21 16:31 693次阅读

    机器学习深度学习有什么区别?

    深度学习算法现在是图像处理软件库的组成部分。在他们的帮助下,可以学习和训练复杂的功能;但他们的应用也不是万能的。 “机器
    的头像 发表于 03-12 16:11 8192次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>有什么区别?

    Facebook开发出更加强大的机器学习模型

    近日,Facebook公司分享了两个内部人工智能项目的细节,分别是Learning from video和TimeSformer,这两个项目旨在促进更强大的机器学习模型的开发。
    的头像 发表于 03-18 09:18 1726次阅读

    机器学习深度学习的区别

    机器学习深度学习的区别 随着人工智能技术的不断发展,机器学习
    的头像 发表于 08-17 16:11 4225次阅读

    机器学习深度学习的区别

      机器学习深度学习是当今最流行的人工智能(AI)技术之一。这两种技术都有助于在不需要人类干预的情况下让计算机自主学习和改进预测模型。本文
    发表于 08-28 17:31 1504次阅读