吞吐量提升5倍,聯合設計後端系統和前端語言的LLM介面來了
大型語言模型 (LLM) 被廣泛應用於需要多個鍊式生成呼叫、高階提示技術、控制流程以及與外部環境互動的複雜任務。儘管如此,目前用於編程和執行這些應用程式的高效系統卻存在明顯的不足之處。
研究人員最近提出了一種新的結構化生成語言(Structured Generation Language),稱為SGLang,旨在改進與LLM的互動性。透過整合後端運行時系統和前端語言的設計,SGLang使得LLM的效能更高、更易於控制。這項研究也獲得了機器學習領域的知名學者、CMU助理教授陳天奇的轉發。
總的來說,SGLang 的貢獻主要包括:
在後端,研究團隊提出了RadixAttention,這是一種跨多個LLM 產生呼叫的KV 快取(KV cache)重複使用技術,自動且有效率。
在前端開發中,團隊研究出一種靈活的領域特定語言,可嵌入Python,用於控制生成過程。這種語言可以在解釋器模式或編譯器模式下執行。
後端前端元件可協同運作,可提高複雜 LLM 程式的執行和程式設計效率。
該研究使用 SGLang 實現了常見的 LLM 工作負載,包括智能體、推理、提取、對話和小樣本學習任務,並在 NVIDIA A10G GPU 上採用 Llama-7B 和 Mixtral-8x7B 模型。如下圖 1 、圖 2 表明,與現有系統(即 Guidance 和 vLLM)相比,SGLang 的吞吐量提高了 5 倍。
圖1:不同系統在LLM 任務上的吞吐量(A10G、FP16 上的Llama-7B、張量平行度= 1)
圖2:不同系統在LLM 任務上的吞吐量(A10G、FP16 上的Mixtral-8x7B,張量並行度= 8)
在後端:使用RadixAttention 自動KV 快取復用
在SGLang 運行時的開發過程中,該研究發現了複雜LLM 程式的最佳化關鍵——KV 快取復用,目前系統對此處理不佳。 KV 快取復用意味著具有相同前綴的不同 prompt 可以共享中間 KV 緩存,避免冗餘的記憶體和計算。在涉及多個 LLM 呼叫的複雜程式中,可能存在各種 KV 快取復用模式。下圖 3 說明了 LLM 工作負載中常見的四種此類模式。雖然某些系統能夠在某些場景下處理 KV 快取復用,但通常需要手動配置和臨時調整。此外,由於可能的複用模式的多樣性,即使透過手動配置,現有系統也無法自動適應所有場景。
圖 3:KV 快取共享範例。藍色框是可共享的 prompt 部分,綠色框是不可共享的部分,黃色框是不可共享的模型輸出。可共享的部分包括小樣本學習範例、自洽(self-consistency)問題、多輪對話中的對話歷史以及思維樹(tree-of-thought)中的搜尋歷史。
為了有系統地利用這些複用機會,該研究提出了一種在運行時自動 KV 快取復用的新方法 —— RadixAttention。此方法不是在完成產生請求後丟棄 KV 緩存,而是在基數樹(radix tree)中保留 prompt 和產生結果的 KV 快取。這種資料結構可以實現高效的前綴搜尋、插入和驅逐。該研究實現了最近最少使用(LRU)驅逐策略,並輔以快取感知調度策略,以提高快取命中率。
基數樹可作為 trie(前綴樹)節省空間的替代方案。與典型的樹不同,基數樹的邊緣不僅可以用單一元素來標記,還可以用不同長度的元素序列來標記,這提高了基數樹的效率。
該研究利用基數樹來管理映射,這種映射是在充當鍵的 token 序列和充當值的相應 KV 快取張量之間進行的。這些 KV 快取張量以分頁佈局儲存在 GPU 上,其中每個頁的大小相當於一個 token。
考慮到 GPU 記憶體容量有限,無法重新訓練無限的 KV 快取張量,這就需要驅逐策略。研究採用 LRU 驅逐策略,遞歸地驅逐葉節點。此外,RadixAttention 與連續批次和分頁注意力等現有技術相容。對於多模態模型,RadixAttention 可以輕鬆擴展以處理圖像 token。
下圖說明了在處理多個傳入請求時如何維護基數樹。前端總是向運行時發送完整的 prompt,運行時會自動進行前綴匹配、復用和快取。樹狀結構儲存在 CPU 上,維護開銷較小。
圖 4. 採用 LRU 驅逐策略的 RadixAttention 操作範例,分九個步驟進行說明。
圖 4 演示了基數樹回應各種請求的動態演變。這些請求包括兩個聊天會話、一批小樣本學習查詢和自洽性抽樣。每個樹邊緣都帶有一個標籤,表示子字串或 token 序列。節點採用顏色編碼以反映不同的狀態:綠色表示新新增的節點,藍色表示在該時間點存取的快取節點,紅色表示已被驅逐的節點。
前端:使用SGLang 輕鬆進行LLM 程式設計
在前端,該研究提出了SGLang,一種嵌入在Python 中的特定領域的語言,允許表達進階prompt 技術、控制流程、多模態、解碼約束和外部互動。 SGLang 函數可以透過各種後端運行,例如 OpenAI、Anthropic、Gemini 和本機模型。
圖 5. 用 SGLang 實現多維文章評分。
圖 5 顯示了一個具體範例。它利用分支 - 解決 - 合併 prompt 技術實現多維文章評分。此函數使用 LLM 從多個維度評估文章的質量,合併判斷,產生摘要,並分配最終等級。突出顯示的區域說明了 SGLang API 的使用。 (1) fork 建立 prompt 的多個並行副本。 (2) gen 呼叫 LLM 生成並將結果儲存在變數中。該呼叫是非阻塞的,因此它允許多個生成呼叫在後台同時運行。 (3) [variable_name] 檢索產生的結果。 (4) 選擇對生成施加約束。 (5) run 使用其參數執行 SGLang 函數。
給定這樣一個 SGLang 程序,我們可以透過解釋器執行它,也可以將其追蹤為資料流程圖並使用圖執行器運行它。後一種情況為一些潛在的編譯器最佳化開闢了空間,例如程式碼移動、指令選擇和自動調整。
SGLang 的語法很大程度上受到 Guidance 的啟發,並引入了新的原語,也處理程式內並行性和批次。所有這些新功能都有助於 SGLang 的出色性能。
基準測試
研究團隊在常見的 LLM 工作負載上測試了其係統,並報告了所實現的吞吐量。
具體來說,研究在1 個NVIDIA A10G GPU (24GB) 上測試了Llama-7B,在8 個具有張量並行性的NVIDIA A10G GPU 上使用FP16 精度測試了Mixtral-8x7B,並使用vllm v0.2.5、指導v0.1.8 和Hugging Face TGI v1.3.0 作為基準系統。
如圖 1 和圖 2 所示,SGLang 在所有基準測試中都優於基準系統,吞吐量提高了 5 倍。它在延遲方面也表現出色,特別是對於第一個 token 延遲,其中前綴快取命中可以帶來顯著的好處。這些改進歸功於 RadixAttention 的自動 KV 快取復用、解釋器實現的程式內並行性以及前端和後端系統的協同設計。此外,消融研究表明,即使沒有快取命中,也沒有明顯的開銷,這會導致在運行時始終啟用 RadixAttention。
參考連結:https://lmsys.org/blog/2024-01-17-sglang/
以上是吞吐量提升5倍,聯合設計後端系統和前端語言的LLM介面來了的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

同樣是圖生視頻,PaintsUndo走出了不一樣的路線。 ControlNet作者LvminZhang又開始整活了!這次瞄準繪畫領域。新項目PaintsUndo剛上線不久,就收穫1.4kstar(還在瘋狂漲)。項目地址:https://github.com/lllyasviel/Paints-UNDO透過這個項目,用戶輸入一張靜態圖像,PaintsUndo就能自動幫你生成整個繪畫的全過程視頻,從線稿到成品都有跡可循。繪製過程,線條變化多端甚是神奇,最終視頻結果和原始圖像非常相似:我們再來看一個完整的繪

AIxiv專欄是本站發布學術、技術內容的欄位。過去數年,本站AIxiv專欄接收通報了2,000多篇內容,涵蓋全球各大專院校與企業的頂尖實驗室,有效促進了學術交流與傳播。如果您有優秀的工作想要分享,歡迎投稿或聯絡報道。投稿信箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com在人工智慧領域的發展過程中,對大語言模型(LLM)的控制與指導始終是核心挑戰之一,旨在確保這些模型既強大又安全地服務人類社會。早期的努力集中在透過人類回饋的強化學習方法(RL

AIxiv專欄是本站發布學術、技術內容的欄位。過去數年,本站AIxiv專欄接收通報了2,000多篇內容,涵蓋全球各大專院校與企業的頂尖實驗室,有效促進了學術交流與傳播。如果您有優秀的工作想要分享,歡迎投稿或聯絡報道。投稿信箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com這篇論文的作者皆來自伊利諾大學香檳分校(UIUC)張令明老師團隊,包括:StevenXia,四年級博士生,研究方向是基於AI大模型的自動代碼修復;鄧茵琳,四年級博士生,研究方

如果AI模型給的答案一點也看不懂,你敢用嗎?隨著機器學習系統在更重要的領域中得到應用,證明為什麼我們可以信任它們的輸出,並明確何時不應信任它們,變得越來越重要。獲得對複雜系統輸出結果信任的一個可行方法是,要求系統對其輸出產生一種解釋,這種解釋對人類或另一個受信任的系統來說是可讀的,即可以完全理解以至於任何可能的錯誤都可以被發現。例如,為了建立對司法系統的信任,我們要求法院提供清晰易讀的書面意見,解釋並支持其決策。對於大型語言模型來說,我們也可以採用類似的方法。不過,在採用這種方法時,確保語言模型生

把因果鏈展示給LLM,它就能學會公理。 AI已經在幫助數學家和科學家做研究了,例如著名數學家陶哲軒就曾多次分享自己借助GPT等AI工具研究探索的經驗。 AI要在這些領域大戰拳腳,強大可靠的因果推理能力是不可或缺的。本文要介紹的研究發現:在小圖譜的因果傳遞性公理演示上訓練的Transformer模型可以泛化用於大圖譜的傳遞性公理。也就是說,如果讓Transformer學會執行簡單的因果推理,就可能用於更複雜的因果推理。該團隊提出的公理訓練框架是一種基於被動資料來學習因果推理的新範式,只有演示

乾杯!當論文討論細緻到詞句,是什麼體驗?最近,史丹佛大學的學生針對arXiv論文創建了一個開放討論論壇——alphaXiv,可以直接在任何arXiv論文之上發布問題和評論。網站連結:https://alphaxiv.org/其實不需要專門訪問這個網站,只需將任何URL中的arXiv更改為alphaXiv就可以直接在alphaXiv論壇上打開相應論文:可以精準定位到論文中的段落、句子:右側討論區,使用者可以發表問題詢問作者論文想法、細節,例如:也可以針對論文內容發表評論,例如:「給出至

最近,被稱為千禧年七大難題之一的黎曼猜想迎來了新突破。黎曼猜想是數學中一個非常重要的未解決問題,與素數分佈的精確性質有關(素數是那些只能被1和自身整除的數字,它們在數論中扮演著基礎性的角色)。在當今的數學文獻中,已有超過一千個數學命題以黎曼猜想(或其推廣形式)的成立為前提。也就是說,黎曼猜想及其推廣形式一旦被證明,這一千多個命題將被確立為定理,對數學領域產生深遠的影響;而如果黎曼猜想被證明是錯誤的,那麼這些命題中的一部分也將隨之失去其有效性。新的突破來自MIT數學教授LarryGuth和牛津大學

語言模型真的能用於時序預測嗎?根據貝特里奇頭條定律(任何以問號結尾的新聞標題,都能夠用「不」來回答),答案應該是否定的。事實似乎也果然如此:強大如斯的LLM並不能很好地處理時序資料。時序,即時間序列,顧名思義,是指一組依照時間發生先後順序排列的資料點序列。在許多領域,時序分析都很關鍵,包括疾病傳播預測、零售分析、醫療和金融。在時序分析領域,近期不少研究者都在研究如何使用大型語言模型(LLM)來分類、預測和偵測時間序列中的異常。這些論文假設擅長處理文本中順序依賴關係的語言模型也能泛化用於時間序
