推論與服務

前綴快取(prefix caching,推論)

對一個已部署模型的許多請求,往往共享一模一樣的開頭:相同的長系統提示、相同的少樣本範例、相同的被檢索文件,或每一輪追問時相同的對話歷史。為每個請求重算這段共享前綴的 KV 快取是純粹的浪費,因為對固定前綴做注意力,無論後面接什麼,產生的鍵與值都相同。前綴快取把算好的共同前綴 KV 留著重複使用,於是一個以見過前綴開頭的新請求,能直接跳到它新穎的後綴。

實作上會把提示內容雜湊成區塊,再以這些雜湊值作為共享快取的鍵;多虧分頁 KV 記憶體,多個序列只要把各自的區塊表指向同一批實體分頁即可,一旦延續分歧就以寫時複製分家。好處集中在 prefill 階段:對於長的共享上下文,首 token 時間大幅下降,GPU 也省下重複的算力。在多輪對話中,整段先前的對話在每個新回合都成了免費的前綴。

設計上的問題是記憶體吃緊時的驅逐策略,以及精確性——命中必須是逐位元組相同的前綴,否則被重用的 KV 會悄悄地錯掉。

前綴快取砍的是 prefill、不是 decode——它對共享上下文加快的是首 token 時間,一旦生成開始,對每 token 速率毫無幫助。

又称
automatic prefix caching前綴快取shared-prefix KV reuse