自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

終于有人把分布式機(jī)器學(xué)習(xí)講明白了

人工智能 機(jī)器學(xué)習(xí)
近年來,新技術(shù)的快速發(fā)展導(dǎo)致數(shù)據(jù)量空前增長。機(jī)器學(xué)習(xí)算法正越來越多地用于分析數(shù)據(jù)集和建立決策系統(tǒng)。

?分布式機(jī)器學(xué)習(xí)也稱分布式學(xué)習(xí),是指利用多個計算節(jié)點(也稱工作節(jié)點,Worker)進(jìn)行機(jī)器學(xué)習(xí)或者深度學(xué)習(xí)的算法和系統(tǒng),旨在提高性能、保護(hù)隱私,并可擴(kuò)展至更大規(guī)模的訓(xùn)練數(shù)據(jù)和更大的模型。

聯(lián)邦學(xué)習(xí)可以看作分布式學(xué)習(xí)的一種特殊類型,它可以進(jìn)一步解決分布式機(jī)器學(xué)習(xí)遇到的一些困難,從而構(gòu)建面向隱私保護(hù)的人工智能應(yīng)用和產(chǎn)品。

1.分布式機(jī)器學(xué)習(xí)的發(fā)展歷史

近年來,新技術(shù)的快速發(fā)展導(dǎo)致數(shù)據(jù)量空前增長。機(jī)器學(xué)習(xí)算法正越來越多地用于分析數(shù)據(jù)集和建立決策系統(tǒng)。而由于問題的復(fù)雜性,例如控制自動駕駛汽車、識別語音或預(yù)測消費者行為(參考Khandani等人2010年發(fā)表的文章),算法解決方案并不可行。

在某些情況下,單個機(jī)器上模型訓(xùn)練的較長運(yùn)行時間促使解決方案設(shè)計者使用分布式系統(tǒng),以增加并行度和I/O帶寬總量,因為復(fù)雜應(yīng)用程序所需的訓(xùn)練數(shù)據(jù)可以很容易就達(dá)到TB級。

在其他情況下,當(dāng)數(shù)據(jù)本身是分布式的或量太大而不能存儲在單個機(jī)器上時,集中式解決方案甚至不可取。例如,大型企業(yè)對存儲在不同位置的數(shù)據(jù)進(jìn)行事務(wù)處理,或者由于數(shù)據(jù)量太大而無法移動和集中。

為了使這些類型的數(shù)據(jù)集可以作為機(jī)器學(xué)習(xí)問題的訓(xùn)練數(shù)據(jù)被訪問,必須選擇并實現(xiàn)能夠并行計算、適應(yīng)多種數(shù)據(jù)分布和擁有故障恢復(fù)能力的算法。

近年來,機(jī)器學(xué)習(xí)技術(shù)得到了廣泛應(yīng)用。雖然出現(xiàn)了各種相互競爭的方法和算法,但使用的數(shù)據(jù)表示在結(jié)構(gòu)上非常相似。機(jī)器學(xué)習(xí)工作中的大部分計算都是關(guān)于向量、矩陣或張量的基本轉(zhuǎn)換,這些都是線性代數(shù)中常見的問題。

幾十年來,對這種操作進(jìn)行優(yōu)化的需求一直是高性能計算(High Performance Computing,HPC)領(lǐng)域高度活躍的研究方向。因此,一些來自HPC社區(qū)的技術(shù)和庫(例如,BLAS或MPI)已經(jīng)被機(jī)器學(xué)習(xí)社區(qū)成功地采用并集成到系統(tǒng)中。

與此同時,HPC社區(qū)已經(jīng)確定機(jī)器學(xué)習(xí)是一種新興的高價值工作負(fù)載,并開始將HPC方法應(yīng)用于機(jī)器學(xué)習(xí)。

Coates等人在他們的商用高性能計算(COTSHPC)系統(tǒng)上用短短三天訓(xùn)練了一個含有10億個參數(shù)的網(wǎng)絡(luò)。

You等人于2017年提出在Intel的Knights Landing上優(yōu)化神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,Knights Landing是一種為高性能計算應(yīng)用設(shè)計的芯片。

Kurth等人于2017年演示了深度學(xué)習(xí)問題(如提取天氣模式)是如何在大型并行HPC系統(tǒng)上進(jìn)行優(yōu)化和擴(kuò)展的。

Yan等人于2016年提出通過借用HPC的輕量級分析等技術(shù)建模工作負(fù)載需求,可解決在云計算基礎(chǔ)設(shè)施上調(diào)度深度神經(jīng)網(wǎng)絡(luò)應(yīng)用的挑戰(zhàn)。

Li等人于2017年研究了深度神經(jīng)網(wǎng)絡(luò)在加速器上運(yùn)行時針對硬件錯誤的恢復(fù)特性(加速器經(jīng)常部署在主要的高性能計算系統(tǒng)中)。

同其他大規(guī)模計算挑戰(zhàn)一樣,我們有兩種基本不同且互補(bǔ)的方式來加速工作負(fù)載:向一臺機(jī)器添加更多資源(垂直擴(kuò)展,比如GPU/TPU計算核心的不斷提升),向系統(tǒng)添加更多節(jié)點(水平擴(kuò)展,成本低)。

傳統(tǒng)的超級計算機(jī)、網(wǎng)格和云之間的界限越來越模糊,尤其在涉及機(jī)器學(xué)習(xí)等高要求的工作負(fù)載的最佳執(zhí)行環(huán)境時。例如,GPU和加速器在主要的云數(shù)據(jù)中心中更加常見。因此,機(jī)器學(xué)習(xí)工作負(fù)載的并行化對大規(guī)模實現(xiàn)可接受的性能至關(guān)重要。然而,當(dāng)從集中式解決方案過渡到分布式系統(tǒng)時,分布式計算在性能、可伸縮性、故障彈性或安全性方面面臨嚴(yán)峻挑戰(zhàn)。

2.分布式機(jī)器學(xué)習(xí)概述

由于每種算法都有獨特的通信模式,因此設(shè)計一個能夠有效分布常規(guī)機(jī)器學(xué)習(xí)的通用系統(tǒng)是一項挑戰(zhàn)。盡管目前分布式機(jī)器學(xué)習(xí)有各種不同的概念和實現(xiàn),但我們將介紹一個覆蓋整個設(shè)計空間的公共架構(gòu)。一般來說,機(jī)器學(xué)習(xí)問題可以分為訓(xùn)練階段和預(yù)測階段(見圖1-5)。

圖片

▲圖1-5 機(jī)器學(xué)習(xí)結(jié)構(gòu)。在訓(xùn)練階段,使用訓(xùn)練數(shù)據(jù)和調(diào)整超參數(shù)對ML模型進(jìn)行優(yōu)化。然后,將訓(xùn)練好的模型部署到系統(tǒng)中,為輸入的新數(shù)據(jù)提供預(yù)測

訓(xùn)練階段包括訓(xùn)練一個機(jī)器學(xué)習(xí)模型,通過輸入大量的訓(xùn)練數(shù)據(jù),并使用常用的ML算法,如進(jìn)化算法(Evolutionary Algorithm,EA)、基于規(guī)則的機(jī)器學(xué)習(xí)算法(Rule-based Machine Learning algorithm,比如決策樹和關(guān)聯(lián)規(guī)則)、主題模型(Topic Model,TM)、矩陣分解(Matrix Factorization)和基于隨機(jī)梯度下降(Stochastic Gradient Descent,SGD)的算法等,進(jìn)行模型更新。

除了為給定的問題選擇一個合適的算法之外,我們還需要為所選擇的算法進(jìn)行超參數(shù)調(diào)優(yōu)。訓(xùn)練階段的最終結(jié)果是獲得一個訓(xùn)練模型。預(yù)測階段是在實踐中部署經(jīng)過訓(xùn)練的模型。經(jīng)過訓(xùn)練的模型接收新數(shù)據(jù)(作為輸入),并生成預(yù)測(作為輸出)。

雖然模型的訓(xùn)練階段通常需要大量的計算,并且需要大量的數(shù)據(jù)集,但是可以用較少的計算能力來執(zhí)行推理。訓(xùn)練階段和預(yù)測階段不是相互排斥的。增量學(xué)習(xí)(Incremental learning)將訓(xùn)練階段和預(yù)測階段相結(jié)合,利用預(yù)測階段的新數(shù)據(jù)對模型進(jìn)行連續(xù)訓(xùn)練。

當(dāng)涉及分布式時,我們可以用兩種不同的方法將問題劃分到所有機(jī)器上,即數(shù)據(jù)或模型并行(見圖1-6)。這兩種方法也可以同時應(yīng)用。

圖片

▲圖1-6 分布式機(jī)器學(xué)習(xí)中的并行性。數(shù)據(jù)并行性是在訓(xùn)練數(shù)據(jù)集的不同子集上訓(xùn)練同一模型的多個實例,而模型并行性是將單個模型的并行路徑分布到多個節(jié)點上

在數(shù)據(jù)并行(Data Parallel)方法中,系統(tǒng)中有多少工作節(jié)點,數(shù)據(jù)就被分區(qū)多少次,然后所有工作節(jié)點都會對不同的數(shù)據(jù)集應(yīng)用相同的算法。相同的模型可用于所有工作節(jié)點(通過集中化或復(fù)制),因此可以自然地產(chǎn)生單個一致的輸出。該方法可用于在數(shù)據(jù)樣本上滿足獨立同分布假設(shè)的每個ML算法(即大多數(shù)ML算法)。

在模型并行(Model Parallel)方法中,整個數(shù)據(jù)集的精確副本由工作節(jié)點處理,工作節(jié)點操作模型的不同部分。因此,模型是所有模型部件的聚合。模型并行方法不能自動應(yīng)用于每一種機(jī)器學(xué)習(xí)算法,因為模型參數(shù)通常不能被分割。

一種選擇是訓(xùn)練相同或相似模型的不同實例,并使用集成之類的方法(如Bagging、Boosting等)聚合所有訓(xùn)練過的模型的輸出。最終的架構(gòu)決策是分布式機(jī)器學(xué)習(xí)系統(tǒng)的拓?fù)浣Y(jié)構(gòu)。組成分布式系統(tǒng)的不同節(jié)點需要通過特定的體系結(jié)構(gòu)模式進(jìn)行連接,以實現(xiàn)豐富的功能。這是一個常見的任務(wù)。然而,模式的選擇對節(jié)點可以扮演的角色、節(jié)點之間的通信程度以及整個部署的故障恢復(fù)能力都有影響。

圖1-7顯示了4種可能的拓?fù)?,符合Baran對分布式通信網(wǎng)絡(luò)的一般分類。集中式結(jié)構(gòu)(圖1-7a)采用一種嚴(yán)格的分層方法進(jìn)行聚合,它發(fā)生在單個中心位置。去中心化的結(jié)構(gòu)允許中間聚合,當(dāng)聚合被廣播到所有節(jié)點時(如樹拓?fù)洌瑥?fù)制模型會不斷更新(圖1-7b),或者使用在多個參數(shù)服務(wù)器上分片的分區(qū)模型(圖1-7c)。完全分布式結(jié)構(gòu)(圖1-7d)由獨立的節(jié)點網(wǎng)絡(luò)組成,這些節(jié)點將解決方案集成在一起,并且每個節(jié)點沒有被分配特定的角色。

圖片

▲圖1-7 分布式機(jī)器學(xué)習(xí)拓?fù)浣Y(jié)構(gòu)

3.分布式機(jī)器學(xué)習(xí)與聯(lián)邦學(xué)習(xí)的共同發(fā)展

分布式機(jī)器學(xué)習(xí)發(fā)展到現(xiàn)在,也產(chǎn)生了隱私保護(hù)的一些需求,從而與聯(lián)邦學(xué)習(xí)產(chǎn)生了一些內(nèi)容上的交叉。常見的加密方法,如安全多方計算、同態(tài)計算、差分隱私等也逐漸應(yīng)用在分布式機(jī)器學(xué)習(xí)中??偟膩碚f,聯(lián)邦學(xué)習(xí)是利用分布式資源協(xié)同訓(xùn)練機(jī)器學(xué)習(xí)模型的一種有效方法。

聯(lián)邦學(xué)習(xí)是一種分布式機(jī)器學(xué)習(xí)方法,其中多個用戶協(xié)同訓(xùn)練一個模型,同時保持原始數(shù)據(jù)分散,而不移動到單個服務(wù)器或數(shù)據(jù)中心。在聯(lián)邦學(xué)習(xí)中,原始數(shù)據(jù)或基于原始數(shù)據(jù)進(jìn)行安全處理生成的數(shù)據(jù)被用作訓(xùn)練數(shù)據(jù)。聯(lián)邦學(xué)習(xí)只允許在分布式計算資源之間傳輸中間數(shù)據(jù),同時避免傳輸訓(xùn)練數(shù)據(jù)。分布式計算資源是指終端用戶的移動設(shè)備或多個組織的服務(wù)器。

聯(lián)邦學(xué)習(xí)將代碼引入數(shù)據(jù),而不是將數(shù)據(jù)引入代碼,從技術(shù)上解決了隱私、所有權(quán)和數(shù)據(jù)位置的基本問題。這樣,聯(lián)邦學(xué)習(xí)可以使多個用戶在滿足合法數(shù)據(jù)限制的同時協(xié)同訓(xùn)練一個模型。

本文摘編自《聯(lián)邦學(xué)習(xí):算法詳解與系統(tǒng)實現(xiàn)》(ISBN:978-7-111-70349-5),經(jīng)出版方授權(quán)發(fā)布。?

責(zé)任編輯:武曉燕 來源: 大數(shù)據(jù)DT
相關(guān)推薦

2021-10-20 18:49:29

架構(gòu)分布式系統(tǒng)

2018-11-23 09:25:00

TCC分布式事務(wù)

2021-12-30 20:20:46

機(jī)器學(xué)習(xí)銷售語言

2021-10-09 00:02:04

DevOps敏捷開發(fā)

2021-06-13 12:03:46

SaaS軟件即服務(wù)

2022-03-27 20:32:28

Knative容器事件模型

2022-02-15 09:04:44

機(jī)器學(xué)習(xí)人工智能監(jiān)督學(xué)習(xí)

2022-03-15 17:12:03

大數(shù)據(jù)機(jī)器學(xué)習(xí)人工智能

2021-03-25 11:24:25

爬蟲技術(shù)開發(fā)

2022-04-27 18:25:02

數(shù)據(jù)采集維度

2021-10-17 20:38:30

微服務(wù)內(nèi)存組件

2020-11-03 07:04:39

云計算公有云私有云

2021-10-12 18:31:40

流量運(yùn)營前端

2021-12-03 18:25:56

數(shù)據(jù)指標(biāo)本質(zhì)

2020-11-30 08:34:44

大數(shù)據(jù)數(shù)據(jù)分析技術(shù)

2021-02-14 00:21:37

區(qū)塊鏈數(shù)字貨幣金融

2021-06-29 11:21:41

數(shù)據(jù)安全網(wǎng)絡(luò)安全黑客

2022-01-05 18:27:44

數(shù)據(jù)挖掘工具

2022-04-22 11:26:55

數(shù)據(jù)管理架構(gòu)

2022-07-31 20:29:28

日志系統(tǒng)
點贊
收藏

51CTO技術(shù)棧公眾號