La permanencia del modelo significa conservar los pesos del modelo en la memoria del host o del acelerador entre solicitudes, de modo que la siguiente inferencia evite parte o todo el trabajo de carga.
Un asistente doméstico que se usa cada pocos minutos se comporta de forma muy distinta cuando un modelo de ocho gigabytes permanece en la memoria de la GPU en lugar de leerse del almacenamiento cada vez. La permanencia puede existir en varios niveles: caché del sistema de archivos, páginas del host asignadas en memoria, RAM fijada o VRAM preparada para los kernels. Mantener los pesos en memoria reduce el retraso de inicio, pero reserva memoria escasa y puede impedir que se ejecuten otros modelos o cargas de trabajo.
La permanencia describe dónde se conserva el estado reutilizable del modelo
Un modelo frío existe únicamente en el almacenamiento y debe leerse, asignarse, transformarse y copiarse antes de la inferencia. Los pesos residentes en el host evitan las lecturas del almacenamiento, mientras que los pesos residentes en el acelerador también evitan la transferencia del host al dispositivo y la ruta de inicialización del entorno de ejecución. Esta distinción sigue siendo visible durante las pruebas domésticas posteriores.
El análisis de NVIDIA sobre la transmisión de modelos separa la ruta de carga del modelo del trabajo de transferencia e inicialización, lo que muestra por qué la ubicación de los pesos domina muchos inicios en frío. Un proceso caliente aún puede necesitar inicializar el tokenizador, el grafo, el adaptador o la caché. El resultado intermedio debe seguir siendo inspeccionable antes de continuar con la automatización.
La permanencia no es lo mismo que una solicitud activa. Un modelo puede permanecer cargado sin caché KV ni datos del usuario, listo para atender solicitudes mientras consume memoria y algunos recursos en segundo plano. Ese límite debe medirse por separado en condiciones operativas realistas.
La disponibilidad en memoria existe en toda una jerarquía de memoria
El sistema operativo puede conservar las páginas del modelo en su caché de páginas incluso después de que finalice un proceso; la asignación de memoria puede cargar las páginas de forma diferida; y un proceso de servicio puede mantener los tensores en la RAM o la VRAM. Cada nivel más caliente suele reducir la latencia mientras consume un recurso más limitado.
ServerlessLLM examina la carga de modelos por niveles en el almacenamiento, la memoria del host y la memoria de la GPU, y programa la carga para reducir el coste del inicio en frío. La jerarquía explica por qué un modelo aparentemente descargado puede reiniciarse rápidamente hasta que la presión de la caché expulsa sus páginas.
La cuantización reduce los bytes necesarios para mantener un modelo en memoria y puede permitir que coexistan varios modelos especializados. También puede cambiar los kernels de ejecución y la calidad, por lo que el ahorro de memoria no debe contabilizarse como un aumento gratuito de capacidad. La consecuencia práctica aparece cuando varias fuentes compiten por un contexto limitado.
La política de expulsión convierte la presión de memoria en retraso de inicio
Un servicio puede mantener residentes los modelos usados con frecuencia y expulsar los más inactivos según la antigüedad de uso, la demanda prevista, la prioridad o el coste de carga. El enrutamiento de varios modelos necesita reglas de admisión para que el trabajo en segundo plano no desplace al modelo de voz que debe responder de inmediato.
FlexGen demuestra la descarga de pesos entre la GPU, la CPU y el almacenamiento para realizar inferencias con recursos limitados. Aunque está orientado al rendimiento, hace explícito el equilibrio fundamental: mover los pesos entre niveles ahorra memoria escasa, pero añade costes de transferencia y planificación.
El límite de fallo es la presión de memoria que desencadena el intercambio, los reinicios por falta de memoria o la expulsión constante. Mantener demasiados pesos cargados puede hacer que todos los modelos sean más lentos y menos fiables que calentar deliberadamente un conjunto de trabajo más pequeño. Esta dependencia debe mantenerse explícita en la interfaz final.
Establece la permanencia según la distancia de reutilización y el margen de memoria
Mide el tiempo de inicio en frío, con el host caliente y con el acelerador caliente para cada modelo; después registra el intervalo entre solicitudes, los bytes cargados, la huella de VRAM y RAM, el consumo en reposo, el número de expulsiones y la demanda de las cargas de trabajo competidoras. Por tanto, el resultado debe comprobarse con respecto a las pruebas originales.
Compara el mecanismo de inicio con el inicio mediante asignación de memoria. Reproduce una semana de llegadas con distintos intervalos de mantenimiento activo y prioridades, incluidos picos, largos periodos de inactividad y solicitudes simultáneas de modelos. Esta distinción sigue siendo visible durante las pruebas domésticas posteriores.
Mantén un modelo residente cuando la latencia de carga evitada y la frecuencia de reutilización justifiquen la memoria protegida. Expúlsalo cuando la capacidad reservada provoque colas o una expulsión constante, y conserva un margen de emergencia para la caché KV y las asignaciones temporales.
Centro de Tecnología e IA
Más para leer

¿Qué es la deriva de las incrustaciones y cuándo es necesario reconstruir un índice de búsqueda privado?
Decodifica el desplazamiento del modelo, el preprocesamiento, el corpus y las consultas; distingue entre la monitorización y la incompatibilidad; y decide cuándo es necesario...

¿Qué es la compatibilidad del tokenizador y por qué puede hacer que el cambio de modelo falle?
Descifra la identidad del vocabulario, la semántica de los tokens especiales, las plantillas de chat, los tokens en caché, los adaptadores y las comprobaciones...

¿Qué es la tasa de aceptación de la decodificación especulativa y por qué es importante?
Descifra la métrica de aceptación, redacta la verificación, el comportamiento de rechazo, los límites de aceleración, la variación de la carga de trabajo y...

