Prompt Caching se refiere a la estrategia de almacenar en caché los pares clave-valor (KV cache) generados durante la fase de procesamiento del prompt inicial en un Large Language Model (LLM). Cuando un prompt es procesado, cada token pasa por las capas de atención del modelo, generando tensores de 'claves' y 'valores'. Estos tensores son críticos para la fase de generación de tokens subsiguientes. Al guardar estos tensores para un prompt dado, si una solicitud futura llega con un prefijo de prompt idéntico, el modelo puede reutilizar los KV pairs cacheados para esa porción del prompt, comenzando la inferencia desde el punto donde el prefijo difiere, en lugar de reprocesar todo el prompt desde cero.
Esta técnica es fundamental en la optimización de la inferencia de LLMs, especialmente en escenarios donde los usuarios interactúan con el modelo a través de conversaciones o 'chatbots', donde cada turno de la conversación comparte el historial (el prompt anterior) como prefijo. Sistemas como vLLM, TGI (Text Generation Inference) de Hugging Face y NVIDIA TensorRT-LLM implementan Prompt Caching para mejorar significativamente el rendimiento y reducir la latencia. Por ejemplo, en un chatbot, el historial de la conversación hasta el momento puede ser cacheados, y solo el nuevo mensaje del usuario necesita ser procesado para extender el KV cache, acelerando la respuesta del modelo.
Para un arquitecto de sistemas, Prompt Caching es crucial por varias razones. Primero, reduce drásticamente el costo computacional (flops) y la latencia para solicitudes que comparten prefijos de prompt, lo que es vital para aplicaciones interactivas y de alta concurrencia. Sin embargo, introduce un trade-off significativo en el uso de memoria: el KV cache puede consumir una cantidad considerable de memoria GPU, especialmente con prompts largos y un alto número de usuarios concurrentes. La gestión eficiente de esta memoria (ej. con algoritmos como PagedAttention de vLLM) es un desafío clave. Los arquitectos deben sopesar el ahorro computacional frente al aumento del consumo de memoria y diseñar estrategias de caching (ej. políticas de desalojo, tamaño máximo del cache) que se alineen con los requisitos de rendimiento y los recursos disponibles, impactando directamente la escalabilidad y el costo operativo de las infraestructuras de inferencia de LLMs.