Senior
Ինչպե՞ս նվազեցնել KV-կեշի չափը (GQA, MQA, սահող պատուհան):
sobes.tech AI
Պատասխան AI-ից
GKV-կեշ (Key-Value cache) GQA (Grouped Query Attention), MQA (Multi-Query Attention) և սահող պատուհանի համատեքստում օգտագործվում է միջանկյալ բանալի և արժեքների պահեստավորման համար, որպեսզի արագացնի տեքստի սերունդը։ GKV-կեշի չափը նվազեցնելու համար կարող են կիրառվել հետևյալ մոտեցումները՝
- Սահող պատուհան՝ պահել միայն վերջին N տոքենները, այլ ոչ թե ամբողջ պատմությունը։ Սա սահմանափակում է կեշի չափը և նվազեցնում հիշողության սպառումը։
- MQA GQA-ի փոխարեն՝ MQA-ն օգտագործում է մեկ բանալի և արժեք բոլոր ուշադրության գլխների համար, ինչը զգալիորեն նվազեցնում է կեշի չափը GQA-ի համեմատ, որտեղ յուրաքանչյուր գլխի համար պահվում է առանձին բանալի և արժեք։
- KV-կեշի քվանտացում՝ բանալիները և արժեքները պահել սեղմված ձևով, օրինակ՝ նվազագույն ճշգրտությամբ (float16, int8), որպեսզի նվազեցվի հիշողության ծավալը։
- Անհետաքրքիր տարրերի հեռացում՝ ժամանակ առ ժամանակ մաքրել կամ սեղմել կեշը, հեռացնելով հնացած կամ քիչ կարևոր տարրեր։
Օրինակ սահող պատուհանի օգտագործման՝
window_size = 512 # տոքենների քանակը կեշում
kv_cache = kv_cache[-window_size:]
Այս մեթոդների համադրությամբ կարող է արդյունավետորեն նվազեցնել GKV-կեշի չափը՝ առանց զգալի կորուստների տեքստի սերնդի որակում։