RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

NVIDIA FasterTransformer庫的概述及好處

NVIDIA英偉達(dá) ? 來源:NVIDIA英偉達(dá) ? 作者:NVIDIA英偉達(dá) ? 2022-08-31 09:30 ? 次閱讀

fd406bce-2852-11ed-ba43-dac502259ad0.jpg

這是討論 NVIDIA FasterTransformer 庫的兩部分系列的第一部分,該庫是用于對任意大?。ǘ噙_(dá)數(shù)萬億個參數(shù))的 Transformer 進(jìn)行分布式推理的最快庫之一。它提供了 FasterTransformer 的概述,包括使用該庫的好處。

使用 FasterTransformer 和 Triton 推理服務(wù)器部署 GPT-J 和 T5(第 2 部分)是一個指南,說明了使用 FasterTransformer 庫和 Triton 推理服務(wù)器以具有張量并行性的最佳方式為 T5-3B 和 GPT-J 6B 模型提供服務(wù)。

Transformers 是當(dāng)今最具影響力的 AI 模型架構(gòu)之一,正在塑造未來 AI 研發(fā)的方向。它們最初是作為自然語言處理 (NLP) 的工具而發(fā)明的,現(xiàn)在幾乎用于任何 AI 任務(wù),包括計(jì)算機(jī)視覺、自動語音識別、分子結(jié)構(gòu)分類和金融數(shù)據(jù)處理。考慮到如此廣泛使用的是注意力機(jī)制,它顯著提高了模型的計(jì)算效率、質(zhì)量和準(zhǔn)確性。

具有數(shù)千億參數(shù)的大型基于 Transformer 的模型的行為就像一個巨大的百科全書和大腦,其中包含有關(guān)它所學(xué)到的一切的信息。他們以獨(dú)特的方式對所有這些知識進(jìn)行結(jié)構(gòu)化、表示和總結(jié)。擁有具有大量先驗(yàn)知識的此類模型使我們能夠使用新的強(qiáng)大的一次性或少量學(xué)習(xí)技術(shù)來解決許多 NLP 任務(wù)。

由于它們的計(jì)算效率,Transformer 可以很好地?cái)U(kuò)展——通過增加網(wǎng)絡(luò)的規(guī)模和訓(xùn)練數(shù)據(jù)的數(shù)量,研究人員可以改善觀察并提高準(zhǔn)確性。

然而,訓(xùn)練如此大的模型并非易事。這些模型可能需要比一個 GPU 供應(yīng)更多的內(nèi)存——甚至是數(shù)百個 GPU。值得慶幸的是,NVIDIA 研究人員已經(jīng)創(chuàng)建了強(qiáng)大的開源工具,例如 NeMo Megatron,可以優(yōu)化訓(xùn)練過程。

快速和優(yōu)化的推理使企業(yè)能夠充分發(fā)揮這些大型模型的潛力。最新研究表明,增加模型和數(shù)據(jù)集的大小可以提高這種模型在不同領(lǐng)域(NLP、CV 等)下游任務(wù)上的質(zhì)量。

同時(shí),數(shù)據(jù)表明這種技術(shù)也適用于多域任務(wù)。(例如,參見 OpenAI 的 DALLE-2 和 Google 的 Imagen 等關(guān)于文本到圖像生成的研究論文。)依賴于大型模型的“凍結(jié)”拷貝的 p-tuning 等研究方向甚至增加了擁有穩(wěn)定且優(yōu)化的推理流程。此類大型模型的優(yōu)化推理需要分布式多 GPU 多節(jié)點(diǎn)解決方案。

用于加速推斷大型 Transformer 的庫

NVIDIA FasterTransformer (FT) 是一個庫,用于實(shí)現(xiàn)基于 Transformer 的神經(jīng)網(wǎng)絡(luò)推理的加速引擎,特別強(qiáng)調(diào)大型模型,以分布式方式跨越許多 GPU 和節(jié)點(diǎn)。

FasterTransformer 包含 Transformer 塊的高度優(yōu)化版本的實(shí)現(xiàn),其中包含編碼器和解碼器部分。

使用此模塊,您可以運(yùn)行完整的編碼器-解碼器架構(gòu)(如 T5)以及僅編碼器模型(如 BERT)或僅解碼器模型(如 GPT)的推理。它是用 C++/CUDA 編寫的,依賴于高度優(yōu)化的 cuBLAS、cuBLASLt 和 cuSPARSELt 庫。這使您可以在 GPU 上構(gòu)建最快的 Transformer 推理流程。

fd57050a-2852-11ed-ba43-dac502259ad0.jpg

圖 1.使用張量并行(張量 MP 分區(qū))和管道并行(管道 MP 分區(qū)),在四個 GPU 之間分布了幾個 transformer / attention 塊

與 NVIDIA TensorRT 等其他編譯器相比,F(xiàn)T 的顯著特點(diǎn)是它支持以分布式方式推斷大型 Transformer 模型。

上圖顯示了如何使用張量并行 (TP) 和流水線并行 (PP) 技術(shù)將具有多個經(jīng)典 transformer/attention 的神經(jīng)網(wǎng)絡(luò)拆分到多個 GPU 和節(jié)點(diǎn)上。

當(dāng)每個張量被分成多個塊時(shí),就會發(fā)生張量并行性,并且張量的每個塊都可以放置在單獨(dú)的 GPU 上。在計(jì)算過程中,每個塊在不同的 GPU 上單獨(dú)并行處理,并且可以通過組合來自多個 GPU 的結(jié)果來計(jì)算結(jié)果(最終張量)。

當(dāng)模型被深度拆分并將不同的完整層放置到不同的 GPU/節(jié)點(diǎn)上時(shí),就會發(fā)生流水線并行。

在底層,啟用節(jié)點(diǎn)間/節(jié)點(diǎn)內(nèi)通信依賴于 MPI 和 NVIDIA NCCL。使用此軟件堆棧,您可以在多個 GPU 上以張量并行模式運(yùn)行大型 Transformer,以減少計(jì)算延遲。

同時(shí),TP 和 PP 可以結(jié)合在一起,在多 GPU 和多節(jié)點(diǎn)環(huán)境中運(yùn)行具有數(shù)十億和數(shù)萬億個參數(shù)(相當(dāng)于 TB 級權(quán)重)的大型 Transformer 模型。

除了 C 中的源代碼,F(xiàn)asterTransformer 還提供 TensorFlow 集成(使用 TensorFlow 操作)、PyTorch 集成(使用 PyTorch 操作)和 Triton 集成作為后端。

目前,TensorFlow op 僅支持單 GPU,而 PyTorch op 和 Triton 后端都支持多 GPU 和多節(jié)點(diǎn)。

為了避免為模型并行性而拆分模型的額外工作,F(xiàn)asterTransformer 還提供了一個工具,用于將模型從不同格式拆分和轉(zhuǎn)換為 FasterTransformer 二進(jìn)制文件格式。然后 FasterTransformer 可以直接以二進(jìn)制格式加載模型。

目前,F(xiàn)T 支持 Megatron-LM GPT-3、GPT-J、BERT、ViT、Swin Transformer、Longformer、T5 和 XLNet 等模型。您可以在 GitHub 上的 FasterTransformer 存儲庫中查看最新的支持矩陣。

FT 適用于計(jì)算能力 >= 7.0 的 GPU,例如 V100、A10、A100 等。

fd68a7ba-2852-11ed-ba43-dac502259ad0.jpg

圖 2.GPT-J 6B 模型推斷和加速比較

FasterTransformer 中的優(yōu)化

深度學(xué)習(xí)訓(xùn)練的通用框架相比,F(xiàn)T 使您能夠獲得更快的推理管道,并且基于 Transformer 的 NN 具有更低的延遲和更高的吞吐量。

允許 FT 對 GPT-3 和其他大型 Transformer 模型進(jìn)行最快推理的一些優(yōu)化技術(shù)包括:

層融合——預(yù)處理階段的一組技術(shù),將多層神經(jīng)網(wǎng)絡(luò)組合成一個單一的神經(jīng)網(wǎng)絡(luò),將使用一個單一的內(nèi)核進(jìn)行計(jì)算。這種技術(shù)減少了數(shù)據(jù)傳輸并增加了數(shù)學(xué)密度,從而加速了推理階段的計(jì)算。例如,multi-head attention 塊中的所有操作都可以合并到一個內(nèi)核中。

fd79732e-2852-11ed-ba43-dac502259ad0.jpg

圖 3. NVIDIA Faster transformer 庫中緩存機(jī)制的演示

自回歸模型/激活緩存的推理優(yōu)化

為了防止通過 Transformer 重新計(jì)算每個新 token 生成器的先前鍵和值,F(xiàn)T 分配一個緩沖區(qū)來在每一步存儲它們。

雖然需要一些額外的內(nèi)存使用,但 FT 可以節(jié)省重新計(jì)算的成本、在每一步分配緩沖區(qū)以及連接的成本。該過程的方案上圖 所示。相同的緩存機(jī)制用于 NN 的多個部分。

內(nèi)存優(yōu)化

與 BERT 等傳統(tǒng)模型不同,大型 Transformer 模型具有多達(dá)數(shù)萬億個參數(shù),占用數(shù)百 GB 存儲空間。即使我們以半精度存儲模型,GPT-3 175b 也需要 350 GB。因此有必要減少其他部分的內(nèi)存使用。

例如,在 FasterTransformer 中,我們在不同的解碼器層重用了激活/輸出的內(nèi)存緩沖區(qū)。由于 GPT-3 中的層數(shù)為 96,因此我們只需要 1/96 的內(nèi)存量用于激活。

使用 MPI 和 NCCL 實(shí)現(xiàn)節(jié)點(diǎn)間/節(jié)點(diǎn)內(nèi)通信并支持模型并行性

在 GPT 模型中,F(xiàn)asterTransormer 同時(shí)提供張量并行和流水線并行。對于張量并行性,F(xiàn)asterTransformer 遵循了 Megatron 的思想。對于自注意力塊和前饋網(wǎng)絡(luò)塊,F(xiàn)T 按行拆分第一個矩陣的權(quán)重,并按列拆分第二個矩陣的權(quán)重。通過優(yōu)化,F(xiàn)T 可以將每個 Transformer 塊的歸約操作減少到兩倍。

對于流程并行性,F(xiàn)asterTransformer 將整批請求拆分為多個微批,隱藏了通信的泡沫。FasterTransformer 會針對不同情況自動調(diào)整微批量大小。

MatMul 內(nèi)核自動調(diào)整(GEMM 自動調(diào)整)

矩陣乘法是基于 Transformer 的神經(jīng)網(wǎng)絡(luò)中主要和最繁重的操作。FT 使用來自 CuBLAS 和 CuTLASS 庫的功能來執(zhí)行這些類型的操作。重要的是要知道 MatMul 操作可以在“硬件”級別使用不同的低級算法以數(shù)十種不同的方式執(zhí)行。

GemmBatchedEx 函數(shù)實(shí)現(xiàn) MatMul 操作,并以“cublasGemmAlgo_t”作為輸入?yún)?shù)。使用此參數(shù),您可以選擇不同的底層算法進(jìn)行操作。

FasterTransformer 庫使用此參數(shù)對所有底層算法進(jìn)行實(shí)時(shí)基準(zhǔn)測試,并為模型的參數(shù)和您的輸入數(shù)據(jù)(注意層的大小、注意頭的數(shù)量、隱藏層的大?。┻x擇最佳的一個。此外,F(xiàn)T 對網(wǎng)絡(luò)的某些部分使用硬件加速的底層函數(shù),例如 __expf、__shfl_xor_sync。

精度較低的推理

FT 的內(nèi)核支持使用 fp16 和 int8 中的低精度輸入數(shù)據(jù)進(jìn)行推理。由于較少的數(shù)據(jù)傳輸量和所需的內(nèi)存,這兩種機(jī)制都允許加速。同時(shí),int8 和 fp16 計(jì)算可以在特殊硬件上執(zhí)行,例如張 Tensor Core(適用于從 Volta 開始的所有 GPU 架構(gòu)),以及即將推出的 Hopper GPU 中的 Transformer 引擎。

更多

快速的 C++ BeamSearch 實(shí)現(xiàn)
針對 TensorParallelism 8 模式優(yōu)化 all-reduce 當(dāng)模型的權(quán)重部分在 8 個 GPU 之間拆分時(shí)
具有 FasterTransformer 后端的 NVIDIA Triton 推理服務(wù)器

NVIDIA Triton 推理服務(wù)器是一款開源推理服務(wù)軟件,有助于標(biāo)準(zhǔn)化模型部署和執(zhí)行,在生產(chǎn)中提供快速且可擴(kuò)展的 AI。Triton 穩(wěn)定且快速,允許您使用準(zhǔn)備好的 Docker 容器以簡單的方式運(yùn)行 ML/DL 模型的推理,該容器僅使用一行代碼和簡單的類似 JSON 的配置。

Triton 支持使用多個后端的模型,例如 PyTorch、TorchScript、Tensorflow、ONNXRuntime 和 OpenVINO。Triton 采用您在其中一個框架中訓(xùn)練的導(dǎo)出模型,并使用相應(yīng)的后端為您透明地運(yùn)行該模型進(jìn)行推理。它也可以使用自定義后端進(jìn)行擴(kuò)展。Triton 使用 HTTP/gRPC API 包裝您的模型,并為多種語言提供客戶端庫。

fd8a9794-2852-11ed-ba43-dac502259ad0.jpg

圖 4. Triton 推理服務(wù)器,具有多個后端,用于對使用不同框架訓(xùn)練的模型進(jìn)行推理

Triton 包含 FasterTransformer 庫作為后端(圖 4),該庫支持使用 TP 和 PP 運(yùn)行大型 Transformer 模型的分布式多 GPU、多節(jié)點(diǎn)推理。今天,帶有 FasterTransformer 后端的 Triton 支持 GPT-J、GPT-Megatron 和 T5 模型。

有關(guān)演示使用 NVIDIA Triton 和 NVIDIA FasterTransformer 在優(yōu)化推理中運(yùn)行 T5-3B 和 GPT-J 6B 模型的過程的指南,請參閱使用 FasterTransformer 和 Triton 推理服務(wù)器部署 GPT-J 和 T5。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    4978

    瀏覽量

    102984
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9123

    瀏覽量

    85322
  • Triton
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    7033

原文標(biāo)題:使用 FasterTransformer 和 Triton 推理服務(wù)器加速大型 Transformer 模型的推理

文章出處:【微信號:NVIDIA_China,微信公眾號:NVIDIA英偉達(dá)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    解鎖NVIDIA TensorRT-LLM的卓越性能

    NVIDIA TensorRT-LLM 是一個專為優(yōu)化大語言模型 (LLM) 推理而設(shè)計(jì)的。它提供了多種先進(jìn)的優(yōu)化技術(shù),包括自定義 Attention Kernel、Inflight
    的頭像 發(fā)表于 12-17 17:47 ?115次閱讀

    NVIDIA DOCA 2.9版本的亮點(diǎn)解析

    NVIDIA DOCA通過為開發(fā)者提供全面的軟件框架以利用硬件加速來增強(qiáng) NVIDIA 網(wǎng)絡(luò)平臺的功能,從而提高性能、安全性和效率。其 API、和工具生態(tài)系統(tǒng)簡化了數(shù)據(jù)中心基礎(chǔ)設(shè)施的開發(fā),實(shí)現(xiàn)了工作負(fù)載卸載、加速和隔離,以支持
    的頭像 發(fā)表于 11-27 11:15 ?294次閱讀
    <b class='flag-5'>NVIDIA</b> DOCA 2.9版本的亮點(diǎn)解析

    NVIDIA發(fā)布cuPyNumeric加速計(jì)算

    該加速計(jì)算幫助科研人員無縫地?cái)U(kuò)展到強(qiáng)大的計(jì)算集群,并且無需修改 Python 代碼,推進(jìn)科學(xué)發(fā)現(xiàn)。
    的頭像 發(fā)表于 11-21 10:05 ?245次閱讀

    簡單認(rèn)識NVIDIA網(wǎng)絡(luò)平臺

    NVIDIA Spectrum-X800 平臺是業(yè)界第一代 800Gb/s 的以太網(wǎng)網(wǎng)絡(luò)平臺,包括了 NVIDIA Spectrum SN5600 800Gb/s 以太網(wǎng)交換機(jī)和 NVIDIA
    的頭像 發(fā)表于 09-09 09:22 ?425次閱讀

    IB Verbs和NVIDIA DOCA GPUNetIO性能測試

    NVIDIA DOCA GPUNetIO 是 NVIDIA DOCA SDK 中的一個,專門為實(shí)時(shí)在線 GPU 數(shù)據(jù)包處理而設(shè)計(jì)。它結(jié)合了 GPUDirect RDMA 和 GPUDirect
    的頭像 發(fā)表于 08-23 17:03 ?582次閱讀
    IB Verbs和<b class='flag-5'>NVIDIA</b> DOCA GPUNetIO性能測試

    溫度振動變送器的概述及功能介紹

    制造業(yè)還是戰(zhàn)略性新型產(chǎn)業(yè)都離不開溫度振動變送器的支持。 一、溫度振動變送器的概述 溫度振動變送器集成了溫度傳感技術(shù)和振動傳感技術(shù),可以測量工業(yè)設(shè)備的振動速度、表面溫度等參數(shù)。溫度振動變送器具有MEMS 芯片,采用嵌入式技
    的頭像 發(fā)表于 08-20 17:18 ?499次閱讀

    行程開關(guān)概述及應(yīng)用介紹

    一、行程開關(guān)概述 行程開關(guān),作為位置開關(guān)(限位開關(guān))的一種,是廣泛應(yīng)用于小電流環(huán)境中的主要控制電器。它通過機(jī)械運(yùn)動部件的觸發(fā)來實(shí)現(xiàn)觸點(diǎn)的接通或斷開,進(jìn)而控制電路,以實(shí)現(xiàn)特定的控制目標(biāo)。這種開關(guān)機(jī)
    的頭像 發(fā)表于 08-16 17:31 ?987次閱讀

    深度神經(jīng)網(wǎng)絡(luò)概述及其應(yīng)用

    通過模仿人類大腦神經(jīng)元的連接方式和處理機(jī)制,設(shè)計(jì)多層神經(jīng)元結(jié)構(gòu)來處理復(fù)雜的數(shù)據(jù)模式,從而在各種數(shù)據(jù)驅(qū)動的問題中展現(xiàn)出強(qiáng)大的能力。本文將從深度神經(jīng)網(wǎng)絡(luò)的基本概念、結(jié)構(gòu)、工作原理、關(guān)鍵技術(shù)以及其在多個領(lǐng)域的應(yīng)用等方面進(jìn)行全面概述。
    的頭像 發(fā)表于 07-04 16:08 ?927次閱讀

    NVIDIA 通過 Holoscan 為 NVIDIA IGX 提供企業(yè)軟件支持

    美敦力、SETI 協(xié)會以及領(lǐng)先制造商正在構(gòu)建 NVIDIA IGX 系統(tǒng),為 AI 在工業(yè)邊緣賦能。 ? NVIDIA 于6月2日宣布,集成NVIDIA Holoscan的NVIDIA
    的頭像 發(fā)表于 06-04 10:21 ?497次閱讀

    借助NVIDIA DOCA 2.7增強(qiáng)AI 云數(shù)據(jù)中心和NVIDIA Spectrum-X

    NVIDIA DOCA 加速框架為開發(fā)者提供了豐富的、驅(qū)動和 API,以便為 NVIDIA BlueField DPU 和 SuperNIC 創(chuàng)建高性能的應(yīng)用程序和服務(wù)。
    的頭像 發(fā)表于 05-29 09:22 ?486次閱讀

    利用NVIDIA的nvJPEG2000分析DICOM醫(yī)學(xué)影像的解碼功能

    本文將深入分析 DICOM 醫(yī)學(xué)影像的解碼功能。AWS HealthImaging 利用 NVIDIA 的 nvJPEG2000 來實(shí)現(xiàn)此功能。
    的頭像 發(fā)表于 05-28 14:27 ?784次閱讀
    利用<b class='flag-5'>NVIDIA</b>的nvJPEG2000<b class='flag-5'>庫</b>分析DICOM醫(yī)學(xué)影像的解碼功能

    NVIDIA加速微軟最新的Phi-3 Mini開源語言模型

    NVIDIA 宣布使用 NVIDIA TensorRT-LLM 加速微軟最新的 Phi-3 Mini 開源語言模型。TensorRT-LLM 是一個開源,用于優(yōu)化從 PC 到云端的 NVID
    的頭像 發(fā)表于 04-28 10:36 ?547次閱讀

    NVIDIA深度參與GTC,向量數(shù)據(jù)大廠Zilliz與全球頂尖開發(fā)者共迎AI變革時(shí)刻

    近日,備受關(guān)注的 NVIDIA GTC 已拉開序幕。來自世界各地的頂尖 AI 開發(fā)者齊聚美國加州圣何塞會議中心,共同探索行業(yè)未來,全球領(lǐng)先的向量數(shù)據(jù)公司 Zilliz 也不例外。作為去年被
    的頭像 發(fā)表于 03-26 11:01 ?407次閱讀

    光伏逆變器拓?fù)?b class='flag-5'>概述及關(guān)鍵技術(shù)

    光伏逆變器拓?fù)?b class='flag-5'>概述及關(guān)鍵技術(shù)
    的頭像 發(fā)表于 02-21 09:47 ?794次閱讀
    光伏逆變器拓?fù)?b class='flag-5'>概述及</b>關(guān)鍵技術(shù)

    Omniverse Nucleus概述及特征

    NVIDIA Omniverse? Nucleus 是 NVIDIA Omniverse 的數(shù)據(jù)和協(xié)作引擎。
    的頭像 發(fā)表于 01-17 09:22 ?795次閱讀
    Omniverse Nucleus<b class='flag-5'>概述及</b>特征
    RM新时代网站-首页