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-კეშის ზომა, არ ზიანს აყენებს გენერირებული ტექსტის ხარისხს.