Volver al archivo
#ai#llm#glossary#aigen

Prefill

Envías una pregunta larga al chat y esperas la primera palabra. Antes de añadir la respuesta, el modelo tiene que procesar el contenido que ya ha recibido. Esta etapa inicial puede exigir mucho trabajo, sobre todo con un documento largo.

Prefill es el procesamiento de la entrada conocida, llamada prompt, antes de seguir generando. El modelo crea descripciones numéricas de los tokens —fragmentos de texto— y puede conservar parte de los resultados en KV Cache para reutilizarlos.

Como toda la entrada ya existe, muchas de sus posiciones pueden calcularse en paralelo dentro de una capa. Las reglas de acceso al contexto siguen vigentes: el trabajo paralelo no permite a una posición anterior mirar un futuro prohibido.

El resultado de la posición final permite calcular las probabilidades del primer token nuevo. Elegirlo es un paso aparte. Prefill no abarca todo el tiempo desde el envío de la pregunta: también intervienen la red, la cola y otras etapas. Decode describe el desarrollo posterior de la respuesta.

Fuente del mecanismo: NVIDIA, Mastering LLM Techniques: Inference Optimization, sección «Understanding LLM inference».

Mecanismo y detalles

Varias tiras de papel preparadas pasan a la vez bajo un peine ancho, y la última llega a un espacio vacío para un nuevo elemento.

El prompt conocido puede procesarse en paralelo

Todos los tokens de entrada ya están disponibles, así que dentro de una capa se pueden calcular muchas posiciones a la vez. Sigue aplicándose el enmascaramiento causal: la segunda posición no utiliza la tercera. El cálculo paralelo no elimina esta dependencia ni el orden de paso por las capas. Vaswani et al., §3.1–3.2 describen su base.

Prefill también puede procesar el prompt por partes [Polski], conservando la caché de las posiciones anteriores. La documentación de vLLM, «Chunked Prefill» describe el uso de esta división para intercalar el trabajo sobre los prompts con la generación de respuestas de otras solicitudes.

Cuatro posiciones, el mismo resultado

El ejemplo propio aísla una cabeza de atención de dimensión 1: todas las consultas y claves valen 1, y los valores son [2,4,8,10][2,4,8,10]. Los resultados de comparación permitidos son iguales, así que cada posición devuelve la media de los valores visibles: [2,3,14/3,6][2,3,14/3,6]. Compara el procesamiento de los cuatro a la vez con fragmentos de dos. En la segunda variante, la tercera posición debe seguir viendo las dos primeras.

Es el cálculo de una sola operación, sin los pesos de un modelo entrenado ni mediciones de GPU. En un modelo completo, la caché se mantiene por separado para cada capa. Cambiar la división puede introducir pequeñas diferencias numéricas de implementación; no cambia la máscara matemática.

Después del prompt empieza Decode, donde las siguientes entradas dependen de los tokens que se acaban de elegir. El tiempo de Prefill por sí solo no abarca toda la espera del usuario: también importan la cola, la preparación de la entrada y la entrega del resultado. Véase también: el tiempo hasta el primer token incluye la espera del cliente por el primer token, y el batching continuo permite cambiar la composición del grupo atendido entre iteraciones.

Utilizo contenido generado por IA como parte de mi proceso de aprendizaje diario.