Disaggregated Prefill es una arquitectura de ejecución para Large Language Models (LLMs) que aborda las ineficiencias inherentes a la gestión de la memoria y el cómputo durante las fases de 'prefill' y 'decoding'. Tradicionalmente, ambas fases se ejecutan en el mismo conjunto de aceleradores (GPUs), lo que lleva a un subaprovechamiento del hardware debido a sus diferentes patrones de cómputo y requisitos de memoria. La fase de 'prefill' (también conocida como 'prompt processing') es intensiva en cómputo matricial de gran tamaño (alto 'batch size', baja latencia) y genera el Key-Value Cache (KV Cache) para el prompt. La fase de 'decoding' (generación de tokens) es intensiva en memoria (acceso al KV Cache) y requiere un cómputo matricial de menor tamaño pero de alta frecuencia. Disaggregated Prefill propone separar estas fases, asignando recursos de cómputo y memoria optimizados para cada una, mejorando así la utilización y el throughput.

Un ejemplo concreto de implementación de Disaggregated Prefill se encuentra en sistemas de inferencia de LLMs a gran escala, como los utilizados por proveedores de servicios de IA o plataformas que ofrecen APIs para modelos fundacionales. Meta ha explorado arquitecturas similares para sus modelos Llama, donde la fase de 'prefill' podría ejecutarse en un clúster de GPUs optimizado para operaciones de matriz densas y de alto paralelismo, mientras que la fase de 'decoding' se ejecutaría en otro clúster con GPUs que priorizan la capacidad de memoria y el acceso eficiente al KV Cache. Esto permite que los prompts largos sean procesados rápidamente por un conjunto de recursos, liberando esos recursos para nuevos prompts, mientras que la generación de tokens se maneja de forma más eficiente en otro conjunto de recursos, optimizando el uso del ancho de banda de memoria y la latencia de generación.

Para un arquitecto de sistemas, Disaggregated Prefill es crucial porque ofrece una estrategia para escalar la inferencia de LLMs de manera más eficiente y rentable. El principal 'trade-off' es la complejidad adicional en la orquestación y gestión de recursos distribuidos, ya que se requiere un sistema capaz de transferir el KV Cache entre los clústeres de 'prefill' y 'decoding' con baja latencia. Sin embargo, los beneficios superan esta complejidad en escenarios de alto volumen: permite optimizar la utilización de GPUs, reducir los costos operativos al usar hardware más adecuado para cada fase (ej. GPUs con más memoria para 'decoding', GPUs con más FPUs para 'prefill'), y mejorar el 'throughput' general del sistema. La decisión de adoptar esta arquitectura depende del volumen de solicitudes, la longitud promedio de los prompts y la necesidad de optimizar la latencia y el costo por token generado, siendo especialmente relevante para servicios de inferencia de LLMs a escala de producción.