Context Window
Una ventana de contexto es el número máximo de tokens a los que puede prestar atención un modelo en una sola solicitud, compartido entre el prompt, el historial, los documentos y la respuesta.
Una ventana de contexto es el número máximo de tokens que un modelo puede tener en cuenta en una única solicitud. En un modelo de lenguaje de gran tamaño (LLM), todo lo que lee y escribe consume ese presupuesto: el prompt del sistema, las definiciones de herramientas, el historial de conversación, los documentos recuperados, la pregunta del usuario y la respuesta que genera. El contenido que queda fuera de la ventana no llega al modelo, por lo que un chatbot pierde de vista el inicio de una conversación muy larga cuando se recortan los primeros turnos. Las ventanas han pasado de 2.048 tokens en GPT-3 a 128K tokens en GPT-4 Turbo a finales de 2023 y a un millón en Gemini 1.5 Pro de Google en 2024; Llama 4 Scout de Meta anuncia 10 millones.
Qué ocupa la ventana de contexto#
La tokenización divide el texto en fragmentos de subpalabras que, en inglés, tienen una media de unos cuatro caracteres, de modo que una ventana de 128K tokens equivale a unas 300 páginas. Un modelo de visión y lenguaje (VLM) también consume tokens para las imágenes, normalmente cientos de tokens de parches por imagen, por lo que un vídeo largo llena la ventana mucho más rápido que su transcripción. Los tokens generados cuentan para el mismo límite, y los proveedores establecen un límite independiente para la longitud de la respuesta. Por eso, las aplicaciones que mantienen conversaciones largas o ejecutan agentes de IA reconstruyen el prompt en cada turno y deciden qué conservar:
Por qué las ventanas tienen límites#
Dos costes aumentan con la longitud. La autoatención compara cada token con todos los demás, por lo que el cómputo de atención crece de forma cuadrática con el número de tokens. Durante la generación de texto, la caché KV conserva las claves y los valores de todos los tokens anteriores: Llama 3.1 8B, con 32 capas y 8 cabezas de clave-valor de 128 dimensiones cada una, almacena 128 KiB por token con precisión de 16 bits, es decir, 16 GiB en su ventana completa de 131.072 tokens, más de los 16 GB que ocupan sus pesos.
El entrenamiento también determina la ventana. Un modelo entrenado con secuencias de 8K tokens nunca ha visto las posiciones posteriores, así que ampliarla exige reescalar sus embeddings posicionales rotatorios (RoPE) con métodos como YaRN y realizar un breve ajuste fino con textos más largos. Para ofrecer ventanas largas se emplean técnicas de ahorro de memoria: flash attention calcula la atención exacta sin almacenar la matriz completa de puntuaciones, la atención de consultas agrupadas (GQA) reduce la caché KV, la atención de ventana deslizante limita cada token a sus vecinos más recientes y la atención en anillo reparte una secuencia entre muchas GPU.
Contexto anunciado y contexto efectivo#
Un modelo que acepta un millón de tokens no los aprovecha todos igual de bien. El estudio de 2023 Lost in the Middle descubrió que los modelos responden mejor cuando el pasaje pertinente está al principio o al final del prompt, y peor cuando está en medio. Las pruebas de aguja en un pajar (NIAH) miden la recuperación de un hecho insertado a distintas profundidades y longitudes, y el más exigente benchmark RULER descubrió que solo la mitad de los 17 modelos que afirmaban admitir 32K tokens o más rindió satisfactoriamente con 32K. El deterioro gradual a medida que crecen las entradas se denomina degradación del contexto; la generación aumentada por recuperación (RAG) y la ingeniería de contexto lo contrarrestan introduciendo en la ventana solo el material pertinente.
Ventana de contexto y términos relacionados#
- Campo receptivo: Región de una imagen de entrada que influye en una salida de una red neuronal convolucional (CNN). Su tamaño depende de los tamaños de los kernels y de la profundidad, mientras que la ventana de contexto es un presupuesto de tokens.
- Tamaño de lote: Número de secuencias independientes que se procesan a la vez. La ventana de contexto limita la longitud de cada una.
- Memoria: La memoria de los agentes, como la memoria episódica almacenada en una base de datos vectorial, persiste fuera de la ventana y se copia en ella cuando resulta pertinente.
Ventanas de contexto en la detección de vocabulario abierto#
Los codificadores de texto de los modelos de visión también tienen ventanas. Ultralytics YOLOE y YOLO-World codifican cada prompt de clase con un codificador de texto de la familia CLIP cuya ventana de contexto es de 77 tokens; de forma predeterminada, el codificador de texto de Ultralytics trunca los prompts más largos. El mismo tokenizador CLIP muestra qué se elimina:
import clip
from clip.simple_tokenizer import SimpleTokenizer
prompt = (
"a warehouse worker wearing a yellow high-visibility vest, a white hard hat, blue gloves and clear safety "
"glasses, standing beside a red forklift that carries wooden pallets stacked with brown cardboard boxes, "
"under bright ceiling lights in a narrow aisle between tall metal shelves, next to a fire extinguisher "
"mounted on the wall, a green emergency exit sign, an open loading dock door and a black dog"
)
# CLIP's BPE tokenizer wraps the text in start and end tokens
tokenizer = SimpleTokenizer()
print(f"Prompt length: {len(tokenizer.encode(prompt)) + 2} tokens")
# The text encoder reads a fixed 77-token window, so truncation drops the tail
tokens = clip.tokenize(prompt, truncate=True)[0]
kept = tokenizer.decode(tokens[1:-1].tolist())
print(f"Window: {len(tokens)} tokens ending in '{' '.join(kept.split()[-4:])}'")
print(f"'black dog' kept: {'black dog' in kept}")El prompt tiene 80 tokens, así que la ventana conserva los primeros 75 tokens de texto más los marcadores de inicio y fin, termina en «loading dock door and» y descarta «a black dog» antes de que el codificador llegue a verlo.










