【文献阅读】Applied Machine Learning at Facebook: A Datacenter Infrastructure Perspective

摘要

支持机器学习的软件和硬件结构。

挑战:传送数据给高性能分布式训练flow。大量计算

1.Introduction

本文介绍了支持机器学习Facebook的数据中心基础架构的几个重要方面。 基础设施包括内部的“ML-as a -Service” flow,开源机器学习框架和分布式训练算法。硬件采用CPU和GPU集群。

massive amount of data for ML. 给模型送数据的技术包括:decouple of data feed and training, data/compute co-location, networking optimizations。Diurnal load cycles 留下大量CPU 在off-peak时期给分布式训练算法。Disaster recovery planning

contirbution:

1.ML 应用于几乎所有services,CV代表资源需要的小部分

2.Facebook依赖于不止神经网络的大量ML方法

3.大量数据通过ML pipeline。创造超出计算节点的挑战

4.CPU推理,CPU/GPU训练

5.分布式学习

2.machine learning at facebook

在这里插入图片描述

training phase: offline

inference phase: online

A.major services leveraging ML

news feed ranking algorithms:实现当登录Facebook时首先看到对他们最重要的事情。

Ads:给用户定点投放广告

search:垂直搜索

sigma:内部程序的一般分类和异常检测框架

Lumos:从图片中提取高级属性和embedding

facer:人脸检测和识别框架

language translation:

speech recognition:语音转文字

B.ML MODELS

Logistic regression(LR), SVM, GBDT, DNN

LR和SVM高效训练和预测。

GBDT需要额外计算资源增加准确性。

DNN需要资源最多,最准确。

C.ML as a service inside facebook

FBLearner feature store:收集特征

FBLearner flow:模型训练平台

FBLearner predictor:实时推理

D.deep learning framework

caffe2

pytorch

ONNX:将pytorch转换到caffe2

3.resource implication of machine learning

A.总结Facebook硬件资源

Big basin gpu服务器用于训练网络

B.线下训练资源实现

compute type and locality

GPU训练:Lumos, speech recoginition, language translation

CPU训练:news feed, sigma

both训练:facer, search

GPU现在离线训练,大量训练数据使得gpu需要放在接近被访问数据的生产环境中,数据源的位置重要。

Memory, storage and network:

用户增多数据量增加,增加数据访问的网络带宽,需要local/nearby storage,避免远距离大批量数据传输,避免因为等待额外的数据训练停顿。

Scaling Considerations and Distributed Training

分布式训练增加训练的模型和数据的并行性,Ethernet-based networking提供近乎线性的拓展能力,拓展能力取决于带宽和模型大小。梯度更新在模型之间相互共享,实现tradeofff在synchronization(所有复制品模型状态相同), consistency(每个模型正确更新), performance(线性拓展)

大模型采用模型并行进行训练,模型各层分布,可能会造成模型端到端的延时,下降模型精度。

C.resource implications of online inference

线上模型推理,用Ads ranking model举例子,尽量从2CPU转移到1CPU上,有的甚至放在mobile device上,增加了latency,减少了communication cost。

不同产品对latency要求不同

4.machine learning at datacenter scale

考虑数据需要和容灾能力

A getting data to the models

问题:TB级别的数据,需要复杂的预处理保证数据干净和归一化,因此需要大量storage, network, CPU。

解决方案:

  1. data workload (reader)和training workload(trainer)需求不同,分开

  2. network usage. 优化compression, scheduling algorithms, data/compute palcement

B.levraging scale

Off-peak hours采用heterogeneous资源进行分布式训练机制

问题:1. scheduler平衡异构硬件负载,以便主机不需要等待同步

  1. 多台主机训练,scheduler必须考虑到网络topology和synchronization cost

  2. 算法需要提供check-pointing ,以便停止和重启训练。

C.disaster recovery

what happens :engineer efficiency降低,需要快速更新模型的产品受到影响

communitu integrity: offensive content detection

news feed: 现在CPU/GPU上offline train, then continuous online training on CPU

Ads:

Infrastructure Support for Disaster Recovery:

5.future directions

卷积和中等尺寸大小的矩阵乘法对于前向传播和后向传播十分重要,使用更大的batch size,参数权重能够更多重用。

实时推理、每个节点需要小的batch size,小batch size导致更低的计算密度,降低性能,整个模型不能放入on-die sram和last-level cache。通过模型压缩解决(pruning, quantization) 和high-bandwidth memory解决。

分布式训练需要network topology + sheduling,广泛使用的是data parallelism。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值