思考一下,聯(lián)邦學(xué)習(xí)可以訓(xùn)練大語言模型嗎?
1、概述
隨著大語言模型(Large Language Model,LLM)的火速發(fā)展,關(guān)于大語言模型對(duì)人工智能產(chǎn)業(yè)發(fā)展的影響引發(fā)了越來越多的討論。一種觀點(diǎn)認(rèn)為,大語言模型的發(fā)展摧毀了人工智能初創(chuàng)企業(yè)的發(fā)展之路,因?yàn)榇笳Z言模型參數(shù)多,所需要的算力規(guī)模大,所依賴的訓(xùn)練數(shù)據(jù)規(guī)模也大。大模型、大參數(shù)、大數(shù)據(jù)實(shí)際都集中在大的人工智能企業(yè),從而導(dǎo)致初創(chuàng)企業(yè)的機(jī)會(huì)越來越少。另外一種觀點(diǎn)則相反,他們認(rèn)為,大語言模型的發(fā)展一定程度成促進(jìn)了人工智能在多個(gè)領(lǐng)域中的廣泛發(fā)展,例如可以直接在大語言模型的基礎(chǔ)上利用私有數(shù)據(jù)搭建一些垂直領(lǐng)域的大語言模型,可以直接將大語言模型應(yīng)用在不同的業(yè)務(wù)場(chǎng)景中等等。
我們?cè)谶@篇文章中不討論上述兩種觀點(diǎn),我們關(guān)注的是第二種觀點(diǎn)中提到的應(yīng)用方式:如何在保證數(shù)據(jù)隱私性的前提下,利用私有數(shù)據(jù)訓(xùn)練大語言模型,從而滿足在垂直領(lǐng)域中的應(yīng)用需求?這一點(diǎn)也將是 LLM 促進(jìn)人工智能初創(chuàng)企業(yè)發(fā)展的關(guān)鍵。具體的,我們關(guān)注聯(lián)邦學(xué)習(xí)是否可以用來訓(xùn)練大語言模型?
1.1 大語言模型結(jié)構(gòu)及需要的資源
由于 Transformer 架構(gòu)具有出色的可并行性和容量,它已經(jīng)成為開發(fā)各種 LLM 事實(shí)上的主干網(wǎng)絡(luò),使得語言模型的規(guī)模達(dá)到數(shù)千或數(shù)億的參數(shù)成為可能。一般來說,現(xiàn)有 LLM 的主流架構(gòu)可以大致分為三大類型,即編碼器 - 解碼器(encoder-decoder)、因果解碼器(causal decoder)和前綴解碼器(prefix decoder),如圖 1 所示 [8]。
圖片
圖 1. 三種主流架構(gòu)中的注意力模式比較。其中,藍(lán)色、綠色、黃色和灰色的圓角矩形分別表示前綴標(biāo)記之間的注意力、前綴和目標(biāo)標(biāo)記之間的注意力、目標(biāo)標(biāo)記之間的注意力和掩碼的注意力。
- 編碼器 - 解碼器架構(gòu)。Vanilla Transformer 模型是建立在編碼器 - 解碼器結(jié)構(gòu)上的,它由兩個(gè)堆疊的 Transformer 塊組成,分別作為編碼器和解碼器。編碼器采用堆疊的多頭自注意力層對(duì)輸入序列進(jìn)行編碼,以生成其潛在的表征,而解碼器則對(duì)這些表征進(jìn)行交叉注意力,并自動(dòng)生成目標(biāo)序列。編碼器 - 解碼器(如 T5 和 BART)已經(jīng)在各種 NLP 任務(wù)上顯示出有效性。到目前為止,只有少數(shù)的 LLM 是基于編碼器 - 解碼器架構(gòu)建立的,如 Flan-T5。
- 因果解碼器架構(gòu)。因果解碼器的結(jié)構(gòu)包含了單向的注意力掩碼,以保證每個(gè)輸入標(biāo)記只能注意到過去的標(biāo)記和自己。輸入和輸出標(biāo)記以同樣的方式通過解碼器進(jìn)行處理。作為該架構(gòu)的代表性語言模型,GPT 系列模型是基于因果解碼器架構(gòu)開發(fā)的。特別是 GPT-3 成功地證明了這一架構(gòu)的有效性,也顯示了 LLM 驚人的內(nèi)涵學(xué)習(xí)能力。有趣的是,GPT-1 和 GPT-2 并沒有表現(xiàn)出像 GPT-3 那樣優(yōu)越的能力,看來縮放在提高這個(gè)模型架構(gòu)的模型容量方面發(fā)揮了重要作用。到目前為止,因果解碼器已被各種現(xiàn)有的 LLM 廣泛采用為 LLM 的架構(gòu),如 OPT、BLOOM 和 Gopher。
- 前綴解碼器架構(gòu)。前綴解碼器架構(gòu)(又稱非因果解碼器)修改了因果解碼器的掩碼機(jī)制,以便能夠?qū)η熬Y標(biāo)記進(jìn)行雙向關(guān)注,而只對(duì)生成的標(biāo)記進(jìn)行單向關(guān)注。這樣,像編碼器 - 解碼器結(jié)構(gòu)一樣,前綴解碼器可以對(duì)前綴序列進(jìn)行雙向編碼,并逐一自動(dòng)預(yù)測(cè)輸出標(biāo)記,在編碼和解碼期間共享相同的參數(shù)。與其從頭開始預(yù)訓(xùn)練,一個(gè)實(shí)用的建議是不斷訓(xùn)練因果解碼器,然后將其轉(zhuǎn)換為前綴解碼器,以加速收斂,例如,U-PaLM 是由 PaLM 衍生出來的。現(xiàn)有的基于前綴解碼器的代表性 LLM 包括 GLM130B 和 U-PaLM。
但是,在大語言模型發(fā)展過程中,越來越多的人提出了疑慮,主要集中在以下幾個(gè)方面:
- 隱私不應(yīng)受到損害。最先進(jìn)的模型只能通過通用的黑盒 API 訪問。這些 API 在向集中式 LLM 供應(yīng)商傳輸數(shù)據(jù)時(shí),會(huì)引起公司的隱私問題。例如,據(jù)報(bào)道,三星通過 ChatGPT 泄露了自己的秘密,突出了與此類 API 相關(guān)的風(fēng)險(xiǎn)。
- 專有的和訓(xùn)練有素的模型是重要的知識(shí)產(chǎn)權(quán)。對(duì)于企業(yè)來說,最能從人工智能中受益的問題和數(shù)據(jù)集往往是敏感和專有的。這就排除了對(duì)公共模型的微調(diào),因此業(yè)務(wù)最好是利用內(nèi)部部署的模型進(jìn)行微調(diào),或在企業(yè)的防火墻內(nèi)部署模型。
- 成本問題。目前,LLM 的訓(xùn)練需要數(shù)以千計(jì)的 GPU 節(jié)點(diǎn),成本高達(dá)十億級(jí)美元。模型可能需要平衡不同的權(quán)衡,如略微影響模型的性能以減少云的成本。擁有模型使客戶可以方便地對(duì)其進(jìn)行微調(diào)和再訓(xùn)練。例如,他們可以刪除多余的模型參數(shù),以實(shí)現(xiàn)特定領(lǐng)域任務(wù)的高性能,同時(shí)最大限度地降低云成本。
由此,引發(fā)出我們這篇文章討論的方法:FL+LLM,即引入聯(lián)邦學(xué)習(xí)來訓(xùn)練大語言模型,從而為企業(yè)商業(yè)用戶提供眾多優(yōu)勢(shì),在模型規(guī)模和性能、隱私、效率、云計(jì)算成本和勞動(dòng)力成本方面大大增強(qiáng)企業(yè)使用大型模型的能力。
1.2 聯(lián)邦學(xué)習(xí)回顧
聯(lián)邦學(xué)習(xí)(Federated learning,F(xiàn)L)是一種機(jī)器學(xué)習(xí)環(huán)境,在這種環(huán)境下,多個(gè)客戶端(如移動(dòng)設(shè)備或整個(gè)組織)在中央服務(wù)器(如服務(wù)提供商)的協(xié)調(diào)下協(xié)同訓(xùn)練一個(gè)模型,同時(shí)保持訓(xùn)練數(shù)據(jù)的分散性。FL 體現(xiàn)了集中數(shù)據(jù)收集和最小化的原則,可以減輕傳統(tǒng)的集中式機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)方法帶來的許多隱私、安全性風(fēng)險(xiǎn)和成本。因此,F(xiàn)L 是一種有效的高性能計(jì)算范式,也被看作是滿足數(shù)據(jù)隱私性要求的分布式訓(xùn)練方法。目前,F(xiàn)L 已經(jīng)在一些應(yīng)用場(chǎng)景中成功使用,包括一些消費(fèi)端設(shè)備,例如 GBoard、關(guān)鍵詞發(fā)現(xiàn),以及制藥、醫(yī)學(xué)研究、金融、制造業(yè)等等。此外,也出現(xiàn)了大量 FL 開發(fā)工具和平臺(tái),例如 Tensorow Federated, LEAF, PaddleFL 和 PySy,進(jìn)一步推動(dòng) FL 的發(fā)展。
在聯(lián)邦學(xué)習(xí)框架中,中央服務(wù)器保存初始化可共享的全局?jǐn)?shù)據(jù)。各個(gè)客戶端(參與者、邊緣設(shè)備)保存本地?cái)?shù)據(jù),并根據(jù)本地?cái)?shù)據(jù)訓(xùn)練本地機(jī)器學(xué)習(xí)模型??蛻舳烁鶕?jù)一定的通信機(jī)制向中央服務(wù)器傳輸模型參數(shù)等數(shù)據(jù)(不會(huì)傳輸完整的客戶端原始數(shù)據(jù)),中央服務(wù)器匯聚各客戶端上載數(shù)據(jù)后訓(xùn)練構(gòu)建全局模型,各個(gè)客戶端在整個(gè)聯(lián)邦學(xué)習(xí)機(jī)制中身份和地位相同。聯(lián)邦學(xué)習(xí)有效解決了兩方或多方數(shù)據(jù)使用實(shí)體(客戶端)在不貢獻(xiàn)出數(shù)據(jù)的情況下的數(shù)據(jù)共同使用問題,解決了數(shù)據(jù)孤島問題。此外,在各個(gè)客戶端數(shù)據(jù)特征對(duì)齊的前提下,聯(lián)邦學(xué)習(xí)的全局模型能夠獲得與數(shù)據(jù)集中式存儲(chǔ)相同的建模效果。
以下是四個(gè)非常重要的聯(lián)邦學(xué)習(xí)算法:
1. FedAvg(Federated Averaging)[1]:FedAvg 是最經(jīng)典的聯(lián)邦學(xué)習(xí)算法,由 Google 于 2016 年提出。該算法采用梯度下降的方式對(duì)模型參數(shù)進(jìn)行迭代更新。在 FedAvg 中,每個(gè)客戶端(例如,手機(jī)或其他設(shè)備)首先在本地用自己的數(shù)據(jù)訓(xùn)練模型,然后將本地模型權(quán)重發(fā)送至中央服務(wù)器。中央服務(wù)器收集所有客戶端的權(quán)重更新,計(jì)算權(quán)重的平均值,并將更新后的權(quán)重分發(fā)回各個(gè)客戶端。這個(gè)過程在多輪中進(jìn)行,直到達(dá)到收斂。
2. FedProx(Federated Proximal)[2]:FedProx 是一種改進(jìn)的聯(lián)邦學(xué)習(xí)算法,用于解決聯(lián)邦學(xué)習(xí)中的非獨(dú)立同分布(non-IID)數(shù)據(jù)和設(shè)備異質(zhì)性問題。這些問題會(huì)導(dǎo)致訓(xùn)練質(zhì)量下降,尤其是在訓(xùn)練數(shù)據(jù)不均勻分布的情況下。FedProx 通過在優(yōu)化目標(biāo)中添加一個(gè) proximal term 來解決這個(gè)問題,這使得模型在更新時(shí)更加關(guān)注與全局模型權(quán)重接近的本地模型權(quán)重。這樣可以減輕非獨(dú)立同分布數(shù)據(jù)和設(shè)備異質(zhì)性帶來的負(fù)面影響,提高模型性能。
3. SCAFFOLD(Federated Learning via Stochastic Controlled Averaging)[3]:SCAFFOLD 是一種高效的聯(lián)邦學(xué)習(xí)算法,主要關(guān)注梯度稀疏性和設(shè)備間的通信。SCAFFOLD 通過在每輪中維護(hù)一個(gè)控制變量(control variate)來減少通信量。這個(gè)控制變量可以根據(jù)全局模型的梯度變化進(jìn)行調(diào)整,從而使每個(gè)設(shè)備之間的通信更為緊湊。SCAFFOLD 在通信方面更加高效,可以在不犧牲模型性能的情況下減少通信成本。
4. FedNova(Federated Learning via Normalized Averaging)[4]:FedNova 的核心思想是采用歸一化平均方法消除目標(biāo)不一致性,同時(shí)保持快速的誤差收斂。在每輪迭代中,在各個(gè)客戶端設(shè)備上進(jìn)行本地訓(xùn)練,并對(duì)本地模型參數(shù)進(jìn)行歸一化,然后將歸一化后的參數(shù)發(fā)送至中央服務(wù)器。中央服務(wù)器在收集所有客戶端的參數(shù)更新后,對(duì)其進(jìn)行歸一化平均,從而減少目標(biāo)不一致性。之后,中央服務(wù)器將更新后的模型參數(shù)分發(fā)回各個(gè)客戶端,以便在下一輪迭代中繼續(xù)訓(xùn)練。FedNova 的優(yōu)點(diǎn)在于,它能夠在保持快速誤差收斂的同時(shí),消除由于數(shù)據(jù)異質(zhì)性導(dǎo)致的目標(biāo)不一致性。這使得 FedNova 算法在處理非獨(dú)立同分布數(shù)據(jù)和設(shè)備異質(zhì)性方面表現(xiàn)出較好的性能。
2、聯(lián)邦學(xué)習(xí)結(jié)構(gòu)來訓(xùn)練大語言模型的難點(diǎn)
近年來,LLM 和 FL 的研究都取得了一定的進(jìn)展。但是,在目前的技術(shù)和資源條件下,直接 FL+LLM 還面臨一系列的問題。
2.1 數(shù)據(jù)方面
LLM 的訓(xùn)練依托的是超大規(guī)模的數(shù)據(jù)量。Chinchilla 探討了訓(xùn)練 LLM 需要多少數(shù)據(jù) [9]。2020 年 5 月,OpenAI 展示了他們的 LLM data scaling laws(也稱為 Kaplan scaling laws):300B tokens 可用于訓(xùn)練參數(shù)量大小為 175B LLM。2022 年 9 月,DeepMind 為 “數(shù)據(jù)最優(yōu)” LLM 找到了新 data scaling laws(也稱為 Chinchilla 或 Hoffman scaling laws):應(yīng)該使用 1,400B (1.4T) tokens 來訓(xùn)練參數(shù)量大小為 70B LLM 最佳。
圖片
表 1. 與 Chinchilla 數(shù)據(jù)優(yōu)化模型一致所需的數(shù)據(jù)集大小 [9]
由表 1 中 Chinchilla 給出的數(shù)據(jù)可以看出,應(yīng)用聯(lián)邦學(xué)習(xí)結(jié)構(gòu)來訓(xùn)練 LLM 勢(shì)必要將海量的數(shù)據(jù)量分布在不同的客戶端設(shè)備中,如果客戶端數(shù)量較少,那就造成每個(gè)客戶端中存儲(chǔ)、承載的數(shù)據(jù)量依然較大,對(duì)每個(gè)客戶端的計(jì)算性能要求都非常高,這與聯(lián)邦學(xué)習(xí)架構(gòu)的設(shè)計(jì)初衷是不一致的;如果客戶端數(shù)量非常龐大,每個(gè)客戶端中存儲(chǔ)的數(shù)據(jù)量適中,那對(duì)于大量客戶端之間的協(xié)調(diào)調(diào)用機(jī)制、多方計(jì)算能力和資源分配不均的資源不均衡問題就會(huì)非常突出,不均衡情況下的客戶端激勵(lì)機(jī)制也尤為關(guān)鍵,會(huì)對(duì)聯(lián)邦學(xué)習(xí)的中央模型效果、訓(xùn)練效率都有很大的影響。
2.2 客戶端設(shè)備方面
聯(lián)邦學(xué)習(xí)架構(gòu)下的分布式系統(tǒng)中,單個(gè)客戶端如何容納整個(gè) LLM 模型?在已有的聯(lián)邦學(xué)習(xí)平臺(tái)中,特別是一些實(shí)用場(chǎng)景下的聯(lián)邦學(xué)習(xí)平臺(tái),分布式的客戶端設(shè)備大多為手機(jī)、平板等,這些設(shè)備根本不可能容納整個(gè) LLM 模型或?yàn)槟P陀?xùn)練提供足夠的內(nèi)存資源。如果將這些設(shè)備完全排除在訓(xùn)練過程之外,也與聯(lián)邦學(xué)習(xí)架構(gòu)的設(shè)計(jì)初衷不一致。但在客戶端無法容納整個(gè)模型、又不能將客戶端完全排除在訓(xùn)練過程之外的情況下,如何對(duì) LLM 進(jìn)行并行式的訓(xùn)練呢?
微軟在一篇文章中對(duì) LLaMA 目前對(duì)設(shè)備內(nèi)存的占用量進(jìn)行了分析 [10]。在模型訓(xùn)練過程中,大部分的內(nèi)存開銷用于 model states (模型參數(shù)、優(yōu)化器的狀態(tài)、梯度)。剩下的內(nèi)存開銷則來自于 residual states(激活值、臨時(shí)區(qū)緩存和內(nèi)存碎片)。
以 LLaMA 7B 模型為例,模型參數(shù)所需的內(nèi)存是 (參數(shù)量 * 每個(gè)參數(shù)的內(nèi)存):fp32 精度: 7*4 bytes = 28GB;fp16 精度:7*2 bytes = 14GB;int8 精度:7*1 bytes = 7GB;混合精度(fp16/32)訓(xùn)練:存儲(chǔ) fp16 精度 + fp32 精度 = 14GB +28GB = 42GB。
梯度所需的內(nèi)存(計(jì)算方式同模型參數(shù)一樣,參數(shù)量 * 每個(gè)參數(shù)的內(nèi)存):fp32 精度: 7*4 bytes = 28GB;fp16 精度:7*2 bytes= 14GB;int8 精度:7*1 bytes = 7GB;混合精度(fp16/32)訓(xùn)練:只存儲(chǔ) fp16 精度 = 14GB。
優(yōu)化器所需的內(nèi)存(參數(shù)量 * 每個(gè)參數(shù)的內(nèi)存 * 2,以 Adam 為例):fp32 精度: 7*4 bytes * 2 = 56GB;fp16 精度:7*2 bytes * 2 = 28GB;int8 精度:7*1 bytes * 2 = 14GB;混合精度(fp16/32)訓(xùn)練:存儲(chǔ) fp32 精度 = 56 G。
總的來說,訓(xùn)練 LLaMa 模型總的內(nèi)存需求為,fp32 精度: 28+28+56 = 112GB;fp16 精度:14+14+28 = 56GB;int8 精度:7+7+14 = 28G;混合精度(fp16/32)訓(xùn)練: 42+14+56 = 112GB。
LLaMA 7B 的規(guī)模相當(dāng)于目前的 LLM 來說非常小了,但即使 LLaMA 7B 的內(nèi)存消耗量對(duì)一些手機(jī)、平板來說也是難以滿足的,這就對(duì) FL 架構(gòu)下的客戶端設(shè)備選擇構(gòu)成了巨大的約束。
2.3 訓(xùn)練算法方面
已有的聯(lián)邦學(xué)習(xí)訓(xùn)練算法對(duì)于 LLM 來說是低效的。如上所述,聯(lián)邦學(xué)習(xí)的工作過程是:“各個(gè)客戶端根據(jù)本地?cái)?shù)據(jù)訓(xùn)練本地模型??蛻舳烁鶕?jù)一定的通信機(jī)制向中央服務(wù)器傳輸模型參數(shù)等數(shù)據(jù),中央服務(wù)器匯聚各客戶端上載數(shù)據(jù)后訓(xùn)練構(gòu)建全局模型”。由于 LLM 的參數(shù)量和模型結(jié)構(gòu)非常龐大,這種傳輸、匯聚的過程又受到通信條件的影響,所以整個(gè)工作過程的效率是非常低的。
3、FL+LLM 已有哪些工作進(jìn)展
盡管 FL+LLM 還面臨諸多問題,但是不少研究人員已經(jīng)開始探索相關(guān)方向的技術(shù)可能性并取得了一定的進(jìn)展。我們?cè)谶@一章節(jié)中介紹一下相關(guān)的工作進(jìn)展情況。
3.1 FedLLM:在專有數(shù)據(jù)上建立你自己的大型語言模型
FedLLM 是一個(gè) MLOps 支持的訓(xùn)練 pipeline,能夠?qū)崿F(xiàn)在專有數(shù)據(jù)上建立企業(yè)自己的大語言模型 [7]。代碼已公開:https://github.com/FedML-AI/FedML/tree/master/python/app/fedllm 。FedLLM 代表了 "LLM 的基礎(chǔ)生態(tài)系統(tǒng)設(shè)計(jì)",而不僅僅是 "LLM 的聯(lián)邦學(xué)習(xí)"。
FedLLM 是 FedML.Inc. 推出的 FL+LLM 框架。FedML, Inc. (https://FedML.ai ) 是由華人主導(dǎo)的國(guó)際化團(tuán)隊(duì),他們起源于美國(guó)南加州大學(xué) (University of Southern California),是全球范圍內(nèi)研究該技術(shù)的早期機(jī)構(gòu)之一。過去幾年,F(xiàn)edML 起初作為博士生主導(dǎo)的科研開源項(xiàng)目,服務(wù)于多個(gè)科研基金,輔助所在實(shí)驗(yàn)室發(fā)表了 50 多篇相關(guān)頂級(jí)論文。2023 年,F(xiàn)edML 宣布完成 600 萬美元種子輪和 Pre-Seed 輪融資,Camford Capital 領(lǐng)投,Plug and Play Ventures、AimTop Ventures、Acequia Capital、LDV Partners 等投資者參投。
圖 2. FedLLM 的訓(xùn)練過程
如圖 2,F(xiàn)edLLM 實(shí)現(xiàn)了數(shù)據(jù)協(xié)作、計(jì)算協(xié)作和模型協(xié)作,并支持在集中式和地理分布式的 GPU 集群上進(jìn)行訓(xùn)練,以及數(shù)據(jù)孤島的聯(lián)邦學(xué)習(xí)。FedLLM 與 HuggingFace 和 DeepSpeed 等流行的 LLM 庫(kù)兼容,并旨在提高效率和安全 / 隱私。
- 數(shù)據(jù)協(xié)作 — 在特定領(lǐng)域的專有數(shù)據(jù)上實(shí)現(xiàn) LLM 的訓(xùn)練。通用的 LLMs ChatGPT 和 GPT-4 是在人類發(fā)布和注釋的大量文本上訓(xùn)練的。在許多垂直領(lǐng)域(如醫(yī)療保健、金融科技、法律和汽車行業(yè)),ChatGPT 可能無法很好地發(fā)揮作用。使企業(yè)能夠在其專有數(shù)據(jù)上訓(xùn)練他們的模型,可以在保護(hù)隱私的同時(shí)實(shí)現(xiàn)更好的性能。在某些情況下,當(dāng)數(shù)據(jù)集分散在各個(gè)數(shù)倉(cāng)中時(shí),F(xiàn)edML 聯(lián)邦學(xué)習(xí)訓(xùn)練管道 "Train on the Edge" 將以安全和可擴(kuò)展的方式處理。
- 計(jì)算協(xié)作 — 利用分散的計(jì)算資源。由于計(jì)算能力的高投資,只有少數(shù)大型科技公司(如微軟、谷歌)才能負(fù)擔(dān)得起 LLM 預(yù)訓(xùn)練。處于不同垂直領(lǐng)域的企業(yè)無法負(fù)擔(dān)花費(fèi)數(shù)十億美元的數(shù)千個(gè) GPU 節(jié)點(diǎn)。充分利用 GPU 資源的一個(gè)更具成本效益的方法是建立一個(gè)跨組織的共享機(jī)制。FedML 通過 "Train on the cloud" 平臺(tái)實(shí)現(xiàn)了這一點(diǎn),它可以將訓(xùn)練工作安排到地理分布的 CPU/GPU 網(wǎng)絡(luò)上。這種計(jì)算方面的合作可以減少在一個(gè)組織中購(gòu)買大量 GPU 節(jié)點(diǎn)的財(cái)務(wù)負(fù)擔(dān)。
- 模型協(xié)作 — 以聯(lián)合的方式服務(wù)于模型。服務(wù)大型基礎(chǔ)模型也是一種挑戰(zhàn)。與其他 MLOps 相比,F(xiàn)edML 率先提出了通過地理分布的云計(jì)算資源進(jìn)行聯(lián)邦模型推理的想法。當(dāng)推理請(qǐng)求被發(fā)送到推理端點(diǎn)時(shí),主節(jié)點(diǎn)將把請(qǐng)求路由到由 GPU 供應(yīng)商托管的分散的邊緣節(jié)點(diǎn),他們可以共享 GPU 的空閑時(shí)間。這樣的模式服務(wù)平臺(tái)可以提供更好的服務(wù)可靠性和更便宜的云計(jì)算成本。
對(duì)于特定的孤島式 GPU 集群,F(xiàn)edLLM 利用現(xiàn)有的開源 LLM 和流行框架進(jìn)行本地訓(xùn)練:
- 模型定義和預(yù)訓(xùn)練的權(quán)重來自 EleutherAI 的 pythia 的 2.8B、7B 和 12B 版本。將 Hugging Face 的 transformer 作為參考實(shí)現(xiàn)(https://github.com/huggingface/peft?ref=blog.fedml.ai)。FedLLM 也是一個(gè)模型無關(guān)的框架,企業(yè)和開發(fā)者可以插入任何 LLM。
- FedLLM 支持參數(shù)高效的訓(xùn)練方法,如 LoRA。其參考實(shí)現(xiàn)來自 HuggingFace 的 peft(https://huggingface.co/docs/transformers/index?ref=blog.fedml.ai)。
- 對(duì)于一個(gè)獨(dú)立的訓(xùn)練器,其訓(xùn)練 / 評(píng)估代碼是基于 Transformers 庫(kù)(https://huggingface.co/docs/transformers/index?ref=blog.fedml.ai)中的 Trainer。
- 特定 GPU 集群上的分布式訓(xùn)練框架由 DeepSpeed(https://www.deepspeed.ai/?ref=blog.fedml.ai)處理。還啟用 Zero3 來減少單個(gè) GPU 的內(nèi)存成本。通過加強(qiáng) FedML 和 DeepSpeed 之間的兼容性,F(xiàn)edLLM 可以在不同的物理空間分布式集群中運(yùn)行訓(xùn)練作業(yè)。
FedML 也給出了一個(gè)應(yīng)用 FedLLM 的實(shí)例。如圖 3,本地?cái)?shù)據(jù)保持在本地,只有模型參數(shù)或權(quán)重?cái)?shù)據(jù)從中央服務(wù)器流向和流回。這個(gè)特殊的實(shí)例假設(shè)了一個(gè)聊天類型的應(yīng)用,它結(jié)合了本地?cái)?shù)據(jù)的訓(xùn)練,以及中央服務(wù)器通過利用其他設(shè)備的訓(xùn)練而建立的微調(diào)訓(xùn)練的好處。聊天應(yīng)用程序只是一個(gè)例子,可以被其他利用 LLM 模型的應(yīng)用程序所取代。
圖 3. FedLLM 應(yīng)用實(shí)例
FedLLM 從一定程度上能夠?qū)崿F(xiàn)利用聯(lián)邦學(xué)習(xí)訓(xùn)練 LLM。但是,回顧我們?cè)诘诙轮杏懻摰?,利用?lián)邦學(xué)習(xí)架構(gòu)訓(xùn)練 LLM 還面臨很多問題,從公開的技術(shù)內(nèi)容來看,F(xiàn)edLLM 并沒有能夠解決這些問題。FedLLM 架構(gòu)中假設(shè)的計(jì)算節(jié)點(diǎn)都是具備一定計(jì)算能力的 GPU 節(jié)點(diǎn),F(xiàn)edLLM 能夠解決的問題是 “不用大量購(gòu)置 GPU”。但真實(shí)狀況下的聯(lián)邦學(xué)習(xí),客戶端節(jié)點(diǎn)很多是手機(jī)、平板,F(xiàn)edLLM 并不能適配這些情況。同樣的問題也存在于客戶端節(jié)點(diǎn)數(shù)據(jù)量的情況,即 FedLLM 假設(shè)客戶端是足夠容納訓(xùn)練本地 LLM 所需要的數(shù)據(jù)量的。最后,F(xiàn)edLLM 并沒有討論什么樣的聚合算法適合 FL for LLM,也沒有討論是否需要改進(jìn)客戶端訓(xùn)練 LLM 的算法,這對(duì)于真正推廣應(yīng)用 FL+LLM 還是需要進(jìn)一步細(xì)化解決的。
3.2 DeepSpeed:通過提高規(guī)模、速度、成本和可用性來推進(jìn)大型模型訓(xùn)練,釋放出訓(xùn)練 1000 億個(gè)參數(shù)模型的能力
LLM 在訓(xùn)練時(shí)往往需要大量?jī)?nèi)存來存儲(chǔ)中間激活、權(quán)重等參數(shù),百億模型甚至無法在單個(gè) GPU 上進(jìn)行訓(xùn)練,使得模型訓(xùn)練在某些情況下非常低效和不可能。前期工作已經(jīng)有研究人員專門聚焦在多節(jié)點(diǎn)分布式訓(xùn)練問題中,主要采用數(shù)據(jù)并行(模型的不同實(shí)例在不同的 GPU 和不同批數(shù)據(jù)上運(yùn)行)和模型并行(將模型拆分到多個(gè) GPU 上進(jìn)行訓(xùn)練)兩種方式。
DeepSpeed 是微軟開發(fā)的一種深度學(xué)習(xí)訓(xùn)練優(yōu)化工具,旨在通過分布式訓(xùn)練和混合精度技術(shù)來提高訓(xùn)練速度和節(jié)省資源。它是一個(gè)開源的 Python 庫(kù),可以在多個(gè)平臺(tái)上運(yùn)行。與傳統(tǒng)的深度學(xué)習(xí)框架,例如 TensorFlow、Pytorch、Keras 等相比,DeepSpeed 通過將模型參數(shù)拆散分布到各個(gè) GPU 上,以實(shí)現(xiàn)大模型的計(jì)算,使得可以用更少的 GPU 訓(xùn)練更大的模型,而且不受限于顯存。
數(shù)據(jù)并行會(huì)在所有 worker 之間進(jìn)行模型和優(yōu)化器的復(fù)制,因此顯存效率不高。DeepSpeed 開發(fā)了 ZeRO ,它是一系列用于提高數(shù)據(jù)并行的顯存效率的優(yōu)化器。針對(duì)模型并行,DeepSpeed 借用了英偉達(dá)的 Megatron-LM 來為基于 Transformer 的語言模型提供大規(guī)模模型并行功能。
具體來說,DeepSpeed (https://www.deepspeed.ai) 能夠通過一次點(diǎn)擊實(shí)現(xiàn)類似 ChatGPT 的模型訓(xùn)練,與 SOTA RLHF 系統(tǒng)相比,提供了 15 倍的速度提升,并在所有規(guī)模上實(shí)現(xiàn)了前所未有的成本降低。DeepSpeed 有三個(gè)創(chuàng)新點(diǎn):
- DeepSpeed-Training:DeepSpeed 提供了一系列的系統(tǒng)創(chuàng)新,這些創(chuàng)新使得大規(guī)模的深度學(xué)習(xí)訓(xùn)練變得有效和高效,極大地改善了使用的便利性,并且在可能的規(guī)模方面重新定義了深度學(xué)習(xí)訓(xùn)練領(lǐng)域。這些創(chuàng)新,例如 ZeRO、3D-Parallelism、DeepSpeed-MoE、ZeRO-Infinity 等,都屬于 DeepSpeed-Training 的核心。
- DeepSpeed inference:DeepSpeed inference 是一個(gè)用于 Transformer 模型推理的全面系統(tǒng)解決方案。DeepSpeed inference 包括:(1) 一個(gè)多 GPU 推理解決方案,以最大限度地減少延遲,同時(shí)最大限度地提高密集和稀疏 Transformer 模型的吞吐量,當(dāng)它們適合聚合 GPU 內(nèi)存時(shí);(2) 一個(gè)異構(gòu)推理解決方案,除了 GPU 內(nèi)存和計(jì)算外,還利用 CPU 和 NVMe 內(nèi)存,以實(shí)現(xiàn)不適合聚合 GPU 內(nèi)存的大模型的高推理吞吐量。
- DeepSpeed-Compression:為了進(jìn)一步提高推理效率,DeepSpeed 為研究人員和從業(yè)人員提供了易于使用和靈活組成的壓縮技術(shù),以壓縮他們的模型,同時(shí)提供更快的速度、更小的模型尺寸,并大大降低壓縮成本。此外,SoTA 在壓縮方面的創(chuàng)新,如 ZeroQuant 和 XTC,都包含在 DeepSpeed-Compression。
具體來說,DeepSpeed Inference 的兩個(gè)核心組件介紹如下:
- DeepSpeed Transformer:DeepSpeed Transformer 是一個(gè)僅適用于 GPU 的解決方案,旨在最小化延遲,同時(shí)最大限度地提高密集和稀疏 Transformer 模型的吞吐量。它為各種規(guī)模的 Transformer 模型實(shí)現(xiàn)了最先進(jìn)的延遲和吞吐量,并支持在單個(gè) GPU 上運(yùn)行或擴(kuò)展到數(shù)百個(gè) GPU 以推理數(shù)百萬參數(shù)的模型。DeepSpeed Transformer 解決方案是一個(gè)三層的系統(tǒng)架構(gòu),包括:i) 單個(gè) GPU 轉(zhuǎn)化器內(nèi)核,在小批規(guī)模時(shí)針對(duì)內(nèi)存帶寬利用率進(jìn)行優(yōu)化,在大批規(guī)模時(shí)針對(duì)高吞吐量進(jìn)行優(yōu)化;ii) 多個(gè) GPU 密集 Transformer 層,利用張量切割和推理優(yōu)化的管道并行性在 GPU 上擴(kuò)展密集 Transformer 模型。海量 GPU 規(guī)模的稀疏 Transformer 層,旨在利用并行技術(shù)和通信優(yōu)化策略的組合將 MoE Transformer 層擴(kuò)展到數(shù)百個(gè) GPU,同時(shí)還利用優(yōu)化的稀疏內(nèi)核將單 GPU 稀疏計(jì)算的開銷降到最低。通過采取這種分層方法,每一層都解決了延遲挑戰(zhàn)的一個(gè)獨(dú)特方面:批大小、密集模型的擴(kuò)展和稀疏模型的擴(kuò)展,但又相互兼容并建立在彼此之上,DeepSpeed Transformer 是一個(gè)綜合系統(tǒng),盡管在批大小、模型規(guī)模和模型特征方面存在異質(zhì)性,但它能夠以前所未有的規(guī)模為密集和稀疏 Transformer 模型實(shí)現(xiàn)最優(yōu)的延遲和吞吐量。
- ZeRO-Inference:ZeRO-Inference 是一個(gè)基于異構(gòu) GPU+CPU+NVMe 的解決方案,是一種用于大規(guī)模分布式深度學(xué)習(xí)的新型內(nèi)存優(yōu)化技術(shù)。通過用最少的 GPU 資源實(shí)現(xiàn)大規(guī)模的模型推理,來解決內(nèi)存的挑戰(zhàn)。與 DeepSpeed Transformer 相比,對(duì)于那些對(duì)延遲不太敏感但資源有限的應(yīng)用,只要有足夠的 CPU 或 NVMe 內(nèi)存來存儲(chǔ)模型參數(shù),ZeRO-Inference 就可以在單個(gè)或多個(gè) GPU 上推斷具有數(shù)千億個(gè)參數(shù)的模型。
圖 4. DeepSpeed 壓縮庫(kù)
DeepSpeed Compression 提出了一個(gè)無縫 pipeline 來解決壓縮合成性的挑戰(zhàn),如圖 4 所示。DeepSpeed Compression 的核心部分是一個(gè)叫做 compression composer 的組件,它包括幾個(gè)重要的功能:
1. 它提供了多種尖端的壓縮方法,包括極端量化、頭 / 行 / 通道修剪和知識(shí)提煉,可以有效地減少模型大小和推理成本。隨著不斷地整合更多的最先進(jìn)的壓縮方法,這個(gè)列表還會(huì)擴(kuò)大。
2. 它提供了一個(gè)易于使用的 API,自動(dòng)處理組裝不同壓縮技術(shù)的復(fù)雜問題,以提供多種壓縮方法的復(fù)合效益。例如,XTC 需要組成輕量級(jí)的減層、二值化和知識(shí)蒸餾。然而,將它們組合在一起并不困難。有了 compression composer,應(yīng)用極端壓縮就像添加兩個(gè)新的 API 調(diào)用來啟用壓縮和清理壓縮模型一樣簡(jiǎn)單。
3. 它是以模塊化的方式設(shè)計(jì)的,這樣用戶就可以很容易地添加新的壓縮方案。例如,額外的壓縮方法可以通過自定義壓縮層添加,通過向 compression composer 注冊(cè),新方法可以與已經(jīng)由 composer 管理的現(xiàn)有方法組成。
4. 它與 DeepSpeed 庫(kù)無縫銜接。這有兩個(gè)好處。首先,DeepSpeed 壓縮可以通過 JSON 文件以與 DeepSpeed 訓(xùn)練和推理相同的方式進(jìn)行指定和啟用,其中啟用不同的壓縮技術(shù)組合只需要在 JSON 文件中修改幾行。其次,一旦配置了壓縮方案,壓縮 composer 就會(huì)自動(dòng)修改模型層和訓(xùn)練以啟用壓縮過程,不需要用戶對(duì)模型結(jié)構(gòu)或訓(xùn)練程序進(jìn)行額外的修改。
3.3 相關(guān)算法基礎(chǔ)
為了應(yīng)對(duì) LLM 大規(guī)模預(yù)訓(xùn)練的成本問題,從算法層面,研究人員提出了 LoRA( LOW-RANK ADAPTATION ),即大語言模型的低秩適應(yīng)方法,一種輕量級(jí)訓(xùn)練大語言模型的方法。通過凍結(jié)預(yù)訓(xùn)練的模型權(quán)重,并將可訓(xùn)練的秩分解矩陣注入到 Transformer 架構(gòu)的每一層,極大地減少了下游任務(wù)的可訓(xùn)練參數(shù)的數(shù)量,有效提升預(yù)訓(xùn)練模型在下游任務(wù)上的 finetune 效率。
圖片
項(xiàng)目地址:https://github.com/microsoft/LoRA [6]
為解決微調(diào)大語言模型到不同領(lǐng)域和任務(wù)的挑戰(zhàn),已有多種方案,比如部分微調(diào)、使用 adapters 和 prompting。但這些方法存在如下問題:
- Adapters 引入額外的推理延遲 (由于增加了模型層數(shù))
- Prefix-Tuning 難于訓(xùn)練,且預(yù)留給 prompt 的序列擠占了下游任務(wù)的輸入序列空間,影響模型性能
Lora 提出的思路是:雖然模型的參數(shù)眾多,但其實(shí)模型主要依賴低秩維度的內(nèi)容 (low intrinsic dimension)。假設(shè)在適應(yīng)過程中,權(quán)重的更新也具有較低的 "內(nèi)在等級(jí)(intrinsic rank)"。對(duì)于一個(gè)預(yù)先訓(xùn)練好的權(quán)重矩陣 W_0∈R^d×k,通過用低秩分解代表后者來約束其更新:
圖片
圖片
圖片
在訓(xùn)練期間,凍結(jié) W_0,不接受梯度更新,而 A 和 B 包含可訓(xùn)練參數(shù)。W_0 和?W = BA 都與相同的輸入相乘,它們各自的輸出向量按坐標(biāo)相加。對(duì)于 h=W_0x,修改后的正向傳遞得到了:
圖片
圖片
圖 5. Reparameterized 只訓(xùn)練 A 和 B
如圖 5,對(duì) A 使用隨機(jī)高斯初始化,對(duì) B 使用零初始化,所以?W = BA 在訓(xùn)練開始時(shí)是零。然后,用 α/r 來調(diào)整?Wx,其中 α 是 r 中的一個(gè)常數(shù)。當(dāng)用 Adam 進(jìn)行優(yōu)化時(shí),如果適當(dāng)?shù)卣{(diào)整初始化,那么調(diào)整 α 與調(diào)整學(xué)習(xí)率大致相同。因此,只需將 α 設(shè)置為嘗試的第一個(gè) r,而不對(duì)其進(jìn)行調(diào)整。這種比例有助于減少在改變 r 時(shí)重新調(diào)整超參數(shù)的需要。
圖片
圖 6. 常規(guī)微調(diào)和 LoRA 圖示
如圖 6,r 是超參數(shù),指定用于自適應(yīng)的低秩矩陣的秩。r 越小,低秩矩陣越簡(jiǎn)單,在自適應(yīng)過程中需要學(xué)習(xí)的參數(shù)越少,訓(xùn)練就更快,計(jì)算需求會(huì)相應(yīng)的減少。然而,r 變小的弊端是,低秩矩陣捕獲任務(wù)特定信息的能力降低。這可能導(dǎo)致較低的自適應(yīng)質(zhì)量,并且與較高的 r 相比,模型在新任務(wù)上可能表現(xiàn)不佳??傊?,在 LoRA 中確定 r 的取值,需要在模型復(fù)雜性、自適應(yīng)能力和擬合不足或擬合過度的風(fēng)險(xiǎn)之間進(jìn)行權(quán)衡。因此,重要的是用不同的 r 值進(jìn)行實(shí)驗(yàn),以找到正確的平衡,從而在新任務(wù)中滿足所需的性能。
矩陣秩 (r) 可以非常低,比如對(duì)于 GPT-3 175B 模型,rank-1 或 rank-2 就能基本對(duì)齊原始 rank-12288 的效果:
- 與 Adam 微調(diào)的 GPT-3 175B 相比,LoRA 可訓(xùn)練參數(shù)數(shù)量減少了 1 萬倍,GPU 內(nèi)存需求減少了 3 倍
- 在 RoBERTa、DeBERTa、GPT-2 和 GPT-3 等大語言模型上,LoRA 在模型質(zhì)量方面的表現(xiàn)與微調(diào)相當(dāng)或更好,盡管它具有更少的可訓(xùn)練參數(shù)、更高的訓(xùn)練吞吐量,并且與適配器不同,沒有額外的推斷延遲
3.4 相關(guān)硬件基礎(chǔ)
最后,我們來看看硬件方面的工作。
Grace Hopper 是第九代英偉達(dá)數(shù)據(jù)中心 GPU,與前幾代英偉達(dá)安培 GPU 相比,旨在為大規(guī)模 AI 和 HPC 應(yīng)用提供數(shù)量級(jí)的改進(jìn)。線程塊集群和線程塊重新配置改善了空間和時(shí)間上的數(shù)據(jù)定位,再加上新的異步執(zhí)行引擎,使應(yīng)用程序能夠始終保持所有單元的忙碌。NVIDIA Grace Hopper 通過 NVIDIA NVLink C2C 將 NVIDIA Grace CPU 和 NVIDIA Hopper GPU 融合到一個(gè)超級(jí)芯片中,NVLink C2C 是一個(gè)總帶寬為 900 GB/s 的芯片間互連。NVLink C2C 內(nèi)存一致性使得 Grace CPU 超級(jí)芯片和 Grace Hopper 超級(jí)芯片都可以通過統(tǒng)一的編程模型進(jìn)行編程。
圖片
圖 7. 英偉達(dá) Grace Hopper 超級(jí)芯片邏輯概覽
2023 年 6 月,英偉達(dá)宣布其新的 GH200 Grace Hopper "超級(jí)芯片"— 專門為大規(guī)模人工智能應(yīng)用創(chuàng)建的 CPU 和 GPU 組合 — 已經(jīng)進(jìn)入全面生產(chǎn)。它有 528 個(gè) GPU 張量核心,支持高達(dá) 480GB 的 CPU 內(nèi)存和 96GB 的 GPU 內(nèi)存,并擁有高達(dá) 4TB / 秒的 GPU 內(nèi)存帶寬。
圖片
圖 8. 英偉達(dá)的 GH200 "Grace Hopper"AI 超級(jí)芯片 [5]
GH200 以 "Hopper" 為基礎(chǔ),與 Nvidia 的 "Grace"CPU 平臺(tái)(兩者均以計(jì)算機(jī)先驅(qū) Grace Hopper 命名)相結(jié)合,通過 Nvidia 的 NVLink 芯片對(duì)芯片(C2C)互連技術(shù)將其納入一個(gè)芯片。Nvidia 預(yù)計(jì),這一組合將極大地加速人工智能和機(jī)器學(xué)習(xí)應(yīng)用的訓(xùn)練(創(chuàng)建模型)和推理(運(yùn)行模型)。
"生成式人工智能正在迅速改變企業(yè),在醫(yī)療、金融、商業(yè)服務(wù)和更多行業(yè)釋放新的機(jī)會(huì)并加速發(fā)現(xiàn),"Nvidia 加速計(jì)算副總裁 Ian Buck 在一份新聞稿中說。"隨著 Grace Hopper 超級(jí)芯片的全面生產(chǎn),全球制造商將很快提供企業(yè)所需的加速基礎(chǔ)設(shè)施,以建立和部署利用其獨(dú)特的專有數(shù)據(jù)的生成式人工智能應(yīng)用程序。" 據(jù)該公司稱,GH200 的主要特點(diǎn)包括一個(gè)新的 900GB/s 相干(共享)內(nèi)存接口,比 PCIe Gen5 快 7 倍。GH200 還為 GPU 提供了 30 倍的系統(tǒng)內(nèi)存總帶寬。此外,GH200 可以運(yùn)行所有 Nvidia 軟件平臺(tái),包括 Nvidia HPC SDK、Nvidia AI 和 Nvidia Omniverse。Nvidia 還宣布,它將把這種 CPU/GPU 組合芯片構(gòu)建成一個(gè)新的超級(jí)計(jì)算機(jī),稱為 DGX GH200,它可以利用 256 個(gè) GH200 芯片的綜合能力,作為一個(gè)單一的 GPU 來執(zhí)行,提供 1 exaflop 的性能和 144 兆字節(jié)的共享內(nèi)存,比上一代 Nvidia DGX A100 的內(nèi)存多近 500 倍。DGX GH200 將能夠?yàn)樯烧Z言應(yīng)用、推薦系統(tǒng)和數(shù)據(jù)分析訓(xùn)練巨大的下一代人工智能模型。Nvidia 目前并未公開 DGX GH200 的售價(jià),但如果根據(jù)去年出貨的 DGX H100 作為參考,一臺(tái)搭載 8 組 H100 GPU 的 8U GPU 服務(wù)器機(jī)柜約為 20 萬美元,考慮到 DGX GH200 擁有最多 256 個(gè) Grace Hopper,其價(jià)格可能會(huì)高于這個(gè)范圍。根據(jù) Anandtech 的報(bào)道,一臺(tái) DGX GH200 計(jì)算機(jī)的價(jià)格 "很容易達(dá)到 8 位數(shù)(美元)的水平"。
由于 Nvidia 和 Cerebras 等供應(yīng)商的持續(xù)硬件進(jìn)步,高端云人工智能模型可能會(huì)隨著時(shí)間的推移繼續(xù)變得更有能力,處理更多的數(shù)據(jù),并且比以前做得更快。根據(jù)內(nèi)部測(cè)試,在處理需要大量?jī)?nèi)存的 AI 工作負(fù)載方面,DGX GH200 系統(tǒng)顯示出比 DGX H100 更好表現(xiàn),平均可獲得 2-6 倍不等的性能提升,例如,在使用 1TB 的內(nèi)存容量用于 GPT3 模型訓(xùn)練時(shí),DGX GH200 的處理速度快上 1 倍,若以 40TB 內(nèi)存處理深度學(xué)習(xí)推薦模型(DLRM)時(shí),速度則有多達(dá) 4 倍的提升,甚至在圖神經(jīng)網(wǎng)絡(luò)處理方面速度更快上許多,足足有 5 倍之多。
單純從 GH200 的角度看,能夠在一定程度上支撐對(duì) LLM 的分布式訓(xùn)練,使 FL+LLM 變得更加可行。但是,回到文初我們的討論,F(xiàn)L 的初衷是利用大量分散的一般性設(shè)備分布式訓(xùn)練一個(gè)中央模型,一方面可以有效利用分散的客戶端資源,另一方面也滿足各個(gè)客戶端的數(shù)據(jù)隱私需要。要求這些客戶端都裝有 GH200 顯然是不現(xiàn)實(shí)的,這樣的 GPU 的成本消耗與 FL 的初衷并不一致。
此外,也有一些研究人員認(rèn)為 GH200 自身也不會(huì)對(duì)大模型的應(yīng)用推廣有太大影響 [11]。他們分析,算力層面,單顆 GH 芯片和 H100 芯片 FP8 浮點(diǎn)算力沒有差異。內(nèi)部測(cè)試中 GH200 更好的表現(xiàn)是由于其存儲(chǔ)。DGX GH200 內(nèi)部 GPU 和 CPU 的連接方式與 DGX H100 不同,其高速觸達(dá)的存儲(chǔ)容量可以大幅提升。然而,集群性能的提升主要有算力本身、網(wǎng)絡(luò)、存儲(chǔ)三大要素。因此,傳統(tǒng) GPT3、GPT4 等主流大模型下,DGX H100 集群(NVLink 聯(lián)網(wǎng))與 DGX GH200 系統(tǒng)并不會(huì)有明顯差異。
關(guān)于 H100,已有報(bào)道分析了其大模型訓(xùn)練的性能 [12]。兩項(xiàng) MLPerf 基準(zhǔn)評(píng)測(cè)的最新數(shù)據(jù)中,英偉達(dá) H100 芯片組在人工智能算力表現(xiàn)的測(cè)試中,刷新了所有組別的紀(jì)錄,也是唯一一個(gè)能夠跑完所有測(cè)試的硬件平臺(tái)。英偉達(dá)和 GPU 云算力平臺(tái) CoreWeave 提交的數(shù)據(jù)為這項(xiàng)測(cè)試設(shè)定了業(yè)界標(biāo)準(zhǔn)。在 896 個(gè)英特爾至強(qiáng) 8462Y + 處理器和 3584 個(gè)英偉達(dá) H100 芯片的聯(lián)合作用下,僅僅花了 10.94 分鐘就完成了基于 GPT-3 的大語言模型訓(xùn)練任務(wù)。在 BERT-Large 模型訓(xùn)練中,H100 和 CoreWeave 將數(shù)據(jù)刷到了極端的 0.13 分鐘,在 64 卡的情況下,測(cè)試數(shù)據(jù)也達(dá)到了 0.89 分鐘。
4、后續(xù)發(fā)展討論
我們?cè)谶@篇文章中討論了與 FL+LLM 相關(guān)的一些方法,包括算法方面的改進(jìn)、硬件方面的研發(fā),以及分布式訓(xùn)練和聯(lián)邦學(xué)習(xí)的架構(gòu)。其中,F(xiàn)edLLM 應(yīng)當(dāng)是最符合 FL+LLM 的一篇工作,盡管其距離實(shí)用、技術(shù)完備的 FL+LLM 還有很大差距。
DeepSpeed 是通過分布式訓(xùn)練和混合精度技術(shù)來提高訓(xùn)練速度和節(jié)省資源的模型訓(xùn)練架構(gòu),其面向的是分布式訓(xùn)練的應(yīng)用場(chǎng)景,一般來說,分布式學(xué)習(xí)會(huì)將訓(xùn)練數(shù)據(jù)均勻分布在不同節(jié)點(diǎn),節(jié)點(diǎn)大多是專用機(jī)房中的計(jì)算節(jié)點(diǎn),且節(jié)點(diǎn)通常處于統(tǒng)一地理位置,節(jié)點(diǎn)間通信條件較好。而對(duì)于 FL 來說,每個(gè)計(jì)算節(jié)點(diǎn)擁有的數(shù)據(jù)量與設(shè)備自身有關(guān),很難保證不同計(jì)算節(jié)點(diǎn)擁有相近的數(shù)據(jù)量。此外,F(xiàn)L 的計(jì)算節(jié)點(diǎn)可能是手機(jī)、平板等,一般與中央服務(wù)器處于遠(yuǎn)程連接狀態(tài),連接穩(wěn)定性和通信代價(jià)的情況都比較差。所以目前 DeepSpeed 的工作直接應(yīng)用到 FL+LLM 中還有很大難度。
LoRA 是目前非常流行的微調(diào)方法,更多優(yōu)秀的微調(diào)方法也在不斷提出。算法上的改進(jìn),給 FL 各個(gè)客戶端節(jié)點(diǎn)基于本地?cái)?shù)據(jù)訓(xùn)練模型帶來了可能。而硬件目前的發(fā)展我們?cè)谇懊嬉灿懻撨^,硬件自身的性能在不斷提高,但對(duì)于 FL 這個(gè)應(yīng)用場(chǎng)景來說,令手機(jī)、平板具備這樣的硬件條件難度非常大。
由對(duì)目前與 FL+LLM 相關(guān)的一些工作的分析,我們感覺聯(lián)邦學(xué)習(xí)支撐 LLM 還有很多需要解決的問題。包括 FedLLM,實(shí)際上也沒有談及如何應(yīng)對(duì)存儲(chǔ)容量小、處理性能差、網(wǎng)絡(luò)條件不佳的客戶端設(shè)備,而這些,恰好是 FL 最典型的應(yīng)用場(chǎng)景。我們期待有更多的研究人員可以關(guān)注 FL+LLM 問題,給出更多的技術(shù)細(xì)節(jié)和可落地的解決方案。
作者介紹
Jiying,工學(xué)博士,畢業(yè)于北京交通大學(xué),曾分別于香港中文大學(xué)和香港科技大學(xué)擔(dān)任助理研究員和研究助理,現(xiàn)從事電子政務(wù)領(lǐng)域信息化新技術(shù)研究工作。主要研究方向?yàn)槟J阶R(shí)別、計(jì)算機(jī)視覺,愛好科研,希望能保持學(xué)習(xí)、不斷進(jìn)步。