目錄
1.分散式機器學習的發展歷史
2.分散式機器學習概述
3.分散式機器學習與聯邦學習的共同發展
首頁 科技週邊 人工智慧 終於有人把分散式機器學習講明白了

終於有人把分散式機器學習講明白了

Apr 13, 2023 pm 10:52 PM
機器學習 演算法 分析數據

分散式機器學習也稱為分散式學習,是指利用多個運算節點(也稱為工作節點,Worker)進行機器學習或深度學習的演算法和系統,旨在提高效能、保護隱私,並可擴展至更大規模的訓練資料和更大的模型。

聯邦學習可以看作分散式學習的一種特殊類型,它可以進一步解決分散式機器學習遇到的一些困難,從而建立面向隱私保護的人工智慧應用和產品。

1.分散式機器學習的發展歷史

近年來,新技術的快速發展導致資料量空前成長。機器學習演算法正越來越多地用於分析資料集和建立決策系統。而由於問題的複雜性,例如控制自動駕駛汽車、辨識語音或預測消費者行為(參考Khandani等人2010年發表的文章),演算法解決方案並不可行。

在某些情況下,單一機器上模型訓練的較長運行時間促使解決方案設計者使用分散式系統,以增加並行度和I/O頻寬總量,因為複雜應用程式所需的訓練資料可以很容易就達到TB級。

在其他情況下,當資料本身是分散式的或量太大而無法儲存在單一機器上時,集中式解決方案甚至不可取。例如,大型企業會對儲存在不同位置的資料進行交易處理,或因資料量太大而無法移動和集中。

為了使這些類型的資料集可以作為機器學習問題的訓練資料被訪問,必須選擇並實現能夠並行計算、適應多種資料分佈和擁有故障復原能力的演算法。

近年來,機器學習技術已被廣泛應用了。雖然出現了各種相互競爭的方法和演算法,但使用的數據表示在結構上非常相似。機器學習工作中的大部分計算都是關於向量、矩陣或張量的基本轉換,這些都是線性代數中常見的問題。

幾十年來,對這種操作進行最佳化的需求一直是高效能運算(High Performance Computing,HPC)領域高度活躍的研究方向。因此,一些來自HPC社群的技術和函式庫(例如,BLAS或MPI)已經被機器學習社群成功地採用並整合到系統中。

同時,HPC社群已經確定機器學習是一種新興的高價值工作負載,並開始將HPC方法應用於機器學習。

Coates等人在他們的商用高效能運算(COTSHPC)系統上用短短三天訓練了一個含有10億個參數的網路。

You等人於2017年提出在Intel的Knights Landing上優化神經網路的訓練,Knights Landing是一種為高效能運算應用設計的晶片。

Kurth等人於2017年示範了深度學習問題(如提取天氣模式)是如何在大型並行HPC系統上進行最佳化和擴展的。

Yan等人於2016年提出透過借用HPC的輕量級分析等技術建模工作負載需求,可解決在雲端運算基礎架構上調度深度神經網路應用的挑戰。

Li等人於2017年研究了深度神經網路在加速器上運行時針對硬體錯誤的恢復特性(加速器經常部署在主要的高效能運算系統中)。

同其他大規模運算挑戰一樣,我們有兩種基本上不同且互補的方式來加速工作負載:為一台機器添加更多資源(垂直擴展,例如GPU/ TPU運算核心的不斷提升),為系統增加更多節點(水平擴展,成本低)。

傳統的超級電腦、網格和雲端之間的界限越來越模糊,尤其在涉及機器學習等高要求的工作負載的最佳執行環境時。例如,GPU和加速器在主要的雲端資料中心中更常見。因此,機器學習工作負載的並行化對大規模實現可接受的效能至關重要。然而,當從集中式解決方案過渡到分散式系統時,分散式運算在效能、可伸縮性、故障彈性或安全性方面面臨嚴峻挑戰。

2.分散式機器學習概述

由於每個演算法都有獨特的通訊模式,因此設計一個能夠有效分散常規機器學習的通用系統是一項挑戰。儘管目前分散式機器學習有各種不同的概念和實現,但我們將介紹一個涵蓋整個設計空間的公共架構。一般來說,機器學習問題可以分為訓練階段和預測階段(見圖1-5)。

終於有人把分散式機器學習講明白了

▲圖1-5 機器學習結構。在訓練階段,使用訓練資料和調整超參數對ML模型進行最佳化。然後,將訓練好的模型部署到系統中,為輸入的新資料提供預測

訓練階段包括訓練一個機器學習模型,透過輸入大量的訓練數據,並使用常用的ML演算法,如演化演算法(Evolutionary Algorithm,EA)、基於規則的機器學習演算法(Rule-based Machine Learning algorithm,例如決策樹和關聯規則)、主題模型(Topic Model,TM)、矩陣分解(Matrix Factorization)和基於隨機梯度下降(Stochastic Gradient Descent,SGD)的演算法等,進行模型更新。

除了為給定的問題選擇一個合適的演算法之外,我們還需要為所選的演算法進行超參數調優。訓練階段的最終結果是獲得一個訓練模型。預測階段是在實務中部署經過訓練的模型。經過訓練的模型接收新資料(作為輸入),並產生預測(作為輸出)。

雖然模型的訓練階段通常需要大量的計算,並且需要大量的資料集,但是可以用較少的計算能力來執行推理。訓練階段和預測階段並不是互相排斥的。增量學習(Incremental learning)將訓練階段和預測階段結合,利用預測階段的新資料對模型進行連續訓練。

當涉及分散式時,我們可以用兩種不同的方法將問題劃分到所有機器上,也就是資料或模型並行(見圖1-6)。這兩種方法也可以同時應用。

終於有人把分散式機器學習講明白了

▲圖1-6 分散式機器學習中的平行性。資料並行性是在訓練資料集的不同子集上訓練相同模型的多個實例,而模型並行性是將單一模型的平行路徑分佈到多個節點上

在資料並行(Data Parallel )方法中,系統中有多少工作節點,資料就被分區多少次,然後所有工作節點都會對不同的資料集應用相同的演算法。相同的模型可用於所有工作節點(透過集中化或複製),因此可以自然地產生單一一致的輸出。此方法可用於在資料樣本上滿足獨立同分佈假設的每個ML演算法(即大多數ML演算法)。

在模型並行(Model Parallel)方法中,整個資料集的精確副本由工作節點處理,工作節點操作模型的不同部分。因此,模型是所有模型部件的聚合。模型並行方法不能自動應用於每一種機器學習演算法,因為模型參數通常不能被分割。

一種選擇是訓練相同或相似模型的不同實例,並使用整合之類的方法(如Bagging、Boosting等)來聚合所有訓練過的模型的輸出。最終的架構決策是分散式機器學習系統的拓樸結構。組成分散式系統的不同節點需要透過特定的體系結構模式連接,以實現豐富的功能。這是一個常見的任務。然而,模式的選擇對節點可以扮演的角色、節點之間的通訊程度以及整個部署的故障復原能力都有影響。

圖1-7顯示了4種可能的拓撲,符合Baran對分散式通訊網路的一般分類。集中式結構(圖1-7a)採用嚴格的分層方法進行聚合,它發生在單一中心位置。去中心化的結構允許中間聚合,當聚合被廣播到所有節點時(如樹拓撲),複製模型會不斷更新(圖1-7b),或使用在多個參數伺服器上分片的分區模型(圖1-7c)。完全分散式結構(圖1-7d)由獨立的節點網路組成,這些節點將解決方案整合在一起,並且每個節點沒有被分配特定的角色。

終於有人把分散式機器學習講明白了

▲圖1-7 分散式機器學習拓樸結構

3.分散式機器學習與聯邦學習的共同發展

分散式機器學習發展到現在,也產生了隱私保護的一些需求,從而與聯邦學習產生了一些內容上的交叉。常見的加密方法,如安全多方計算、同態計算、差分隱私等也逐漸應用在分散式機器學習中。總的來說,聯邦學習是利用分散式資源協同訓練機器學習模型的有效方法。

聯邦學習是一種分散式機器學習方法,其中多個使用者協同訓練一個模型,同時保持原始資料分散,而不移動到單一伺服器或資料中心。在聯邦學習中,原始資料或基於原始資料進行安全處理所產生的資料被用作訓練資料。聯邦學習只允許在分散式運算資源之間傳輸中間數據,同時避免傳輸訓練數據。分散式運算資源是指終端使用者的行動裝置或多個組織的伺服器。

聯邦學習將程式碼引入數據,而不是將數據引入程式碼,從技術上解決了隱私、所有權和數據位置的基本問題。這樣,聯邦學習可以使多個使用者在滿足合法資料限制的同時協同訓練一個模型。

本文摘編自《聯邦學習:演算法詳解與系統實作》(ISBN:978-7-111-70349-5),經出版方授權發布。

以上是終於有人把分散式機器學習講明白了的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

一文帶您了解SHAP:機器學習的模型解釋 一文帶您了解SHAP:機器學習的模型解釋 Jun 01, 2024 am 10:58 AM

在機器學習和資料科學領域,模型的可解釋性一直是研究者和實踐者關注的焦點。隨著深度學習和整合方法等複雜模型的廣泛應用,理解模型的決策過程變得尤為重要。可解釋人工智慧(ExplainableAI|XAI)透過提高模型的透明度,幫助建立對機器學習模型的信任和信心。提高模型的透明度可以透過多種複雜模型的廣泛應用等方法來實現,以及用於解釋模型的決策過程。這些方法包括特徵重要性分析、模型預測區間估計、局部可解釋性演算法等。特徵重要性分析可以透過評估模型對輸入特徵的影響程度來解釋模型的決策過程。模型預測區間估計

使用C++實現機器學習演算法:常見挑戰及解決方案 使用C++實現機器學習演算法:常見挑戰及解決方案 Jun 03, 2024 pm 01:25 PM

C++中機器學習演算法面臨的常見挑戰包括記憶體管理、多執行緒、效能最佳化和可維護性。解決方案包括使用智慧指標、現代線程庫、SIMD指令和第三方庫,並遵循程式碼風格指南和使用自動化工具。實作案例展示如何利用Eigen函式庫實現線性迴歸演算法,有效地管理記憶體和使用高效能矩陣操作。

你所不知道的機器學習五大學派 你所不知道的機器學習五大學派 Jun 05, 2024 pm 08:51 PM

機器學習是人工智慧的重要分支,它賦予電腦從數據中學習的能力,並能夠在無需明確編程的情況下改進自身能力。機器學習在各個領域都有廣泛的應用,從影像辨識和自然語言處理到推薦系統和詐欺偵測,它正在改變我們的生活方式。機器學習領域存在著多種不同的方法和理論,其中最具影響力的五種方法被稱為「機器學習五大派」。這五大派分別為符號派、聯結派、進化派、貝葉斯派和類推學派。 1.符號學派符號學(Symbolism),又稱符號主義,強調利用符號進行邏輯推理和表達知識。該學派認為學習是一種逆向演繹的過程,透過現有的

Flash Attention穩定嗎? Meta、哈佛發現其模型權重偏差呈現數量級波動 Flash Attention穩定嗎? Meta、哈佛發現其模型權重偏差呈現數量級波動 May 30, 2024 pm 01:24 PM

MetaFAIR聯合哈佛優化大規模機器學習時所產生的資料偏差,提供了新的研究架構。據所周知,大語言模型的訓練常常需要數月的時間,使用數百甚至上千個GPU。以LLaMA270B模型為例,其訓練總共需要1,720,320個GPU小時。由於這些工作負載的規模和複雜性,導致訓練大模型存在著獨特的系統性挑戰。最近,許多機構在訓練SOTA生成式AI模型時報告了訓練過程中的不穩定情況,它們通常以損失尖峰的形式出現,例如Google的PaLM模型訓練過程中出現了多達20次的損失尖峰。數值偏差是造成這種訓練不準確性的根因,

可解釋性人工智慧:解釋複雜的AI/ML模型 可解釋性人工智慧:解釋複雜的AI/ML模型 Jun 03, 2024 pm 10:08 PM

譯者|李睿審校|重樓人工智慧(AI)和機器學習(ML)模型如今變得越來越複雜,這些模型產生的產出是黑盒子-無法向利害關係人解釋。可解釋性人工智慧(XAI)致力於透過讓利害關係人理解這些模型的工作方式來解決這個問題,確保他們理解這些模型實際上是如何做出決策的,並確保人工智慧系統中的透明度、信任度和問責制來解決這個問題。本文探討了各種可解釋性人工智慧(XAI)技術,以闡明它們的基本原理。可解釋性人工智慧至關重要的幾個原因信任度和透明度:為了讓人工智慧系統被廣泛接受和信任,使用者需要了解決策是如何做出的

改進的檢測演算法:用於高解析度光學遙感影像目標檢測 改進的檢測演算法:用於高解析度光學遙感影像目標檢測 Jun 06, 2024 pm 12:33 PM

01前景概要目前,難以在檢測效率和檢測結果之間取得適當的平衡。我們研究了一種用於高解析度光學遙感影像中目標偵測的增強YOLOv5演算法,利用多層特徵金字塔、多重偵測頭策略和混合注意力模組來提高光學遙感影像的目標偵測網路的效果。根據SIMD資料集,新演算法的mAP比YOLOv5好2.2%,比YOLOX好8.48%,在偵測結果和速度之間達到了更好的平衡。 02背景&動機隨著遠感技術的快速發展,高解析度光學遠感影像已被用於描述地球表面的許多物體,包括飛機、汽車、建築物等。目標檢測在遠感影像的解釋中

C++技術中的機器學習:使用C++實作常見機器學習演算法的指南 C++技術中的機器學習:使用C++實作常見機器學習演算法的指南 Jun 03, 2024 pm 07:33 PM

在C++中,機器學習演算法的實作方式包括:線性迴歸:用於預測連續變量,步驟包括載入資料、計算權重和偏差、更新參數和預測。邏輯迴歸:用於預測離散變量,流程與線性迴歸類似,但使用sigmoid函數進行預測。支援向量機:一種強大的分類和回歸演算法,涉及計算支援向量和預測標籤。

演算法在 58 畫像平台建置中的應用 演算法在 58 畫像平台建置中的應用 May 09, 2024 am 09:01 AM

一、58畫像平台建置背景首先和大家分享下58畫像平台的建造背景。 1.傳統的畫像平台傳統的想法已經不夠,建立用戶畫像平台依賴數據倉儲建模能力,整合多業務線數據,建構準確的用戶畫像;還需要數據挖掘,理解用戶行為、興趣和需求,提供演算法側的能力;最後,還需要具備數據平台能力,有效率地儲存、查詢和共享用戶畫像數據,提供畫像服務。業務自建畫像平台和中台類型畫像平台主要區別在於,業務自建畫像平台服務單條業務線,按需定制;中台平台服務多條業務線,建模複雜,提供更為通用的能力。 2.58中台畫像建構的背景58的使用者畫像

See all articles