論文 Efficient Inference of Vision Instruction-Following Models with Elastic Cache 介紹了一種名為Elastic Cache的新型KV緩存管理技術(shù),旨在提高多模態(tài)指令跟隨模型的時間和內(nèi)存效率,同時保持其生成長且連貫輸出的能力。
Elastic Cache的主要思想。指令編碼占據(jù)了大部分的理論計算成本,而實際的延遲卻可以忽略不計(這里我們以基于1024個指令生成512個標(biāo)記為例)。這表明,不僅僅是模型權(quán)重,輸出生成中使用的KV緩存也可能成為一個重要的瓶頸。我們提出了Elastic Cache,通過基于指令標(biāo)記重要性得分的緩存合并,并在輸出生成階段輔以固定點消除策略。我們的設(shè)計在顯著加速推理的同時,保持了生成質(zhì)量。
主要貢獻(xiàn)
Elastic Cache技術(shù):提出了一種新的KV緩存管理方法,通過在指令編碼和輸出生成階段使用不同的稀疏化策略來優(yōu)化緩存管理。
緩存合并策略:在指令編碼階段,使用基于注意力得分的重要性度量來選擇關(guān)鍵的KV向量,并將這些向量作為錨點,將整個指令序列中的其他KV向量與最近的錨點合并。
動態(tài)緩存管理:在輸出生成階段,采用固定點消除策略,動態(tài)管理KV緩存,平衡初始指導(dǎo)和新內(nèi)容之間的緩存。
實驗
實驗設(shè)置
基線方法:與兩種最先進(jìn)的基線方法Heavy-Hitter Oracle (H2O)和StreamingLLM (Local)進(jìn)行比較。
模型選擇:使用LLaVA-7B/13B和Qwen-VL-7B作為視覺指令調(diào)優(yōu)模型。
評估指標(biāo):使用Perplexity (PPL)和ROUGE-L得分來評估模型性能。
視覺指令跟隨任務(wù)的結(jié)果。我們使用PPL(越低越好)和ROUGE(越高越好)指標(biāo)評估Elastic Cache及基線方法。我們進(jìn)行了不同規(guī)模的LLaVA-1.5(a)(b)和Qwen-VL-7B(c)的視覺任務(wù)實驗。我們的Elastic Cache始終優(yōu)于基線方法。
實驗結(jié)果
視覺指令跟隨:在視覺指令跟隨任務(wù)中,Elastic Cache在不同的KV緩存預(yù)算下表現(xiàn)優(yōu)于基線方法,展示了更好的性能和魯棒性。
緩存策略比較:Elastic Cache在緩存預(yù)算減少的情況下,仍能生成連貫且合理的輸出,而基線方法在緩存預(yù)算減少時性能顯著下降。
圖像識別問題的生成結(jié)果。我們將KV緩存預(yù)算固定為0.5。在這種實驗設(shè)置下,Local和H2O緩存修剪方法無法生成合理的結(jié)果,而Elastic Cache則能夠保持生成能力,提供詳細(xì)且正確的圖像描述。
消融實驗
丟棄位置:在輸出生成階段,固定特定的丟棄位置比簡單地丟棄最遠(yuǎn)的緩存或頻率策略表現(xiàn)更好。
合并策略:相比簡單地驅(qū)逐緩存,合并未使用的緩存與已驗證的緩存可以獲得更好的性能。
重要性度量:使用注意力得分的總和作為重要性度量,比移動平均值和均值等其他方法表現(xiàn)更好。
結(jié)論與影響
結(jié)論:Elastic Cache顯著提高了指令跟隨模型的推理效率和生成能力,超越了現(xiàn)有的基線方法。
局限性:依賴注意力得分進(jìn)行緩存優(yōu)化可能并不總是與最計算效率的緩存策略一致。
潛在負(fù)面影響:Elastic Cache的效率和速度提升可能會加速AI系統(tǒng)在監(jiān)控應(yīng)用中的部署。
相關(guān)信息
代碼:https://github.com/liuzuyan/elasticcache
論文:https://arxiv.org/abs/2407.18121v1