大模型每生成一個token都要重算所有歷史?KV緩存說:不必。
一圖看懂:KV緩存長什么樣
想象Transformer(變換器)是個流水線工人。沒緩存時,他每組裝一個零件,就要把前面所有零件重新檢查一遍。有了KV緩存,他把檢查過的零件狀態存進抽屜,下次直接取用。
具體來說,Key(鍵)和Value(值)是注意力機制的兩組向量。緩存就是把它們按token位置存起來,新token只和這些"記憶"做注意力計算,復雜度從O(n2)降到O(n)。
為什么叫"內省機制"
原文提了個有趣角度:KV緩存讓模型能"回頭看"早期位置的計算結果。Value向量尤其關鍵——它承載了每個token的語義貢獻。緩存這些值,等于給模型開了個可查詢的歷史日志。
這不是簡單的性能優化。它改變了Transformer的本質屬性:從嚴格無狀態,變成"有選擇地有狀態"。
工程上的甜蜜點
長文本場景收益最大。32K上下文沒緩存是災難,有緩存只是線性增長。但代價也明顯:顯存占用隨序列長度膨脹,推理框架得做精細的內存管理。
業內現在卷的是PagedAttention(分頁注意力)這類技術——把KV緩存切成塊動態調度,像操作系統的虛擬內存。
一個冷觀察
我們花大量精力讓模型"記住",卻也在研究怎么讓它"忘記"。上下文太長時,早期KV會被壓縮或丟棄。所以AI的記憶和人類一樣——不是存不下,是檢索貴,且遲早要遺忘。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.