分散式機器學習也稱為分散式學習,是指利用多個運算節點(也稱為工作節點,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中文網其他相關文章!

輕鬆在家運行大型語言模型:LM Studio 使用指南 近年來,軟件和硬件的進步使得在個人電腦上運行大型語言模型 (LLM) 成為可能。 LM Studio 就是一個讓這一過程變得輕鬆便捷的優秀工具。本文將深入探討如何使用 LM Studio 在本地運行 LLM,涵蓋關鍵步驟、潛在挑戰以及在本地擁有 LLM 的優勢。無論您是技術愛好者還是對最新 AI 技術感到好奇,本指南都將提供寶貴的見解和實用技巧。讓我們開始吧! 概述 了解在本地運行 LLM 的基本要求。 在您的電腦上設置 LM Studi

蓋伊·佩里(Guy Peri)是麥考密克(McCormick)的首席信息和數字官。儘管他的角色僅七個月,但Peri正在迅速促進公司數字能力的全面轉變。他的職業生涯專注於數據和分析信息

介紹 人工智能(AI)不僅要理解單詞,而且要理解情感,從而以人的觸感做出反應。 這種複雜的互動對於AI和自然語言處理的快速前進的領域至關重要。 Th

介紹 在當今以數據為中心的世界中,利用先進的AI技術對於尋求競爭優勢和提高效率的企業至關重要。 一系列強大的工具使數據科學家,分析師和開發人員都能構建,Depl

本週的AI景觀爆炸了,來自Openai,Mistral AI,Nvidia,Deepseek和Hugging Face等行業巨頭的開創性發行。 這些新型號有望提高功率,負擔能力和可訪問性,這在TR的進步中推動了

但是,該公司的Android應用不僅提供搜索功能,而且還充當AI助手,並充滿了許多安全問題,可以將其用戶暴露於數據盜用,帳戶收購和惡意攻擊中

您可以查看會議和貿易展覽中正在發生的事情。您可以詢問工程師在做什麼,或諮詢首席執行官。 您看的任何地方,事情都以驚人的速度發生變化。 工程師和非工程師 有什麼區別

模擬火箭發射的火箭發射:綜合指南 本文指導您使用強大的Python庫Rocketpy模擬高功率火箭發射。 我們將介紹從定義火箭組件到分析模擬的所有內容


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

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

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中