Descriere & Utilizare
În sistemele clasice de inferență, memoria pentru KV Cache trebuia alocată static în blocuri contigue pentru lungimea maximă posibilă a contextului (ex: 8192 tokeni), provocând o risipă de peste 60-80% din VRAM din cauza fragmentării.
PagedAttention împarte KV Cache-ul în blocuri mici (pagini de 16 sau 32 de tokeni) pe care le alocă dinamic în memorie exact pe măsură ce tokenii sunt generați. Acest lucru permite partajarea memoriei între mai multe conversații paralele (cum ar fi la generarea paralelă sau decodarea în arbore).
Cum să o reții ușor
💡 Tabela de pagini a sistemului de operare (OS Virtual Memory): un fișier mare nu trebuie salvat într-un sector continuu pe hard disk, ci este împărțit în mici blocuri libere găsite pe toată suprafața discului.
Opțiuni și parametri tehnici
- Folosește o tabelă de mapare logică-fizică a blocurilor de atenție.
- Kernel-urile CUDA custom accesează direct adresele fizice fără copiere intermediară.
Exemple practice și cazuri de utilizare
- Crește numărul de cereri paralele deservite de un singur GPU Nvidia A100/H100 de la 4 la peste 25 de utilizatori simultani.
Sfaturi de configurare & capcane
PagedAttention este activat automat în vLLM fără să fie nevoie de parametri manuali speciali.
Comenzi și ghiduri înrudite
continuous-batching: Comandă asociată din acest modul.gpu-memory-utilization: Comandă asociată din acest modul.max-model-len: Comandă asociată din acest modul.