最高20倍! 壓縮ChatGPT等模型文本提示,極大節省AI算力

原文來源:AIGC開放社區

圖片來源:由無界AI生成

在長文本場景中,ChatGPT 等大語言模型經常面臨更高算力成本、更長的延遲以及更差的性能。 為了解決這三大難題,微軟開源了LongLLMLingua。

據悉,LongLLMLingua 的核心技術原理是將“文本提示”實現最高 20 倍的極限壓縮,同時又可以準確評估提示中內容與問題的相關程度,消除無關內容保留關鍵資訊,達到降本增效目的。

實驗結果顯示,經過 LongLLMLingua 壓縮后的提示,比原始提示的性能提升了 17.1%, 同時輸入 GPT-3.5-Turbo 的 tokens 減少了 4 倍。 在 LongBench 和 ZeroScrolls 測試中顯示,每 1,000 個樣本節省 28.5 美元和 27.4 美元的成本。

當壓縮約 10 k tokens 的提示,壓縮率在 2-10 倍範圍內時,端到端延遲可以降低 1.4-3.8 倍,顯著加速了推理速率。

論文位址:

開源位址:

從介紹論文來看,LongLLMLingua主要由問題感知的粗細粒度壓縮、文檔重排序、動態壓縮比率和壓縮後子序列恢復4大模組組成。

問題感知的粗粒度壓縮模組

該模組的設計思路是,使用問題文本進行條件化,評估每個段落與問題的相關程度,保留相關度更高的段落。

具體來說,通過計算問題文本與各段落的條件困惑度,判斷二者的邏輯關聯程度,條件困惑度越低表示相關性越高。

在此基礎上,設置閾值保留困惑度較低的段落,過濾掉與問題不相關的段落。 這實現了根據問題快速移除大量冗餘資訊的粗粒度壓縮。

文件重排序模組

研究表明,在提示中,靠近開始和結束位置的內容對語言模型的影響最大。 所以該模組根據各段落的相關程度對其進行重新排序,使關鍵資訊出現在對模型更敏感的位置,減少中間位置信息損失。

通過利用粗粒度壓縮模塊計算出的各段落與問題的關聯度,對段落進行排序,使關聯度最高的段落排在最前面。 這進一步增強了模型對關鍵資訊的感知。

在獲取重排序后的相關段落後,需要進一步壓縮每個段落內的詞量。 此時動態壓縮比率模組對提示進行精細調控。

動態壓縮比率模組

對更相關的段落使用更低的壓縮比率,分配更多的保留詞語預算,而對相關性較弱的段落則使用更高的壓縮比率。

通過利用粗粒度壓縮結果中的段落關聯度,動態確定每個段落的壓縮比率。 關聯度最高的段落壓縮比率最低,依次類推。

實現自適應、細粒度的壓縮控制,有效保留關鍵資訊。 壓縮后還需要提高結果的可靠性,這就需要下面的壓縮後子序列恢復模組。

壓縮後子序列恢復模組

在壓縮過程中,一些關鍵詞可能被過度刪除,影響資訊的完整性,而該模組可以檢測並恢復這些關鍵詞。

工作原理是,利用源文本、壓縮文本、生成文本之間的子序列關係,從生成結果中恢復完整的關鍵名詞片語,修復壓縮帶來的資訊缺失,提高結果的準確性。

整個過程有點像我們快速流覽文章、篩選資訊、整合要點的工作流程等,使模型快速捕捉文本的關鍵資訊,生成高品質的摘要。

LongLLMLingua實驗數據

研究人員構建了一個基於Natural Questions的多文檔問答數據集,其中每個示例包含一個問題及20個相關文檔,並需要從這20個文檔中查找到答案。

該數據集類比了實際的搜尋引擎和問答場景,可以評估模型在長文檔中的問答性能。

此外,研究人員還採用了更為通用的長文本理解基準測試集,包括LongBench和ZeroSCROLLS,以評估方法在更廣泛場景下的效果。

其中,LongBench覆蓋單文檔問答、多文檔問答、文本摘要、少樣本學習等任務,包含英文數據集。 ZeroSCROLLS則包括文本摘要、問答理解、情感分析等典型語言理解任務。

在這些數據集上,研究人員比較了LongLLMLingua壓縮后的提示與原始提示在大語言模型上的性能。 同時,也與其他提示壓縮方法進行了對比,如基於困惑度的LLMLingua和基於檢索的方法,評估了LongLLMLingua的有效性。

實驗結果顯示,LongLLMLingua壓縮后的提示在問答準確率、生成文本質量等指標上普遍優於原始提示

例如,在NaturalQuestions上,壓縮4倍的提示提升了17.1%的問答準確率。 當壓縮約10k tokens的提示,壓縮率在2-10倍範圍內時,端到端延遲可以降低1.4-3.8倍。 這充分證明LongLLMLingua可以在壓縮提示的同時提升關鍵資訊提取。

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 留言
  • 轉發
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate App
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)