E048_vLLM_-_Inferencia_rápida,_memoria_eficiente
Ep. 48

E048_vLLM_-_Inferencia_rápida,_memoria_eficiente

Episode description

Analizamos VLLM, la herramienta open source que revoluciona la inferencia de Grandes Modelos de Lenguaje (LLMs) al solucionar el principal cuello de botella: la ineficiencia de la memoria GPU. Exploramos cómo su innovadora arquitectura Paged Attention, inspirada en la paginación de sistemas operativos, elimina la fragmentación de la caché KV, logrando reutilización dinámica y ahorros masivos. Descubra por qué VLLM consigue hasta cuatro veces más rendimiento (throughput) que sistemas previos, facilitando optimizaciones de memoria (como copy-on-write) que son cruciales para el futuro diseño de hardware de inteligencia artificial.

Download transcript (.srt)
0:10

Buenas, esto es BIMPRAXIS, el podcast donde el

0:15

BIM se encuentra con la inteligencia artificial.

0:20

Exploramos la ciencia, la tecnología y el futuro

0:23

desde el enfoque de la arquitectura, ingeniería y

0:26

construcción.

0:28

¡Empezamos!

0:37

Muy buenas.

0:38

Episodio 48.

0:40

Hoy continuamos nuestra serie sobre herramientas open source

0:44

gratuitas relacionadas con la inteligencia artificial.

0:47

Y la de hoy es especialmente interesante para

0:51

cualquiera que trabaje con modelos de lenguaje grandes.

0:54

Hoy vamos a analizar a fondo VLLM.

0:57

Bienvenidos al podcast de BIMPRAXIS.

0:59

Nuestra misión hoy es desentrañar por qué esta

1:02

herramienta está causando tanto revuelo.

1:05

Tenemos como fuente el paper original de sus

1:07

creadores en UC Berkeley y también, claro, la

1:09

documentación del proyecto.

1:11

Vale, vamos a empezar a desgranar esto.

1:14

Lo primero que llama la atención es el

1:15

problema que VLLM intenta resolver.

1:19

Ejecutar estos modelos de lenguaje gigantescos es carísimo.

1:21

Una de las fuentes estima que procesar una

1:24

petición a un LLM puede ser, ojo, 10

1:27

veces más caro que una búsqueda de palabras

1:30

clave tradicional.

1:31

Exacto.

1:32

Y el principal cuello de botella, que es

1:34

lo interesante, no es siempre la capacidad de

1:37

cálculo.

1:38

No.

1:39

Uno pensaría que es la potencia bruta de

1:41

la máquina.

1:42

Pues no siempre.

1:43

Es la memoria.

1:44

La memoria de las GPUs.

1:47

Pensemos en una GPU potente como la NVIDIA

1:49

A100, con 40 GB de memoria, que es

1:52

el ejemplo que usan.

1:52

El paper nos da un desglose que es

1:55

muy revelador.

1:56

Aproximadamente el 65% de esa memoria se va

2:00

solo en almacenar los pesos del modelo.

2:03

Que son estáticos, ¿no?

2:04

No cambian.

2:05

Eso es, son estáticos.

2:06

Pero casi un 30% se destina a algo

2:09

llamado la caché caure.

2:11

Y esta, esta es la clave de todo.

2:14

Caché KV.

2:15

Suena técnico, pero es fundamental.

2:17

Es básicamente la memoria a corto plazo del

2:19

modelo para una conversación.

2:21

Cuando generas texto, el modelo necesita recordar el

2:24

contexto, las palabras anteriores, para saber qué viene

2:27

después.

2:28

Esa memoria es la caché KV.

2:30

Justo.

2:30

El problema es que es dinámica.

2:33

Crece con cada nueva palabra generada y su

2:35

tamaño final.

2:37

Es impredecible.

2:38

Totalmente impredecible.

2:40

Y ahí está el gran reto.

2:41

Los sistemas tradicionales para gestionar esta memoria recurrían

2:44

a una solución, digamos, poco eficiente.

2:47

¿Qué hacían exactamente?

2:49

Reservaban un bloque de memoria contiguo y enorme

2:52

para cada petición, pensando siempre en la longitud

2:55

máxima posible de la respuesta.

2:57

Por ejemplo, 2048 tokens.

3:00

Ahí es donde la cosa se pone de

3:01

verdad interesante.

3:02

Esta solución es como reservar un autobús entero

3:05

para una sola persona por si acaso decide

3:07

invitar a 50 amigos por el camino.

3:09

Esa es la analogía.

3:10

Y el resultado, según los datos del estudio,

3:13

es un desperdicio masivo.

3:14

En sistemas como Faster Transformer u Orca, solo

3:18

entre el 20% y el 40% de la

3:20

memoria de la caché KTV se usa realmente

3:23

para almacenar información útil.

3:25

¿Un momento, solo un 20 o 40%?

3:28

Sí, sí.

3:28

El resto se pierde por lo que llaman

3:30

fragmentación interna y externa.

3:33

Es un desperdicio enorme.

3:34

Madre mía.

3:36

Vayamos entonces a la solución, que me parece

3:38

fascinante.

3:39

Lo que es fascinante aquí es la solución

3:41

que proponen los creadores de VLM llamada Paged

3:44

Attention.

3:46

La inspiración viene de un concepto clásico de

3:48

los sistemas operativos, la memoria virtual y la

3:51

paginación.

3:52

Una idea brillante.

3:54

O sea, no están inventando la rueda, sino

3:56

aplicando un concepto superprobado a un problema nuevo.

4:00

Totalmente.

4:01

En lugar de exigir un gran bloque de

4:03

memoria contiguo, Paged Attention divide la caché KB

4:07

en pequeños bloques de tamaño fijo.

4:09

Como si fueran páginas de un libro.

4:11

Esa es la analogía perfecta.

4:13

Es como si en lugar de necesitar una

4:15

estantería vacía y larguísima para un libro que

4:17

aún no se ha escrito, simplemente vas añadiendo

4:20

páginas sueltas donde encuentres hueco.

4:22

Y tienes un índice que te dice dónde

4:24

está cada una.

4:25

Y los asigna dinámicamente a medida que se

4:27

generan nuevas palabras.

4:29

Y esto elimina casi por completo la fragmentación,

4:31

claro.

4:32

Casi por completo.

4:34

La memoria no utilizada es mínima.

4:35

Se confina al último bloque de cada secuencia.

4:38

Y como todos los bloques tienen el mismo

4:40

tamaño, se pueden reutilizar de forma muy, muy

4:43

eficiente.

4:44

Vale, ¿y todo esto en qué se traduce

4:46

en la práctica?

4:47

¿Qué gana alguien que use VBLM?

4:50

Pues el resultado directo es un aumento espectacular

4:52

del rendimiento, el throughput.

4:55

¿De cuánto estamos hablando?

4:56

Las evaluaciones del paper muestran que VBLM consigue

5:00

entre 2 y 4 veces más rendimiento que

5:02

otros sistemas de última generación, y esto con

5:05

el mismo nivel de latencia.

5:07

¿2 a cuatro veces.

5:08

Es una barbaridad.

5:10

Permite procesar muchas más peticiones simultáneamente en la

5:13

misma GPU.

5:14

Simplemente porque aprovecha la memoria de una forma

5:17

mucho más inteligente.

5:19

Y no es solo una cuestión de no

5:21

desperdiciar memoria.

5:23

Esta arquitectura de páginas o bloques abre la

5:26

puerta a optimizaciones muy ingeniosas, ¿verdad?

5:29

Sí, y esto conecta con el panorama general.

5:31

Permite compartir memoria de forma muy flexible.

5:34

Por ejemplo, en el muestreón paralelo, cuando pides

5:37

al modelo varias posibles respuestas a un mismo

5:40

prompt.

5:41

Claro, todas las respuestas comparten el contexto inicial.

5:44

El prompt es el mismo.

5:46

Eso es.

5:46

Con BLLM, todas esas secuencias pueden apuntar a

5:50

los mismos bloques de memoria física para el

5:52

prompt, ahorrando una cantidad significativa de espacio.

5:55

¿Y se cuantifica ese ahorro?

5:57

Sí, el estudio lo cuantifica entre un 6

6:00

y un 10% en sus experimentos.

6:02

¿Y mencionan un mecanismo llamado copia en escritura,

6:05

o copy and write, otro concepto de los

6:08

sistemas operativos?

6:09

Correcto.

6:10

Cuando una de las secuencias necesita modificar un

6:12

bloque compartido, en lugar de alterarlo para todas…

6:16

El sistema crea una copia de ese bloque

6:18

solo para esa secuencia.

6:20

Tremendamente eficiente, sí.

6:21

Y esto se vuelve aún más potente en

6:23

algoritmos más complejos como la búsqueda por haz,

6:26

Beam Search.

6:27

Donde hay muchos candidatos a mejor respuesta que

6:29

comparten gran parte de su historia.

6:31

Ahí el ahorro de memoria, según el paper,

6:33

puede llegar a ser superior al 55%.

6:36

Más del 55%.

6:38

Es un cambio de paradigma total.

6:40

Desde luego.

6:41

Y por lo que veo en la documentación

6:42

del proyecto, VLM no es solo un concepto

6:45

académico.

6:46

Es un proyecto de código abierto muy activo.

6:49

Sí, empezó en UC Berkeley, pero ahora es

6:50

totalmente comunitario.

6:52

ofrece integración con los modelos más populares de

6:54

Hugging Face, una API compatible con la de

6:57

OpenAI para facilitar la adopción, lo cual es

6:59

un movimiento muy inteligente para que la gente

7:02

lo pueda probar y migrar fácilmente, y funciona

7:06

en una variedad de hardware impresionante.

7:09

GPUs de NVIDIA y AMD e incluso soporte

7:12

para hardware de Intel, IBM o Google.

7:16

Además, esta arquitectura de gestión de memoria resuelve

7:19

otros casos de uso comunes.

7:21

Por ejemplo, las peticiones que comparten un prefijo

7:25

común.

7:26

Como una serie larga de instrucciones o ejemplos

7:28

que se repiten para diferentes usuarios, te refieres.

7:31

Justo.

7:32

Con VBLM, la caché KV de ese prefijo

7:36

se puede calcular una sola vez y reutilizar

7:38

para todas las peticiones.

7:40

Acelerando enormemente el proceso.

7:42

Muchísimo.

7:43

Los experimentos con un modelo de traducción muestran

7:46

mejoras de hasta 3.5 veces en el rendimiento

7:49

gracias a esto.

7:50

Es una optimización muy potente.

7:52

Entonces, resumiendo, VLLM ataca un problema fundamental, la

7:58

ineficiencia de la memoria en la inferencia de

8:01

LLMs, con una solución elegante, inspirada en décadas

8:05

de conocimiento en sistemas operativos y los resultados

8:08

son, bueno, espectaculares.

8:11

Y esto plantea una pregunta importante de cara

8:13

al futuro.

8:14

El paper señala que la velocidad de computación

8:16

de las GPUs crece más rápido que su

8:18

capacidad de memoria.

8:20

El cuello de botella de la memoria es

8:22

cada vez más crítico.

8:23

Cada vez más.

8:25

VLLM lo soluciona a nivel de software.

8:29

La pregunta a reflexionar es, ¿deberían los futuros

8:31

diseños de hardware para IA incorporar de base

8:34

principios de gestión de memoria no contigua como

8:37

la paginación?

8:38

Es una gran pregunta.

8:39

¿Podríamos estar viendo el principio del fin de

8:41

la idea de que los grandes tensores de

8:43

datos deben residir siempre en bloques contiguos de

8:46

memoria para ser eficientes?

8:48

Quizá.

8:49

BLM ha demostrado que hay otro camino, uno

8:52

mucho más eficiente, y puede que el hardware

8:55

del futuro tenga que empezar a pensar de

8:57

esta manera.

8:58

Y así hemos llegado al final de nuestro

9:00

episodio de hoy.

9:01

Os recordamos que detrás de las voces sintéticas

9:04

que escucháis en estos episodios, y que están

9:06

generadas con Notebook LM, pues en la trastienda

9:09

está un humano con meñiques, muñecas y riñones,

9:12

entre otras cosas, que no es otro que

9:14

Julio Pablo Vázquez, el que dirige el podcast.

9:17

Si escuchas algún error, el error será humano

9:19

en un 99% de los casos.

9:22

Ya sabes a quién pedir explicaciones.

9:25

Hasta la próxima, amigos.

9:37

Y hasta aquí el episodio de hoy.

9:39

Muchas gracias por tu atención.

9:50

Esto es BIMPRAXIS.

9:53

Nos escuchamos en el próximo episodio.

10:16

¡Suscríbete al canal!