Saltar al contenido
V-Smart.

Cuánto contexto cabe de verdad en 32 GB

El contexto es la memoria de la conversación — todo lo que el modelo tiene delante cuando formula la respuesta. Es el segundo consumidor de memoria de la tarjeta tras los pesos del modelo, y normalmente es él quien decide si la configuración arranca siquiera. Comprobamos dónde está el límite con 32 GB. La respuesta resultó sorprendente: la mayoría de las veces no está en el hardware.

En nueve de cada diez perfiles no limita la memoria, sino el propio modelo

Nuestra máquina expone diez perfiles de trabajo listos para usar. Nueve de ellos están en 262 144 tokens de contexto — y ese no es el límite de las tarjetas, sino el máximo con el que esos modelos fueron entrenados. Por encima de ese valor no se puede subir por mucha memoria que se añada.

Es la conclusión más importante de toda la serie de mediciones: con 32 GB, los modelos actuales de la clase de 26–35 mil millones de parámetros caben con el contexto completo para el que fueron diseñados. Más memoria no compraría aquí ni un token más.

El único perfil limitado por la memoria es el modelo de 31 mil millones con soporte de imagen y vídeo — el módulo de visión y el archivo aparte del apuntador se comen el espacio, así que el contexto se acaba en 167 936 tokens. Es la configuración más apretada de todo el conjunto: tras la carga completa quedan en las tarjetas 464 y 144 MB libres. El siguiente escalón ya no carga.

Cuánto cuesta el contexto

La cuenta es lineal y fácil de recordar: unos 200–320 MB en cada tarjeta por cada 8 192 tokens de contexto. La dispersión viene de la arquitectura del modelo — con soporte de imagen se añade además la memoria del apuntador. Y por qué la memoria se cuenta por separado en cada una de las dos tarjetas lo explicamos en el artículo sobre el reparto del modelo entre tarjetas.

La horquilla entre modelos puede ser grande. Un modelo con atención de arquitectura híbrida consume unos 35 kB por token, y un modelo clásico — unos 51 kB. Este segundo, por esa razón, se queda en 208 000 tokens en lugar de 262 000, aunque él mismo estaría dispuesto a seguir. La arquitectura del modelo decide por tanto la capacidad de contexto con tanta fuerza como la cantidad de memoria.

Cómo medimos — y por qué el método obvio miente

Tres cosas resultaron clave, y cada una es una trampa en la que es fácil caer.

La memoria libre hay que leerla después del trabajo, no después de la carga. La biblioteca de cálculo reserva su búfer de trabajo con pereza — solo con la primera multiplicación de matrices de verdad. El modelo puede por tanto «cargarse» con un margen aparente y volcarse con la primera pregunta.

La memoria libre hay que leerla directamente, no calcularla. El controlador de la tarjeta se guarda para sí unos 423 MB que no se pueden reservar. La popular resta de «total menos ocupado» infla el resultado exactamente en ese valor — muestra 528 MB libres donde en realidad quedan 106.

El margen resultó ser estático. Bombardeamos las configuraciones con consultas largas — de mil a 227 000 tokens, con recargas del modelo y procesado repetido del contexto completo. Una muestra cada medio segundo, 14 771 mediciones. Oscilación de la memoria libre: como mucho 2 MB, y en dos configuraciones exactamente cero. La memoria se reserva por adelantado y no se mueve.

Por eso nuestro umbral de aceptación es un modesto 100 MB libres en cada tarjeta. Si la ocupación saltara durante el trabajo, necesitaríamos un margen medido en gigabytes. No salta.

Sorpresa: un contexto menor puede dejar menos memoria

El resultado más contraintuitivo de toda la serie. En uno de los modelos medimos la memoria libre con tres ajustes de contexto:

ContextoLibre en tarjeta 1Libre en tarjeta 2
262 1441372 MB416 MB
212 992536 MB60 MB
180 2241026 MB870 MB

Bajar el contexto empeoró la situación. La explicación: con ciertos valores los búferes de cálculo no caben y el servidor retrocede a un modo de trabajo más simple, que ahorra más de lo que cuesta una memoria de conversación mayor. Cada uno de estos resultados se reproduce al megabyte en las cargas siguientes.

Conclusión práctica: el contexto se elige midiendo sobre una rejilla de valores, no extrapolando. La regla de «menos es más seguro» aquí no rige.

Dos cosas que devolvieron memoria gratis

Una ranura en vez de cuatro. El servidor se prepara por defecto para cuatro usuarios simultáneos y reserva búferes para ello — también cuando el usuario es uno. Limitarlo a una sola ranura devolvió 240–770 MB por tarjeta, sin cambiar el contexto y sin cambiar la velocidad. El precio es la cola: la segunda consulta espera a la primera. En casa es un intercambio justo.

Un registro más económico de la memoria de conversación. El contexto puede guardarse en precisión completa o comprimida. La compresión cuesta alrededor de un 12 % de la exactitud de ese búfer y da claramente más espacio — la usamos allí donde peleamos por el contexto. La compresión más agresiva la descartamos: estropea la calidad de las respuestas de forma perceptible.

Cuánto son 262 000 tokens

Es difícil imaginárselo, así que dos puntos de referencia. Un contexto así abarca varios cientos de páginas de texto a la vez — toda la documentación de un proyecto mediano o un juego completo de contratos para comparar. En el test de programación, donde el modelo escribía por sí solo proyectos de varios módulos, el pico de ocupación del contexto era de media de 107 000–175 000 tokens. Es decir: incluso con trabajo intensivo quedaba margen.

Para comparar — el único modelo polaco que probamos se acaba en 32 768 tokens. No por las tarjetas, sino porque así fue diseñado.


Mediciones en 2 × RTX 5070 Ti 16 GB. Memoria libre leída tras carga completa de trabajo, umbral de aceptación de 100 MB por tarjeta.