What is StreamingLLM?
StreamingLLM 是一個高效的框架,可讓大型語言模型 (LLM) 部署在串流應用程式中,而不會犧牲效率和效能。它解決了在解碼過程中快取前一個 token 的金鑰和值狀態 (KV)、以及熱門的 LLM 無法概括長度超過訓練序列的較長文字的挑戰。StreamingLLM 透過引入注意力匯集器並保留初始 token 的 KV,讓使用有限長度注意力視窗訓練的 LLM 在不微調的情況下,就能處理無限序列長度。它比滑動視窗重新計算基準高出 22.2 倍的加速。
關鍵特色:
1. 高效部署:StreamingLLM 可讓 LLM 用於串流應用程式,而不會影響效率或效能。
2. 注意力匯集器:StreamingLLM 透過將初始 token 的 KV 保留為注意力匯集器,即使文字長度超過快取大小,也能恢復視窗注意力的效能。
3. 概括至無限序列長度:有了 StreamingLLM,LLM 能夠處理任何長度的輸入,而不需要快取重置或犧牲一致性。
4. 改進串流部署:在預訓練期間加入一個佔位符 token 作為專用的注意力匯集器,可進一步增強串流部署。
5. 速度最佳化:在串流設定中,StreamingLLM 可實現比滑動視窗重新計算基準高出 22.2 倍的加速。
用例:
1. 多回合對話:StreamingLLM 針對模型需要持續運作、且不大量使用記憶體或依賴過去資料的場景進行最佳化,這使其非常適合多回合對話。
2. 基於 LLM 的日常助理:有了 StreamingLLM,日常助理可以持續運作,並根據最近的對話產生回應,而不需要快取重新整理或耗時的重新計算。
StreamingLLM 是一個高效的框架,可在保持高性能和效率的同時,將 LLM 部署在串流應用程式中。StreamingLLM 透過引入注意力匯集器並保留初始 token 的 KV,讓 LLM 在不微調的情況下,就能處理無限序列長度。它特別適用於多回合對話和基於 LLM 的日常助理,與傳統方法相比,它提供了改進的串流部署和顯著的速度最佳化。