0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

3天內不再提示

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

NVIDIA英偉達企業(yè)解決方案 ? 來源:NVIDIA英偉達企業(yè)解決方案 ? 2024-12-25 17:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Recurrent Drafting (簡稱 ReDrafter) 是蘋果公司為大語言模型 (LLM) 推理開發(fā)并開源的一種新型推測解碼技術,該技術現(xiàn)在可與 NVIDIA TensorRT-LLM 一起使用。ReDrafter 幫助開發(fā)者大幅提升了 NVIDIA GPU 上的 LLM 工作負載性能。NVIDIA TensorRT-LLM 是一個 LLM 推理優(yōu)化庫,提供了一個易于使用的 Python API 來定義 LLM 和構建 NVIDIA TensorRT 引擎,這些引擎具有頂尖的優(yōu)化功能,可在 GPU 上高效執(zhí)行推理。優(yōu)化功能包括自定義 Attention Kernel、Inflight Batching、Paged KV Caching、量化技術 (FP8、INT4 AWQ、INT8 SmoothQuant) 等。

推測解碼 (Speculative decoding)是一種通過并行生成多個 token 來加速 LLM 推理的技術。它使用較小的“draft”模塊預測未來的 token,然后由主模型進行驗證。該方法通過更好地利用可用資源實現(xiàn)低延遲推理,在保持輸出質量的同時大大縮短了響應時間,尤其是在低流量時段。

ReDrafter 運用基于循環(huán)神經網絡 (RNN)的采樣 (稱為 Drafting) 并結合之前在 Medusa 等其他技術中使用的樹狀注意力,預測和驗證來自多個可能路徑的draft token 以提高準確性,并在解碼器的每次迭代中接受一個以上 token。NVIDIA 與蘋果公司合作,在 TensorRT-LLM 中添加了對該技術的支持,使更加廣泛的開發(fā)者社區(qū)能夠使用該技術。

ReDrafter 與 TensorRT-LLM 的集成擴大了該技術的覆蓋范圍,解鎖了新的優(yōu)化潛力,并改進了 Medusa 等先前的方法。Medusa 的路徑接受和 token 采樣發(fā)生在 TensorRT-LLM 運行時,需要在接受路徑未知的情況下處理所有可能的未來路徑,而且其中大部分路徑最終都會被丟棄,這就給引擎內部帶來了一些開銷。為了減少這種開銷,ReDrafter 要求在 drafting下一次迭代的未來 token 之前,先驗證 token 并接受最佳路徑。

為了進一步減少開銷,TensorRT-LLM 更新后在單個引擎中整合了drafting和驗證邏輯,不再依賴運行時或單獨的引擎。這種方法為 TensorRT-LLM 內核選擇和調度提供了更大的自由度,通過優(yōu)化網絡實現(xiàn)了性能的最大化。

為了更好地說明 ReDrafter 的改進,圖 1 展示了 TensorRT-LLM 中 ReDrafter 實現(xiàn)與 Medusa 實現(xiàn)的主要區(qū)別。大多數(shù)與推測解碼相關的組件都在 ReDrafter 的引擎內完成,這大大簡化了 ReDrafter 所需的運行時更改。

e6f1a3ba-c2a1-11ef-9310-92fbcf53809c.pnge7047f30-c2a1-11ef-9310-92fbcf53809c.png

圖 1. NVIDIA TensorRT-LLM 中

Medusa(左)和 ReDrafter(右)實現(xiàn)的比較

下面將深入探討有助于在 TensorRT-LLM 中啟用 ReDrafter 的一些變化。

兼容 Inflight-batching

批處理的引擎

Inflight-batching (IFB) 是一種通過批量處理上下文階段和生成階段請求,來顯著提高吞吐量的策略。鑒于上下文階段請求與生成階段請求的處理方式不同(生成階段請求需要 draft token 驗證),因此結合 IFB 的推測解碼會給管線帶來更大的復雜性。ReDrafter 將驗證邏輯移至模型定義內部,因此引擎在驗證過程中也需要該邏輯。與注意力插件類似,該批處理被分成兩個較小的批處理:一個用于上下文請求,另一個用于生成請求。然后,每個較小的批處理進入計算工作流,最后再合并成一個批處理進行 drafting 流程。

e71bc8b6-c2a1-11ef-9310-92fbcf53809c.png

圖 2. ReDrafter 兼容 TensorRT-LLM 引擎的

Inflight-batching 批處理計算工作流

請注意,這種方法要求任一路徑上的所有運算符都支持空張量。如果一個批處理由所有上下文請求或所有生成請求組成,就可能出現(xiàn)空張量。該功能增加了 TensorRT-LLM API 的靈活性,使未來定義更復雜的模型成為可能。

實現(xiàn)引擎內驗證和 Drafting

為了在引擎內進行驗證和 draft,TensorRT-LLM 更新時加入了對許多新操作的支持,這樣 PyTorch 代碼就可以輕松地轉化成一個 TensorRT-LLM 模型的定義。

以下 PyTorch 代碼摘錄是蘋果公司的 PyTorch 實現(xiàn)的 ReDrafter。TensorRT-LLM 實現(xiàn)幾乎就是 PyTorch 版本的直接逐行映射。

PyTorch

def unpack(
  packed_tensor: torch.Tensor,
  unpacker: torch.Tensor,
) -> torch.Tensor:
  assert len(packed_tensor.shape) == 3
  last_dim_size = packed_tensor.shape[2]
  batch_size, beam_width, beam_length = unpacker.shape
  unpacked_data_indices = unpacker.view(
    batch_size, beam_width * beam_length, 1).expand(
    -1, -1, last_dim_size
  )
  unpacked_tensor = torch.gather(
    packed_tensor, 1, unpacked_data_indices).reshape(
    batch_size, beam_width, beam_length, -1
  )
  return unpacked_tensor

TensorRT-LLM

def _unpack_beams(
  x: Tensor,
  indices: Tensor,
  num_beams: int,
  beam_length: int
) -> Tensor:
  assert x.rank() == 3
  d0 = shape(x, 0, INT_DTYPE_STR)
  dl = shape(x, -1, INT_DTYPE_STR)
  indices = view(
    indices, [-1, num_beams * beam_length, 1], False)
  res_shape = concat([d0, num_beams, beam_length, dl])
  res = view(gather_nd(x, indices), res_shape, False)
  return res

當然,這只是一個非常簡單的例子。如要了解更復雜的示例,請參見束搜索實現(xiàn)。借助為 ReDrafter 添加的新功能,就可以改進 TensorRT-LLM 中的 Medusa 實現(xiàn),從而進一步提高其性能。

ReDrafter

在 TensorRT-LLM 中的性能

根據(jù)蘋果公司的基準測試,在采用 TP8 的 NVIDIA GPU 上使用 TensorRT-LLM 的 ReDrafter 最多可將吞吐量提高至基礎 LLM 的 2.7 倍。

請注意,任何推測解碼技術的性能提升幅度都會受到諸多因素的大幅影響,包括:

GPU 利用率:推測解碼通常用于低流量場景,由于批量較小,GPU 資源的利用率通常較低。

平均接受率:由于推測解碼必須執(zhí)行額外的計算,而其中很大一部分計算最終會在驗證后被浪費,因此每個解碼步驟的延遲都會增加。所以要想通過推測解碼獲得任何性能上的優(yōu)勢,平均接受率必須高到足以彌補增加的延遲。這受到束數(shù)量、束長度和束搜索本身質量(受訓練數(shù)據(jù)影響)的影響。

任務:在某些任務(例如代碼完成)中預測未來的 token 更容易,使得接受率更高,性能也會因此而提升。

總結

NVIDIA 與蘋果公司的合作讓 TensorRT-LLM 變得更加強大和靈活,使 LLM 社區(qū)能夠創(chuàng)造出更加復雜的模型并通過 TensorRT-LLM 輕松部署,從而在 NVIDIA GPU 上實現(xiàn)無與倫比的性能。這些新特性帶來了令人興奮的可能性,我們熱切期待著社區(qū)使用 TensorRT-LLM 功能開發(fā)出新一代先進模型,進一步改進 LLM 工作負載。

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

    關注

    14

    文章

    5274

    瀏覽量

    105982
  • 模型
    +關注

    關注

    1

    文章

    3501

    瀏覽量

    50161
  • LLM
    LLM
    +關注

    關注

    1

    文章

    322

    瀏覽量

    741

原文標題:NVIDIA TensorRT-LLM 現(xiàn)支持 Recurrent Drafting,實現(xiàn) LLM 推理優(yōu)化

文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業(yè)解決方案】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    TensorRT-LLM初探()運行l(wèi)lama

    TensorRT-LLM正式出來有半個月了,直沒有時間玩,周末趁著有時間跑下。
    的頭像 發(fā)表于 11-16 17:39 ?1798次閱讀
    <b class='flag-5'>TensorRT-LLM</b>初探(<b class='flag-5'>一</b>)運行l(wèi)lama

    使用NVIDIA Triton和TensorRT-LLM部署TTS應用的最佳實踐

    針對基于 Diffusion 和 LLM 類別的 TTS 模型,NVIDIA Triton 和 TensorRT-LLM 方案能顯著提升推理速度。單張
    的頭像 發(fā)表于 06-12 15:37 ?439次閱讀
    使用<b class='flag-5'>NVIDIA</b> Triton和<b class='flag-5'>TensorRT-LLM</b>部署TTS應用的最佳實踐

    如何利用LLM一些多模態(tài)任務

    本文整理了近兩年來基于LLM做vision-lanuage任務的一些工作,并將其劃分為4個類別:
    的頭像 發(fā)表于 05-17 15:02 ?1252次閱讀
    如何利用<b class='flag-5'>LLM</b>做<b class='flag-5'>一些</b>多模態(tài)任務

    NVIDIA TensorRT與Apache Beam SDK的集成

    使用 NVIDIA TensorRT Apache Beam 簡化和加速機器學習預測
    的頭像 發(fā)表于 07-05 16:30 ?681次閱讀

    學習資源 | NVIDIA TensorRT 全新教程上線

    NVIDIA TensorRT ? 是個用于高效實現(xiàn)已訓練好的深度學習模型推理過程的軟件開發(fā)工具包,內含推理優(yōu)化器和運行環(huán)境兩部分,其目的在于讓深度學習模型能夠 GPU 上以更高吞
    的頭像 發(fā)表于 08-04 17:45 ?1092次閱讀
    學習資源 | <b class='flag-5'>NVIDIA</b> <b class='flag-5'>TensorRT</b> 全新教程上線

    阿里云 &amp; NVIDIA TensorRT Hackathon 2023 決賽圓滿收官,26 支 AI 團隊嶄露頭角

    及優(yōu)勝獎,展現(xiàn)出了卓越的技術實力。 掃碼查看獲獎名單 解鎖 NVIDIA TensorRT-LLM 挖掘生成式 AI 新需求 今年的 NVIDIA TensorRT Hackat
    的頭像 發(fā)表于 10-17 03:20 ?724次閱讀
    阿里云 &amp; <b class='flag-5'>NVIDIA</b> <b class='flag-5'>TensorRT</b> Hackathon 2023 決賽圓滿收官,26 支 AI 團隊嶄露頭角

    現(xiàn)已公開發(fā)布!歡迎使用 NVIDIA TensorRT-LLM 優(yōu)化大語言模型推理

    能。該開源程序庫現(xiàn)已作為 NVIDIA NeMo 框架的部分, /NVIDIA/TensorRT-LLM GitHub 資源庫
    的頭像 發(fā)表于 10-27 20:05 ?1465次閱讀
    現(xiàn)已公開發(fā)布!歡迎使用 <b class='flag-5'>NVIDIA</b> <b class='flag-5'>TensorRT-LLM</b> 優(yōu)化大語言模型推理

    點亮未來:TensorRT-LLM 更新加速 AI 推理性能,支持 RTX 驅動的 Windows PC 上運行新模型

    微軟 Ignite 2023 技術大會發(fā)布的新工具和資源包括 OpenAI?Chat?API 的 TensorRT-LLM 封裝接口、RTX 驅動的性能改進 DirectML?for?Llama?2
    的頭像 發(fā)表于 11-16 21:15 ?892次閱讀
    點亮未來:<b class='flag-5'>TensorRT-LLM</b> 更新加速 AI 推理性能,支持<b class='flag-5'>在</b> RTX 驅動的 Windows PC 上運行新模型

    如何在 NVIDIA TensorRT-LLM 中支持 Qwen 模型

    的特點和優(yōu)勢。然而,這些工具往往未能充分發(fā)揮 GPU 的性能。 為了解決這些問題,NVIDIA 推出了種全新的解決方案—— Tens
    的頭像 發(fā)表于 12-04 20:25 ?1388次閱讀
    如何在 <b class='flag-5'>NVIDIA</b> <b class='flag-5'>TensorRT-LLM</b> 中支持 Qwen 模型

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

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

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

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

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

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

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

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

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

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

    解鎖NVIDIA TensorRT-LLM的卓越性能

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

    電子發(fā)燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品