PagedAttention és un algorisme d'atenció per al servei eficient de models de llenguatge grans (LLM). Va ser introduït el 2023 per Woosuk Kwon i els seus col·legues a l'article Efficient Memory Management for Large Language Model Serving with PagedAttention, juntament amb el motor de servei vLLM. El mètode emmagatzema la memòria cau valor-clau utilitzada durant la descodificació autoregressiva en blocs de mida fixa que es poden assignar a memòria física no contigua, prenent idees de la memòria virtual, la paginació i el disseny del sistema operatiu.
Rerefons En la inferència del transformador, la memòria cau valor-clau creix amb la longitud de la seqüència i el nombre de sol·licituds simultànies. Kwon et al. van argumentar que els sistemes de servei anteriors normalment reservaven regions de memòria cau contigües per endavant, cosa que provocava espai reservat, fragmentació interna i fragmentació externa. En els seus experiments, l'article va informar que l'ús efectiu de la memòria dels sistemes anteriors podia caure fins a un 20,4%.
Descripció PagedAttention divideix la memòria cau de cada seqüència en blocs KV de mida fixa. La memòria cau d'una sol·licitud es representa com una seqüència de blocs lògics, mentre que una taula de blocs assigna aquests blocs lògics a blocs físics de memòria de la GPU. Com a resultat, els blocs lògics veïns no necessiten ser contigus a la memòria física, i es poden assignar nous blocs a demanda a mesura que avança la generació.
El disseny també facilita compartir l'estat de la memòria cau entre rutes de descodificació relacionades. En vLLM, els blocs físics es poden comptar per referències i compartir-los entre sol·licituds o branques, i s'utilitza la còpia en escriptura amb granularitat de blocs quan s'ha de modificar un bloc compartit. L'article original va aplicar aquest disseny al mostreig paral·lel, la cerca de feix i les indicacions amb prefixos compartits.
Formulació matemàtica Per a un testimoni de consulta en l'autoatenció causal, la sortida estàndard de l'atenció es pot escriure com on , , i són els vectors de consulta, clau i valor, i és la dimensió de l'atenció.
Si la memòria cau està dividida en blocs de mida , els blocs clau i valor es poden escriure com PagedAttention realitza el càlcul per blocs: on és el vector de les puntuacions d'atenció per a -èsim bloc KV. En la formulació donada per Kwon et al., això preserva el càlcul de l'atenció causal alhora que permet que els blocs clau i valor resideixin en memòria física no contigua.
Rendiment i ús L'article de vLLM va informar que, en les càrregues de treball avaluades, l'ús de PagedAttention i el disseny de gestió de memòria associat van millorar el rendiment de servei entre 2 i 4 vegades respecte a les línies de base comparades, incloent-hi FasterTransformer i Orca, alhora que van preservar les sortides del model. En experiments amb OPT-13B amb la traça d'Alpaca, l'article també va informar d'un estalvi de memòria del 6,1–9,8% per al mostreig paral·lel i del 37,6–55,2% per a la cerca de feix mitjançant la compartició de blocs KV.
Una enquesta del 2024 sobre sistemes de servei LLM va descriure PagedAttention com una norma de la indústria en els marcs de servei LLM, i cita el suport de TGI, vLLM i TensorRT-LLM.
Limitacions i alternatives Treballs posteriors han descrit els compromisos en l'enfocament. L'article de vAttention del 2025 argumentava que PagedAttention requereix que els nuclis d'atenció es reescriguin per admetre la paginació i augmenta la complexitat del programari, els problemes de portabilitat, la redundància i la sobrecàrrega d'execució, proposant en canvi un gestor de memòria que mantingui la memòria cau contigua a la memòria virtual mentre es basa en la paginació a demanda per a l'assignació física.
Atenció A diferència de PagedAttention, vAttention no introdueix una regla d'atenció diferent; manté el càlcul d'atenció estàndard. En la notació de Prabhu et al., els tensors clau i valor per a una sol·licitud vista fins ara són , on és la longitud del context vista fins ara, és el nombre de caps KV en un treballador, i és la dimensió de cada capçal KV.
En sistemes anteriors a PagedAttention, la memòria cau K (o memòria cau V) a cada capa d'un treballador s'assigna normalment com un tensor de forma 4D. on és la mida del lot i és la longitud màxima del context que admet el model.
vAttention conserva aquesta vista contigua de memòria virtual alhora que ajorna l'assignació de memòria física al temps d'execució. Un marc de treball que serveix manté tensors K i V separats per a cada capa, de manera que vAttention reserva buffers de memòria virtual en un treballador, on és el nombre de capes gestionades per aquest treballador.
La mida màxima d'un buffer de memòria virtual és on és la mida màxima de la memòria cau K (o memòria cau V) per capa d'una sola sol·licitud en un treballador. El document defineix on és el nombre de bytes necessaris per emmagatzemar un element.
En aquesta formulació, vAttention manté la memòria cau KV contigua a la memòria virtual i es basa en la paginació a demanda per a l'assignació física, en lloc de modificar el nucli d'atenció per operar sobre blocs de memòria cau KV no contigus.
Referències
Categoria:Algorismes Categoria:Intel·ligència artificial