Sobes.tech
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-կեշի չափը՝ առանց զգալի կորուստների տեքստի սերնդի որակում։