LLM推理3倍速!微軟發布LLM Accelerator:用參考文本實現無損加速

WBOY
發布: 2023-05-27 10:40:06
轉載
1352 人瀏覽過

隨著人工智慧技術的快速發展,ChatGPT、New Bing、GPT-4 等新產品和新技術陸續發布,基礎大模型在許多應用中將發揮日益重要的作用。

目前的大語言模型大多是自迴歸模型。自迴歸是指模型在輸出時往往採用逐字輸出的方式,即在輸出每個字時,模型需要將先前輸出的字作為輸入。而這種自回歸模式通常在輸出時限制並行加速器的充分利用。

在許多應用場景中,大模型的輸出常常與一些參考文本有很大的相似性,例如在以下三個常見的場景中:

#1. 檢索增強的生成

#New Bing 等檢索應用在回應使用者輸入的內容時,會先傳回一些與使用者輸入相關的訊息,然後用語言模型總結檢索出的信息,再回答使用者輸入的內容。在這種場景中,模型的輸出往往包含大量檢索結果中的文字片段。

2. 在使用快取的產生

#大規模部署語言模型的過程中,歷史的輸入輸出會被緩存。在處理新的輸入時,檢索應用會在快取中尋找相似的輸入。因此,模型的輸出往往和快取中對應的輸出有很大的相似性。

3. 多輪對話中的生成

#在使用ChatGPT 等應用程式時,使用者傾向於根據模型的輸出一再提出修改要求。在這種多輪對話的場景下,模型的多次輸出往往只有少量的變化,重複度較高。

LLM推理3倍速!微软发布LLM Accelerator:用参考文本实现无损加速

#圖1:大模型的輸出與參考文字存在相似性的常見場景

基於上述觀察,研究員以參考文本與模型輸出的重複性作為突破自回歸瓶頸的著力點,希望可以提高並行加速器利用率,加速大語言模型推理,進而提出了一種利用輸出與參考文本的重複性來實現一步輸出多個字的方法LLM Accelerator。

LLM推理3倍速!微软发布LLM Accelerator:用参考文本实现无损加速

##圖2:LLM Accelerator 解碼演算法

具體來說,在每一步解碼時,讓模型先匹配已有的輸出結果與參考文本,如果發現某個參考文本與已有的輸出相符,那麼模型很可能順延已有的參考文本繼續輸出。

因此,研究員們將參考文本的後續詞也作為輸入加入模型中,從而使得一個解碼步驟可以輸出多個詞。

為了確保輸入輸出準確,研究員們進一步比較了模型輸出的字詞與從參考文件輸入的字詞。如果兩者不一致,那麼不正確的輸入輸出結果將被捨棄。

以上方法能夠保證解碼結果與基準方法完全一致,並且可以提高每個解碼步驟的輸出詞數,從而實現大模型推理的無損加速。

LLM Accelerator 無需額外輔助模型,簡單易用,可輕鬆部署到各種應用情境中。

論文連結:https://arxiv.org/pdf/2304.04487.pdf

#########項目連結:https://github.com/microsoft/LMOps################使用LLM Accelerator,有兩個超參數需要調整。 ######

一是觸發匹配機制所需的輸出與參考文本的匹配詞數:匹配詞數越長往往越準確,可以更好地保證從參考文本拷貝的詞是正確的輸出,減少不必要的觸發和計算;更短的匹配,解碼步驟更少,潛在加速更快。

二是每次拷貝詞的數量:拷貝詞數越多,加速潛力越大,但也可能造成更多不正確的輸出被捨棄,浪費運算資源。研究員透過實驗發現,更激進的策略(匹配單字觸發,一次拷貝15到20個詞)往往能夠取得更好的加速比。

為了驗證 LLM Accelerator 的有效性,研究員們在檢索增強和快取輔助生成方面進行了實驗,利用 MS-MARCO 段落檢索資料集建構了實驗樣本。

在檢索增強實驗中,研究員使用檢索模型對每個查詢返回10個最相關的文檔,然後拼接到查詢後作為模型輸入,將這10個文檔作為參考文本。

在快取輔助生成實驗中,每個查詢產生四個相似的查詢,然後用模型輸出對應的查詢作為參考文字。

LLM推理3倍速!微软发布LLM Accelerator:用参考文本实现无损加速

表1:檢索增強的生成場景下的時間比較

LLM推理3倍速!微软发布LLM Accelerator:用参考文本实现无损加速

#表2:使用快取的生成場景下的時間比較

研究員使用透過OpenAI 介面得到的Davinci-003 模型的輸出結果作為目標輸出,以獲得高品質的輸出。在得到所需輸入、輸出和參考文本後,研究員們在開源的 LLaMA 語言模型上進行了實驗。

由於LLaMA 模型的輸出與Davinci-003 輸出不一致,因此研究員們採用了目標導向的解碼方法來測試理想輸出(Davinci-003 模型結果)結果下的加速比。

研究員們利用演算法2得到了貪婪解碼時產生目標輸出所需的解碼步驟,並強制 LLaMA 模型按照得到的解碼步驟進行解碼。

LLM推理3倍速!微软发布LLM Accelerator:用参考文本实现无损加速

圖3:利用演算法2得到了貪婪解碼時產生目標輸出所需的解碼步驟

對於參數量為7B 和13B 的模型,研究員在單一32G NVIDIA V100 GPU 上進行實驗;對於參數量為30B 的模型,在四塊相同的GPU上進行實驗。所有的實驗均採用了半精度浮點數,解碼均為貪婪解碼,且批次大小為1。

實驗結果表明,LLM Accelerator 在不同模型大小(7B,13B,30B)與不同的應用場景中(檢索增強、快取輔助)都取得了兩到三倍的加速比。

進一步實驗分析發現,LLM Accelertator 能顯著減少所需的解碼步驟,並且加速比與解碼步驟的減少比例呈正相關。

更少的解碼步驟一方面意味著每個解碼步驟產生的輸出詞數更多,可以提高GPU 運算的運算效率;另一方面,對於需要多卡並行的30B模型,這意味著更少的多卡同步,從而達到更快的速度提升。

在消融實驗中,在開發集上對LLM Accelertator 的超參數進行分析的結果顯示,匹配單字(即觸發拷貝機制)時,一次拷貝15到20個單字時的加速比可達到最大(圖4所示)。

在圖5中我們可以看出,匹配詞數為1能更多地觸發拷貝機制,並且隨著拷貝長度的增加,每個解碼步驟接受的輸出詞增加,解碼步驟減少,從而達到更高的加速比。

LLM推理3倍速!微软发布LLM Accelerator:用参考文本实现无损加速

圖4:消融實驗中,在開發集上對LLM Accelertator 的超參數的分析結果

LLM推理3倍速!微软发布LLM Accelerator:用参考文本实现无损加速

#圖5:在開發集上,具有不同匹配詞數n 和拷貝詞數k 的解碼步驟統計數據

LLM Accelertator 是微軟亞洲研究院自然語言計算組在大語言模型加速系列工作的一部分,未來,研究員們將持續對相關問題進行更深入的探索。

以上是LLM推理3倍速!微軟發布LLM Accelerator:用參考文本實現無損加速的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:51cto.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!