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

推理加速GPT-3超越英偉達(dá)方案50%!大模型推理系統(tǒng)Energon-AI開源

人工智能 新聞
大規(guī)模并行AI訓(xùn)練系統(tǒng)Colossal-AI團(tuán)隊提出了大模型推理系統(tǒng)Energon-AI。

本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。

在前沿AI大模型規(guī)模呈指數(shù)級增長的趨勢下,僅憑單卡已經(jīng)很難滿足當(dāng)下的推理需求。

就拿擁有1750億參數(shù)的GPT-3來說。

僅僅是加載模型參數(shù)就需要數(shù)百GB的存儲空間,遠(yuǎn)超單個GPU的容納能力。

因此,多卡并行被視為AI大模型推理的必然選擇。

推理加速GPT-3超越英偉達(dá)方案50%!大模型推理系統(tǒng)Energon-AI開源

但現(xiàn)有的推理系統(tǒng)仍舊存在不少弊端。

比如需要用戶對通信、內(nèi)存等各部分協(xié)作進(jìn)行手動管理,需要額外編譯等……導(dǎo)致用戶使用門檻居高不下。

為此,大規(guī)模并行AI訓(xùn)練系統(tǒng)Colossal-AI團(tuán)隊提出了大模型推理系統(tǒng)Energon-AI。

以“高性能、高可用、可伸縮”的理念,深入單實例多設(shè)備推理場景,Energon-AI在性能和易用性上兼具優(yōu)勢。

僅需對現(xiàn)有項目進(jìn)行極少量修改,用戶就能完成自定義大模型的推理部署,獲得并行擴(kuò)展的超線性加速。

對于AI大模型分布式推理加速,相比英偉達(dá)FasterTransformer可提升50%以上。

開源地址:https://github.com/hpcaitech/ColossalAI

AI大模型推理部署的困難

近年來,計算設(shè)備(如GPU)的并行計算能力、內(nèi)存容量,內(nèi)存速度等都得到了極大的增強(qiáng)。

然而,單設(shè)備縱向擴(kuò)展(scale up)的性能增益在面對指數(shù)型增長的模型規(guī)模時,仍難以滿足大模型的內(nèi)存與性能需求。

而當(dāng)前的深度學(xué)習(xí)推理系統(tǒng),主要面向多實例單設(shè)備以及單實例單設(shè)備的簡單推理場景,忽視了AI大模型推理所需要的單實例多設(shè)備的挑戰(zhàn)與機(jī)遇,Energon-AI系統(tǒng)正是為了解決這一痛點而生。

推理加速GPT-3超越英偉達(dá)方案50%!大模型推理系統(tǒng)Energon-AI開源

△模型參數(shù)的迅速增長[https://arxiv.org/abs/2111.14247]

Energon-AI系統(tǒng)設(shè)計

面向AI大模型部署,Colossal-AI團(tuán)隊設(shè)計了單實例多設(shè)備推理系統(tǒng)Energon-AI。

推理加速GPT-3超越英偉達(dá)方案50%!大模型推理系統(tǒng)Energon-AI開源

△Energon-AI超大模型推理系統(tǒng)示意圖

Energon-AI系統(tǒng)設(shè)計分為三個層次,即運行時系統(tǒng)(Runtime)、分布式推理實例(Engine)以及前端服務(wù)系統(tǒng)(Serving):

  • Runtime

在運行時系統(tǒng)設(shè)計過程中,團(tuán)隊發(fā)現(xiàn)當(dāng)模型規(guī)模不斷增大,通用矩陣乘的時間占比逐漸增大。

而訪存密集型算子與Kernel Launch的時間占比則逐漸降低,推理過程進(jìn)一步從訪存密集型向計算密集型方向遷移,TensorRT以及專用推理系統(tǒng)對訪存密集型操作的優(yōu)化效果被極大削減。

Energon-AI Runtime依賴于Colossal-AI實現(xiàn)張量并行,同時設(shè)計了流水線并行包裝方法用于顯存不足的情況。

此外,團(tuán)隊引入了大量推理專用算子及方法。

如面對NLP中輸入變長的特點,引入transpose_padding_rebulid與transpose_padding_remove等算子用以高效支持Encoder和Decoder模型中MLP層的冗余計算消除方法。

  • Engine

單設(shè)備推理中程序有相同的數(shù)據(jù)入口與出口,分布式訓(xùn)練的主要目標(biāo)是模型參數(shù),因此無須對多個進(jìn)程的輸入輸出進(jìn)行管理,而多設(shè)備推理則不同。

團(tuán)隊希望通過良好的封裝使得Engine具有與單設(shè)備推理完全相同的行為。

采用半中心化方法,主進(jìn)程中使用RPC在每個設(shè)備調(diào)用初始化或推理方法,分布式推理就可以得到中心化的控制,同時每個設(shè)備則保有自己的Tensor Parallel與Pipeline Parallel通信邏輯。

同時,團(tuán)隊在每個進(jìn)程中設(shè)計并維護(hù)了分布式消息隊列,用以保證多個進(jìn)程中多線程調(diào)用執(zhí)行的一致性。

  • Serving:

針對用戶請求分散和變長的特點及大模型推理對GPU并行運算的依賴之間的矛盾,Energon-AI引入了動態(tài)Batching機(jī)制。

將請求隊列中的請求按照機(jī)器性能進(jìn)行最優(yōu)打包后,根據(jù)等候時間、batch大小、batch的擴(kuò)展可能性(根據(jù)padding后的句子長度)等挑選優(yōu)先級最高的batch處理。

這樣一來,可以在最大化GPU使用率的同時規(guī)避饑餓問題,減小平均請求時延。

推理加速GPT-3超越英偉達(dá)方案50%!大模型推理系統(tǒng)Energon-AI開源

△Batch管理流程示意圖

性能測試

并行推理超線性擴(kuò)展

推理加速GPT-3超越英偉達(dá)方案50%!大模型推理系統(tǒng)Energon-AI開源

△張量并行可擴(kuò)展性測試結(jié)果展示

硬件環(huán)境:8 * A100 GPU 80GB。

由于單設(shè)備顯存無法滿足GPT-3推理需求,此處為GPT-3 12層的測試結(jié)果,設(shè)置句長為Padding的1/2。

Energon-AI八卡并行推理在Batch Size為32時,相比于單卡Pytorch直接推理,可獲得8.5倍的超線性加速。

運行時推理性能提升50%

推理加速GPT-3超越英偉達(dá)方案50%!大模型推理系統(tǒng)Energon-AI開源

△張量并行運行時系統(tǒng)推理時延對比

硬件環(huán)境:8 * A100 GPU 80GB。

設(shè)置句長為Padding的1/2。GPT-3-24-Layers for TP=2, GPT-3-48-Layers for TP=4。

以高度優(yōu)化的英偉達(dá)FasterTransformer GPT-3作為對比方案。

FasterTransformer在其4.0版本中推出了分布式推理特性,目前支持GPT-3模型的分布式推理,但由于其純C++代碼高度耦合的特點,靈活度與易用性相對較低。

此外,對于NLP推理輸入句長不同的特點,其分布式推理無冗余計算消除功能。

對于GPT-3模型,Energon-AI的運行時系統(tǒng)在Batch Size為1時性能略低于FasterTransformer,而在Batch Size較大時能夠?qū)崿F(xiàn)超過50%的性能提升。

Dynamic Batching吞吐量增加30%

推理加速GPT-3超越英偉達(dá)方案50%!大模型推理系統(tǒng)Energon-AI開源

△Dynamic batching與直接打包batch吞吐量對比

硬件環(huán)境:8 * A100 GPU 80GB。

測試使用的模型為GPT-3, 測試句長為256以內(nèi)隨機(jī)生成,padding策略為batch內(nèi)最長padding。

模擬真實場景下多用戶同時發(fā)送大量變長推理請求的情況,將Energon-AI的動態(tài)batch規(guī)劃方法與傳統(tǒng)的FIFO(先入先出)隊列打包方法進(jìn)行了吞吐量對比。

由于dynamic batching的算法緩解了直接padding造成的大量冗余計算問題,在該策略下dynamic batching的吞吐量實現(xiàn)了34.7%的提升。

易用性

Python
from gpt import gpt3
from gpt_server import launch_engine
# for engine
model_class = gpt3
model_type = "gpt"
host = "127.0.0.1"
port = 29400
half = True
backend = "nccl"
# for parallel
tp_init_size = 4
pp_init_size = 2
# for server
engine_server = launch_engine
server_host = "127.0.0.1"
server_port = 8020
rm_padding = True

Python
energonai service init --config_file=gpt_config.py

在追求性能的同時,Energon-AI希望保持系統(tǒng)使用的靈活度與易用性,用戶僅需自定義并行模型、并行參數(shù)以及服務(wù)請求邏輯加入到配置文件中,即可啟動推理服務(wù)。

目前,已經(jīng)提供了最常見的GPT、BERT和ViT模型作為示例,更詳盡的教程將會在近期完善。

在構(gòu)建新的并行模型時,Energon-AI使用Python,且使用方式與Pytorch相似,有層的概念且初始化與執(zhí)行邏輯清晰,用戶無需考慮內(nèi)存管理,并行通信等行為。

如下代碼展示了兩層Linear層組成的模型并行運行的完整代碼。

Python
class MLP(nn.Module):
def __init__(self, dim, dtype, bias):
super().__init__()
self.dense_0 = Linear1D_Col(dim, dim, dtype=dtype, bias=bias, gather_output=False)
self.dense_1 = Linear1D_Row(dim, dim, dtype=dtype, bias=bias, parallel_input=True)
def forward(self, x):
x = self.dense_0(x)
x = self.dense_1(x)
return x

與之相對,在構(gòu)建新的并行模型時,F(xiàn)asterTransformer需要使用C++代碼并且需要用戶自行進(jìn)行內(nèi)存管理,定義通信等底層行為組織。

受篇幅限制,如下代碼展示兩層Linear層模型并行運行的內(nèi)存管理,具體執(zhí)行,通信的部分代碼。

除此之外,用戶想要代碼正確執(zhí)行,還需要花費大量時間精力對內(nèi)存管理、執(zhí)行邏輯、通信行為之間的配合進(jìn)行調(diào)試,C++代碼還需要額外編譯工作。

這些都對用戶的并行知識與編程能力提出了嚴(yán)峻挑戰(zhàn)。

C++
// Memory Allocation (only for a single paramerter).
T *d_inter_kernel = NULL
param_.ffn.intermediate_weight.kernel = d_inter_kernel;
device_malloc(&d_inter_kernel, dim * dim);
// Two MLP Layers
cublasMM_cublasLtMM_wrapper(param_.cublaslt_handle, param_.cublas_handle, CUBLAS_OP_N, CUBLAS_OP_N, n, m, k, &alpha, param_.ffn.intermediate_weight.kernel, AType_, n, attr_matmul_buf_, BType_, k, &beta, (DataType_ *)inter_matmul_buf_, CType_, n, param_.stream, cublasAlgoMap_, sm_, cublas_workspace_);
add_bias_act_kernelLauncher<DataType_>(inter_matmul_buf_, param_.ffn.intermediate_weight.bias, m, n, ActivationType::GELU, param_.stream);
n = k;
cublasMM_cublasLtMM_wrapper(param_.cublaslt_handle, param_.cublas_handle, CUBLAS_OP_N, CUBLAS_OP_N, n, m, k, &alpha, param_.ffn.output_weight.kernel, AType_, n, inter_matmul_buf_, BType_, k, &beta, (DataType_ *)(param_.transformer_out), CType_, n, param_.stream, cublasAlgoMap_, sm_, cublas_workspace_);
add_bias_input_layernorm_kernelLauncher<DataType_>(param_.transformer_out, attr_matmul_buf_, param_.ffn.output_weight.bias, param_.ffn_layernorm.gamma, param_.ffn_layernorm.beta, m, n, param_.stream);
// Communication
if(t_parallel_param_.world_size > 1)
{
all2all_gather(nccl_logits_buf_, nccl_logits_buf_, local_batch * n, t_parallel_param_, decoding_params.stream);
}

更多特性

本次發(fā)布的Energon-AI子系統(tǒng)為beta版,近期會根據(jù)用戶反饋與既定計劃,進(jìn)行密集的迭代更新,盡早為用戶提供正式版,充分滿足用戶的不同推理部署需求,歡迎向Energon-AI提出您的需求與建議。

構(gòu)建AI大模型生態(tài)系統(tǒng)

面對AI大模型的時代浪潮,除了本次新增的推理部署特性,針對現(xiàn)有大模型訓(xùn)練方案并行維度有限、效率不高、通用性差、部署困難、缺乏維護(hù)等痛點,Colossal-AI通過高效多維并行和異構(gòu)并行等技術(shù),讓用戶僅需極少量修改,即可高效快速部署AI大模型訓(xùn)練

例如對于GPT-3這樣的超大AI模型,相比英偉達(dá)方案,Colossal-AI僅需一半的計算資源,即可啟動訓(xùn)練;若使用相同計算資源,則能提速11%,可降低GPT-3訓(xùn)練成本超百萬美元。

推理加速GPT-3超越英偉達(dá)方案50%!大模型推理系統(tǒng)Energon-AI開源

對于蛋白質(zhì)結(jié)構(gòu)預(yù)測應(yīng)用AlphaFold,基于Colossal-AI的加速方案的FastFold,成功超越谷歌和哥倫比亞大學(xué)的方案,將AlphaFold訓(xùn)練時間從11天減少到67小時。

且總成本更低,在長序列推理中也實現(xiàn)9.3~11.6倍的速度提升。

推理加速GPT-3超越英偉達(dá)方案50%!大模型推理系統(tǒng)Energon-AI開源

Colossal-AI兼容低端設(shè)備,在僅有一塊GPU的個人PC上便能訓(xùn)練高達(dá)180億參數(shù)GPT;普通的筆記本電腦,也能訓(xùn)練十幾億參數(shù)的模型。

相比現(xiàn)有主流方案,可提升參數(shù)容量十余倍,大幅度降低了AI大模型微調(diào)和推理等下游任務(wù)和應(yīng)用部署的門檻。

推理加速GPT-3超越英偉達(dá)方案50%!大模型推理系統(tǒng)Energon-AI開源

Colossal-AI注重開源社區(qū)建設(shè),提供中文教程,開放用戶社群及論壇,對于用戶反饋進(jìn)行高效交流與迭代更新,不斷添加等前沿特性。

自開源以來,Colossal-AI已經(jīng)多次登上GitHub熱榜Python方向世界第一,與眾多已有數(shù)萬star的明星開源項目一起受到海內(nèi)外關(guān)注!

推理加速GPT-3超越英偉達(dá)方案50%!大模型推理系統(tǒng)Energon-AI開源

在反映機(jī)器學(xué)習(xí)領(lǐng)域熱點的Papers With Code網(wǎng)站上,Colossal-AI也廣受關(guān)注,登上熱榜第一。

推理加速GPT-3超越英偉達(dá)方案50%!大模型推理系統(tǒng)Energon-AI開源

傳送門

GitHub地址:

https://github.com/hpcaitech/ColossalAI

責(zé)任編輯:張燕妮 來源: 量子位
相關(guān)推薦

2023-01-05 09:33:37

視覺模型訓(xùn)練

2025-01-15 10:28:21

2024-10-18 14:46:51

2024-07-19 09:59:31

2024-09-09 08:31:15

2022-04-12 14:12:43

谷歌研究模型

2024-01-24 13:11:00

AI模型

2021-03-23 15:21:00

人工智能機(jī)器學(xué)習(xí)技術(shù)

2023-09-11 12:58:00

AI訓(xùn)練

2024-09-09 16:22:51

2023-11-19 23:36:50

2023-09-14 13:23:00

AI芯片

2024-10-21 12:30:52

2023-05-15 15:38:59

AI模型

2021-07-19 10:56:36

GPE-3OpenAI微軟

2025-01-08 13:15:02

2025-03-19 10:10:43

2024-04-10 09:28:23

2024-10-12 10:57:39

點贊
收藏

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