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

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

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

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

NVIDIA英偉達(dá)企業(yè)解決方案 ? 來源:NVIDIA英偉達(dá)企業(yè)解決方案 ? 2024-12-25 17:31 ? 次閱讀

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

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

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

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

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

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

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

圖 1. NVIDIA TensorRT-LLM 中

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

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

兼容 Inflight-batching

批處理的引擎

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

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

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

Inflight-batching 批處理計(jì)算工作流

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

實(shí)現(xiàn)引擎內(nèi)驗(yàn)證和 Drafting

為了在引擎內(nèi)進(jìn)行驗(yàn)證和 draft,TensorRT-LLM 更新時(shí)加入了對許多新操作的支持,這樣 PyTorch 代碼就可以輕松地轉(zhuǎn)化成一個(gè) TensorRT-LLM 模型的定義。

以下 PyTorch 代碼摘錄是蘋果公司的 PyTorch 實(shí)現(xiàn)的 ReDrafter。TensorRT-LLM 實(shí)現(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

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

ReDrafter

在 TensorRT-LLM 中的性能

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

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

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

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

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

總結(jié)

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

聲明:本文內(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

    文章

    4986

    瀏覽量

    103042
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3243

    瀏覽量

    48836
  • LLM
    LLM
    +關(guān)注

    關(guān)注

    0

    文章

    288

    瀏覽量

    334

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

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

    NVIDIA TensorRT與Apache Beam SDK的集成

    使用 NVIDIA TensorRT Apache Beam 簡化和加速機(jī)器學(xué)習(xí)預(yù)測
    的頭像 發(fā)表于 07-05 16:30 ?453次閱讀

    學(xué)習(xí)資源 | NVIDIA TensorRT 全新教程上線

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

    阿里云 &amp; NVIDIA TensorRT Hackathon 2023 決賽圓滿收官,26 支 AI 團(tuán)隊(duì)嶄露頭角

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

    周四研討會(huì)預(yù)告 | 注冊報(bào)名 NVIDIA AI Inference Day - 大模型推理線上研討會(huì)

    由 CSDN 舉辦的 NVIDIA AI Inference Day - 大模型推理線上研討會(huì),將幫助您了解 NVIDIA 開源大型語言模型(LLM)推理加速庫 TensorRT-LLM
    的頭像 發(fā)表于 10-26 09:05 ?355次閱讀

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

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

    點(diǎn)亮未來:TensorRT-LLM 更新加速 AI 推理性能,支持 RTX 驅(qū)動(dòng)的 Windows PC 上運(yùn)行新模型

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

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

    的特點(diǎn)和優(yōu)勢。然而,這些工具往往未能充分發(fā)揮 GPU 的性能。 為了解決這些問題,NVIDIA 推出了種全新的解決方案—— Tens
    的頭像 發(fā)表于 12-04 20:25 ?959次閱讀
    如何在 <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 ?566次閱讀

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

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

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

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

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

    本文將分享 TensorRT-LLM 中低精度量化內(nèi)容,并從精度和速度角度對比 FP8 與 INT8。首先介紹性能,包括速度和精度。其次,介紹量化工具 NVIDIA TensorRT Model
    的頭像 發(fā)表于 11-19 14:29 ?297次閱讀
    <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 ?271次閱讀
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>TensorRT-LLM</b> Roadmap現(xiàn)已在GitHub上公開發(fā)布

    解鎖NVIDIA TensorRT-LLM的卓越性能

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