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