Senior
Ako zmenšiť veľkosť KV cache (GQA, MQA, posuvné okno)?
sobes.tech AI
Odpoveď od AI
KV-cache (Key-Value cache) v kontexte modelov s GQA (Grouped Query Attention), MQA (Multi-Query Attention) a posuvným oknom sa používa na ukladanie medzičasových kľúčov a hodnôt pozornosti, aby sa urýchlila generácia textu. Na zníženie veľkosti KV-cache možno použiť nasledujúce prístupy:
- Posuvné okno: ukladať do cache iba posledných N tokenov, namiesto celej histórie. To obmedzuje veľkosť cache a znižuje spotrebu pamäte.
- MQA namiesto GQA: MQA používa jeden kľúč a hodnotu pre všetky hlavy pozornosti, čo výrazne znižuje veľkosť cache v porovnaní s GQA, kde sa pre každú hlavu ukladajú samostatný kľúč a hodnota.
- Kvantizácia KV-cache: ukladať kľúče a hodnoty v komprimovanej podobe, napríklad s nižšou presnosťou (float16, int8), aby sa znížila veľkosť pamäte.
- Odstránenie nerelevantných prvkov: pravidelne čistiť alebo komprimovať cache, odstraňujúc zastarané alebo menej dôležité prvky.
Príklad použitia posuvného okna:
window_size = 512 # počet tokenov v cache
kv_cache = kv_cache[-window_size:]
Kombináciou týchto metód možno efektívne znížiť veľkosť KV-cache bez významnej straty v kvalite generovaného textu.