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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用NVIDIA TensorRT優(yōu)化T5和GPT-2

星星科技指導員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-03-31 17:25 ? 次閱讀

這個transformer 體系結構完全改變了(雙關語)自然語言處理( NLP )的領域。近年來,在 transformer 構建塊 BERT 、 GPT 和 T5 上構建了許多新穎的網絡體系結構。隨著品種的增加,這些型號的尺寸也迅速增加。

雖然較大的神經語言模型通常會產生更好的結果,但將它們部署到生產環(huán)境中會帶來嚴重的挑戰(zhàn),尤其是對于在線應用程序,在這些應用程序中,幾十毫秒的額外延遲可能會對用戶體驗產生顯著的負面影響。

使用最新TensorRT8.2 ,我們優(yōu)化了 T5 和 GPT-2 模型,以實現實時推理。您可以將 T5 或 GPT-2 模型轉換為 TensorRT 引擎,然后將此引擎用作推理工作流中原始 PyTorch 模型的插件替換。與 PyTorch GPU 推理相比,此優(yōu)化導致延遲減少 3-6 倍,與 PyTorch CPU 推理相比,延遲減少 9-21 倍。

在這篇文章中,我們將向您詳細介紹如何實現相同的延遲減少,使用我們最新發(fā)布的基于 Hugging Face transformers 的示例腳本和筆記本,使用 GPT-2 進行開放式文本生成,使用 T5 進行翻譯和摘要。

T5 和 GPT-2 簡介

在本節(jié)中,我們將簡要介紹 T5 和 GPT-2 模型。

T5 用于回答問題、總結、翻譯和分類

T5或文本到文本傳輸 transformer 是谷歌最近創(chuàng)建的一種體系結構。它將所有自然語言處理( NLP )任務重新構造為統(tǒng)一的文本到文本格式,其中輸入和輸出始終是文本字符串。 T5 的體系結構允許將相同的模型、損失函數和超參數應用于任何 NLP 任務,如機器翻譯、文檔摘要、問答和分類任務,如情感分析。

T5 模式的靈感來源于遷移學習在 NLP 中產生了最先進的結果。遷移學習背后的原理是,基于大量可用的未經訓練的數據和自我監(jiān)督任務的模型可以在較小的任務特定標記數據集上針對特定任務進行微調。事實證明,這些模型比從頭開始針對特定任務數據集訓練的模型具有更好的結果。

基于遷移學習的概念, Google 在用統(tǒng)一的文本到文本轉換器探索遷移學習的局限性中提出了 T5 模型。在本文中,他們還介紹了龐大的干凈爬網語料庫( C4 )數據集。在該數據集上預訓練的 T5 模型在許多下游 NLP 任務上實現了最先進的結果。已發(fā)布的預訓練 T5 車型的參數范圍高達 3B 和 11B 。

GPT-2 用于生成優(yōu)秀的類人文本

生成性預訓練 transformer 2 (GPT-2)是 OpenAI 最初提出的一種自回歸無監(jiān)督語言模型。它由 transformer 解碼器塊構建,并在非常大的文本語料庫上進行訓練,以預測段落中的下一個單詞。它生成優(yōu)秀的類人文本。更大的 GPT-2 模型,最大參數達到 15 億,通常能寫出更好、更連貫的文本。

使用 TensorRT 部署 T5 和 GPT-2

使用 TensorRT 8.2 ,我們通過構建并使用 TensorRT 發(fā)動機作為原始 PyTorch 模型的替代品,優(yōu)化了 T5 和 GPT-2 模型。我們將帶您瀏覽scripts和 Jupyternotebooks,并重點介紹基于擁抱面部變形金剛的重要內容。有關更多信息,請參閱示例腳本和筆記本以獲取詳細的分步執(zhí)行指南。

設置

最方便的開始方式是使用 Docker 容器,它為實驗提供了一個隔離、獨立和可復制的環(huán)境。

構建并啟動 TensorRT 容器:

pYYBAGJFc9SAPvxgAAAaKW2vWGI162.png

這些命令啟動 Docker 容器和 JupyterLab 。在 web 瀏覽器中打開 JupyterLab 界面:pYYBAGJFdAKAcbUvAAAEMDAJOjM560.png在 JupyterLab 中,要打開終端窗口,請選擇?File?、?New?、?Terminal?。編譯并安裝 TensorRT OSS 包:

poYBAGJFdA2AQncNAAALSmQMGn0122.png

現在,您已經準備好繼續(xù)使用模型進行實驗。在下面的順序中,我們將演示 T5 模型的步驟。下面的代碼塊并不意味著可以復制粘貼運行,而是引導您完成整個過程。為了便于復制,請參閱 GitHub 存儲庫上的notebooks。

在高層次上,使用 TensorRT 優(yōu)化用于部署的擁抱面 T5 和 GPT-2 模型是一個三步過程:

從 HuggingFace 模型動物園下載模型。

將模型轉換為優(yōu)化的 TensorRT 執(zhí)行引擎。

使用 TensorRT 引擎進行推理。

使用生成的引擎作為 HuggingFace 推理工作流中原始 PyTorch 模型的插件替換。

從 HuggingFace 模型動物園下載模型

首先,從 HuggingFace 模型中心下載原始的 Hugging Face PyTorch T5 模型及其關聯的標記器。

poYBAGJFdCeAbgptAAANxtLgEjs368.png

然后,您可以將此模型用于各種 NLP 任務,例如,從英語翻譯為德語:

pYYBAGJFdC-ATa1bAAAU9hCPQ6k530.png

TensorRT 8.2 支持 GPT-2 至“ xl ”版本( 1.5B 參數)和 T5 至 11B 參數,這些參數可在 HuggingFace model zoo 上公開獲得。根據 GPU 內存可用性,也可支持較大型號。

將模型轉換為優(yōu)化的 TensorRT 執(zhí)行引擎。

在將模型轉換為 TensorRT 引擎之前,請將 PyTorch 模型轉換為中間通用格式。 ONNX 是機器學習深度學習模型的開放格式。它使您能夠將 TensorFlow 、 PyTorch 、 MATLAB 、 Caffe 和 Keras 等不同框架中的深度學習和機器學習模型轉換為單一的統(tǒng)一格式。

轉換為 ONNX

對于 T5 型號,使用實用功能分別轉換編碼器和解碼器。

pYYBAGJFdDiACUfkAAAhAI8eZnI041.png

轉換為 TensorRT

現在,您已經準備好解析 T5 ONNX 編碼器和解碼器,并將它們轉換為優(yōu)化的 TensorRT 引擎。由于 TensorRT 執(zhí)行了許多優(yōu)化,例如融合操作、消除轉置操作和內核自動調優(yōu),以在目標 GPU 體系結構上找到性能最佳的內核,因此此轉換過程可能需要一些時間。

pYYBAGJFdE6AQLHtAAAcENHunE8781.png

使用 TensorRT 引擎進行推理

最后,您現在有了一個針對 T5 模型的優(yōu)化 TensorRT 引擎,可以進行推斷。

pYYBAGJFdGyATjkzAAAfAAkkvFE954.png

類似地,對于 GPT-2 模型,您可以按照相同的過程生成 TensorRT 引擎。優(yōu)化的 TensorRT 引擎可作為 HuggingFace 推理工作流中原始 PyTorch 模型的插件替代品。

TensorRT transformer 優(yōu)化細節(jié)

基于轉換器的模型是 transformer 編碼器或解碼器塊的堆棧。編碼器(解碼器)塊具有相同的結構和參數數量。 T5 由 transformer 編碼器和解碼器的堆棧組成,而 GPT-2 僅由 transformer 解碼器塊組成(圖 1 )。

t5-architecture.png

圖 1a 。 T5 架構

poYBAGJFc5-AeDgfAABnQisiZW4320.png

圖 1b 。 GPT-2 體系結構

每個 transformer 塊,也稱為自我注意塊,通過使用完全連接的層將輸入投影到三個不同的子空間,稱為查詢( Q )、鍵( K )和值( V ),由三個投影組成。然后將這些矩陣轉換為 QT和 KT用于計算標準化點積注意值,然后與 V 組合T生成最終輸出(圖 2 )。

pYYBAGJFc6GAKbmGAAC5J-rjuz4450.png

圖 2 。自我注意塊

TensorRT 通過逐點層融合優(yōu)化自我注意塊:

還原與電源操作相融合(用于圖層模板和剩余添加圖層)。

電子秤與 softmax 融合在一起。

GEMM 與 ReLU / GELU 激活融合。

此外, TensorRT 還優(yōu)化了推理網絡:

消除轉置操作。

將三個 KQV 投影融合為一個 GEMM 。

當指定 FP16 模式時,控制逐層精度以保持精度,同時運行 FP16 中計算最密集的運算。

TensorRT 對 PyTorch CPU 和 GPU 基準

通過 TensorRT 進行的優(yōu)化,我們看到 PyTorch GPU 推理的加速比高達 3-6 倍,而 PyTorch CPU 推理的加速比高達 9-21 倍。

圖 3 顯示了批量為 1 的 T5-3B 模型的推理結果,該模型用于將短短語從英語翻譯成德語。 A100 GPU 上的 TensorRT 引擎與在雙插槽 Intel Platinum 8380 CPU 上運行的 PyTorch 相比,延遲減少了 21 倍。

poYBAGJFc6KAct-cAABCQhQEBKM339.png

圖 3 。 A100 GPU 上的 T5-3B 模型推斷比較 TensorRT 提供的延遲比 PyTorch CPU 推斷小 21 倍。

CPU :英特爾白金 8380 , 2 個插槽。
GPU:NVIDIA A100 PCI Express 80GB 。軟件: PyTorch 1.9 , TensorRT 8.2.0 EA 。
任務:“將英語翻譯成德語:這很好?!?/p>

結論

在這篇文章中,我們向您介紹了如何將擁抱臉 PyTorch T5 和 GPT-2 模型轉換為優(yōu)化的 TensorRT 推理引擎。 TensorRT 推理機用作原始 HuggingFace T5 和 GPT-2 PyTorch 模型的替代品,可提供高達 21x CPU 的推理加速比。要為您的模型實現此加速,從 TensorRT 8.2 開始今天的學習.

關于作者

About Vinh Nguyen是一位深度學習的工程師和數據科學家,發(fā)表了 50 多篇科學文章,引文超過 2500 篇。在 NVIDIA ,他的工作涉及廣泛的深度學習和人工智能應用,包括語音、語言和視覺處理以及推薦系統(tǒng)。

About Nikhil Srihari是 NVIDIA 的深入學習軟件技術營銷工程師。他在自然語言處理、計算機視覺和語音處理領域擁有廣泛的深度學習和機器學習應用經驗。 Nikhil 曾在富達投資公司和 Amazon 工作。他的教育背景包括布法羅大學的計算機科學碩士學位和印度蘇拉斯卡爾卡納塔克邦國家理工學院的學士學位。

About Parth Chadha是 NVIDIA 的深度學習軟件工程師。他在 TensorRT 上工作,這是一個高性能的深度學習推理 SDK 。 Parth 在卡內基梅隆大學獲得電氣和計算機工程碩士學位,主要研究機器學習和并行計算機體系結構。

About Charles Chen20 歲時在加州大學圣地亞哥分校獲得計算機科學碩士學位后, Charles Chen 專注于為尖端人工智能框架、發(fā)展中國家的計算機教育和人機交互做出貢獻。在 NVIDIA , Charles 是一名深度學習軟件工程師,致力于 TensorRT ,一款高性能的深度學習推理 SDK 。

About Joohoon Lee領導 NVIDIA 的汽車深度學習解決方案架構師團隊。他專注于將深度學習研究轉化為用于生產部署的真實世界自主駕駛軟件。他的團隊使汽車客戶能夠使用英偉達驅動平臺進行 DNN 培訓、微調、優(yōu)化和部署。在加入 NVIDIA 之前,他曾擔任 GPU 軟件架構師,負責加速 DNN 算法。 Joohoon 在卡內基梅隆大學獲得電氣和計算機工程學士和碩士學位。

About Jay Rodge是 NVIDIA 的產品營銷經理,負責深入學習和推理產品,推動產品發(fā)布和產品營銷計劃。杰伊在芝加哥伊利諾伊理工學院獲得計算機科學碩士學位,主攻計算機視覺和自然語言處理。在 NVIDIA 之前,杰伊是寶馬集團的人工智能研究實習生,為寶馬最大的制造廠使用計算機視覺解決問題。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10863

    瀏覽量

    211763
  • NVIDIA
    +關注

    關注

    14

    文章

    4986

    瀏覽量

    103055
收藏 人收藏

    評論

    相關推薦

    NVIDIA TensorRT-LLM中啟用ReDrafter的一些變化

    Recurrent Drafting (簡稱 ReDrafter) 是蘋果公司為大語言模型 (LLM) 推理開發(fā)并開源的一種新型推測解碼技術,該技術現在可與 NVIDIA TensorRT-LLM 一起使用。
    的頭像 發(fā)表于 12-25 17:31 ?117次閱讀
    在<b class='flag-5'>NVIDIA</b> <b class='flag-5'>TensorRT</b>-LLM中啟用ReDrafter的一些變化

    OpenAI GPT-5開發(fā)滯后:訓練成本高昂

    已經對GPT-5進行了至少兩輪大規(guī)模訓練,希望通過海量數據資源來優(yōu)化模型效能。然而,首次訓練的實際運行結果并未達到預期標準,導致更大規(guī)模的訓練嘗試變得耗時且成本更高。據估計,GPT-5的訓練成本已經高達
    的頭像 發(fā)表于 12-23 11:04 ?179次閱讀

    解鎖NVIDIA TensorRT-LLM的卓越性能

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

    NVIDIA TensorRT-LLM Roadmap現已在GitHub上公開發(fā)布

    感謝眾多用戶及合作伙伴一直以來對NVIDIA TensorRT-LLM的支持。TensorRT-LLM 的 Roadmap 現已在 GitHub 上公開發(fā)布!
    的頭像 發(fā)表于 11-28 10:43 ?272次閱讀
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>TensorRT</b>-LLM Roadmap現已在GitHub上公開發(fā)布

    使用NVIDIA TensorRT提升Llama 3.2性能

    Llama 3.2 模型集擴展了 Meta Llama 開源模型集的模型陣容,包含視覺語言模型(VLM)、小語言模型(SLM)和支持視覺的更新版 Llama Guard 模型。與 NVIDIA 加速
    的頭像 發(fā)表于 11-20 09:59 ?225次閱讀

    TensorRT-LLM低精度推理優(yōu)化

    本文將分享 TensorRT-LLM 中低精度量化內容,并從精度和速度角度對比 FP8 與 INT8。首先介紹性能,包括速度和精度。其次,介紹量化工具 NVIDIA TensorRT Model
    的頭像 發(fā)表于 11-19 14:29 ?300次閱讀
    <b class='flag-5'>TensorRT</b>-LLM低精度推理<b class='flag-5'>優(yōu)化</b>

    NVIDIA Nemotron-4 340B模型幫助開發(fā)者生成合成訓練數據

    Nemotron-4 340B 是針對 NVIDIA NeMo 和 NVIDIA TensorRT-LLM 優(yōu)化的模型系列,該系列包含最先進的指導和獎勵模型,以及一個用于生成式 AI
    的頭像 發(fā)表于 09-06 14:59 ?314次閱讀
    <b class='flag-5'>NVIDIA</b> Nemotron-4 340B模型幫助開發(fā)者生成合成訓練數據

    魔搭社區(qū)借助NVIDIA TensorRT-LLM提升LLM推理效率

    “魔搭社區(qū)是中國最具影響力的模型開源社區(qū),致力給開發(fā)者提供模型即服務的體驗。魔搭社區(qū)利用NVIDIA TensorRT-LLM,大大提高了大語言模型的推理性能,方便了模型應用部署,提高了大模型產業(yè)應用效率,更大規(guī)模地釋放大模型的應用價值。”
    的頭像 發(fā)表于 08-23 15:48 ?455次閱讀

    寶塔面板Docker一鍵安裝:部署GPTAcademic,開發(fā)私有GPT學術優(yōu)化工具

    使用寶塔Docker-compose,5分鐘內在海外服務器上搭建gpt_academic。這篇文章講解如何使用寶塔面板的Docker服務搭建GPT 學術優(yōu)化 (
    的頭像 發(fā)表于 07-02 11:58 ?2596次閱讀
    寶塔面板Docker一鍵安裝:部署GPTAcademic,開發(fā)私有<b class='flag-5'>GPT</b>學術<b class='flag-5'>優(yōu)化</b>工具

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

    NVIDIA 宣布使用 NVIDIA TensorRT-LLM 加速微軟最新的 Phi-3 Mini 開源語言模型。TensorRT-LLM 是一個開源庫,用于
    的頭像 發(fā)表于 04-28 10:36 ?567次閱讀

    奇瑞捷途T5山海版首展,續(xù)航1400km預計明年上市

    據悉,4 月 25 日,在北京車展上,奇瑞汽車旗下捷途品牌的全新車型——捷途山海 T5 正式亮相。這是捷途品牌首款采用非承載式車身結構的 SUV,搭載 2.0T 混合動力引擎,綜合續(xù)航里程達到 1400km 左右,預計將于明年上市銷售。
    的頭像 發(fā)表于 04-26 10:46 ?1314次閱讀

    Bota Systems推出一款新型力扭矩傳感器SensONE T5

    據麥姆斯咨詢報道,近期,多軸力扭矩傳感器的先驅Bota Systems(簡稱:Bota)推出了新型力扭矩傳感器SensONE T5,它在Bota SensONE系列傳感器中具有最高的靈敏度。
    的頭像 發(fā)表于 03-25 09:20 ?697次閱讀

    極狐阿爾法T5限時優(yōu)惠2.5萬元,起售價13.08萬元

    阿爾法T5擁有四款車型可供選擇,提供兩種里程配置,分別是520公里和660公里,指導價在15.58-19.98萬之間。折扣后價格范圍在13.08-17.48萬元之間。
    的頭像 發(fā)表于 03-08 14:07 ?711次閱讀

    TensorRT LLM加速Gemma!NVIDIA與谷歌牽手,RTX助推AI聊天

    NVIDIA今天在其官方博客中表示,今天與谷歌合作,在所有NVIDIA AI平臺上為Gemma推出了優(yōu)化。
    的頭像 發(fā)表于 02-23 09:42 ?614次閱讀
    <b class='flag-5'>TensorRT</b> LLM加速Gemma!<b class='flag-5'>NVIDIA</b>與谷歌牽手,RTX助推AI聊天

    Torch TensorRT是一個優(yōu)化PyTorch模型推理性能的工具

    那么,什么是Torch TensorRT呢?Torch是我們大家聚在一起的原因,它是一個端到端的機器學習框架。而TensorRT則是NVIDIA的高性能深度學習推理軟件工具包。Torch Te
    的頭像 發(fā)表于 01-09 16:41 ?1742次閱讀
    Torch <b class='flag-5'>TensorRT</b>是一個<b class='flag-5'>優(yōu)化</b>PyTorch模型推理性能的工具