El problema fundamental que este sistema aborda es la paradoja de la capacidad en flotas de inferencia de Machine Learning: a menudo, una flota puede estar globalmente restringida mientras existen bolsas significativas de capacidad localmente ociosa. Esta ociosidad surge de desajustes entre el aprovisionamiento de picos y la variación de la demanda, la sincronización de desarrollo de modelos y entrega de capacidad, desequilibrios en la proporción de recursos regionales (CPU vs. aceleradores), y la incompatibilidad entre tipos de aceleradores. Históricamente, la gestión de recursos en sistemas distribuidos ha luchado con la utilización eficiente de recursos heterogéneos y volátiles, especialmente en entornos de baja latencia y alta disponibilidad.
La solución de Meta capitaliza esta capacidad ociosa, que de otro modo se desperdiciaría, para ejecutar trabajo opcional de bajo impacto pero alto valor, como mejorar las recomendaciones de anuncios. Esto se logra mediante la creación de un pool de capacidad oportunista compartido, que agrega estos recursos fragmentados. La clave es la capacidad de expandir y contraer el trabajo opcional de forma elástica y segura, sin comprometer la carga de trabajo base, lo que representa un desafío significativo en la ingeniería de sistemas distribuidos a escala de hyperscaler.
Arquitectura del Sistema
El sistema se basa en dos palancas de elasticidad complementarias: Rank More Ads (RMA) y Serve Better Models (SBM). RMA incrementa el número de candidatos evaluados por las etapas de ranking del sistema de recomendación, requiriendo excedente tanto de CPU como de aceleradores. SBM, por otro lado, ajusta la proporción de solicitudes que se enrutan a modelos de inferencia más potentes, aprovechando principalmente el excedente de capacidad de aceleradores sin aumentar significativamente la demanda de CPU upstream.
La protección de la carga de trabajo base se logra mediante aislamiento físico y lógico. Para SBM, la separación es física: los modelos base y los modelos más potentes utilizan objetivos de enrutamiento separados y réplicas dedicadas. Para RMA, la separación es lógica: el sistema calcula un presupuesto global para el trabajo adicional de ranking basado en la capacidad oportunista, y las réplicas individuales pueden manejar una mezcla de trabajo base y adicional, limitando el trabajo incremental para proteger el tráfico base. Ambas palancas utilizan bucles de retroalimentación cerrados con controladores PID centrales y enrutamiento/aplicación del lado del cliente. RMA utiliza la latencia de cola observada para ajustar el volumen de candidatos, mientras que SBM utiliza señales de valor de solicitud y un proceso de explore-and-exploit para priorizar qué solicitudes se benefician más del modelo potente. Además, se implementa un descarte de carga (load shedding) multi-capa y consciente del valor, tanto del lado del servidor como del cliente, para reaccionar en milisegundos ante la preemption repentina de capacidad, eliminando el trabajo oportunista de menor valor antes de que los bucles de control más lentos converjan.
Flujo de Trabajo Oportunista con SBM
- 1 Solicitud de Usuario Llega una solicitud de recomendación de anuncios.
- 2 Controlador Central SBM Establece el objetivo de cobertura para el modelo potente.
- 3 Cliente (Model Router) Decide qué solicitudes usarán el modelo potente vs. el base, basado en valor ...
- 4 Réplicas Oportunistas Sirven solicitudes seleccionadas para el modelo potente.
- 5 Réplicas Dedicadas Sirven solicitudes con el modelo base o cuando la capacidad oportunista se co...
- 6 Load Shedding (Server-side) Si hay sobrecarga, los servidores descartan trabajo oportunista de bajo valor.
- 7 Load Shedding (Client-side) Si el servidor está sobrecargado, el cliente enruta menos solicitudes al mode...
Flujo de Control de RMA
- 1 Solicitud de Usuario Llega una solicitud de recomendación de anuncios.
- 2 Controlador PID Central Calcula el objetivo de número de candidatos basándose en la latencia de cola.
- 3 Cliente Aplica el objetivo de candidatos a las nuevas solicitudes.
- 4 Ranking Stages Evalúan un número variable de candidatos (base + adicionales).
- 5 Monitoreo de Latencia La latencia de cola se observa y se retroalimenta al controlador PID.
- 6 Load Shedding (Server-side) Si hay sobrecarga, los servidores reducen candidatos procesados.
- 7 Load Shedding (Client-side) Si el servidor está sobrecargado, el cliente solicita menos ads adicionales.
| Capa | Tecnología | Justificación |
|---|---|---|
| compute | ML Inference Fleet (CPU + Accelerators) | Provee la capacidad base y oportunista para la inferencia de modelos de Machine Learning. La heterogeneidad de recursos (CPU, diferentes tipos de aceleradores) y su distribución geográfica son el origen del problema de capacidad ociosa. |
| orchestration | PID Controller | Componente central para los bucles de retroalimentación de RMA y SBM, ajustando dinámicamente el volumen de trabajo oportunista (candidatos o cobertura de modelo) en función de métricas de rendimiento como la latencia. vs Heurísticas basadas en umbrales fijos, Algoritmos de control adaptativo más complejos |
| networking | Client-side Model Router | En SBM, decide qué solicitudes se enrutan al modelo potente o al base, basándose en señales de valor y el objetivo de cobertura. En RMA, aplica el objetivo de volumen de candidatos a las solicitudes salientes. vs Enrutamiento basado en balanceadores de carga tradicionales, Enrutamiento a nivel de proxy |
| observability | Latency Feedback Loop | Proporciona la señal principal para el controlador PID de RMA, permitiendo que el sistema se adapte a las condiciones cambiantes de capacidad y carga. vs Métricas de utilización de CPU/acelerador, Métricas de cola de solicitudes |
| data-processing | Request-Value Signals | Utilizadas por SBM para priorizar qué solicitudes se benefician más de los modelos potentes y para el descarte de carga consciente del valor, minimizando el impacto en la calidad de las recomendaciones. vs Priorización FIFO, Priorización basada en heurísticas simples |
Fundamentos Teóricos
Este enfoque resuena con principios de sistemas distribuidos y teoría de colas. La gestión de recursos volátiles y preemptibles se relaciona con conceptos de scheduling en sistemas operativos y computación en la nube, donde las tareas de menor prioridad pueden ser desalojadas para dar paso a cargas de trabajo críticas. La idea de usar capacidad ociosa para trabajo 'best-effort' o 'batch' es un patrón conocido, pero su aplicación a inferencia de ML de baja latencia con garantías de rendimiento es más compleja. Los bucles de retroalimentación (PID controllers) son un concepto clásico de la teoría de control, aplicado aquí para la auto-regulación de la carga de trabajo en respuesta a métricas de rendimiento como la latencia. La asignación de recursos basada en el 'valor' de la solicitud se alinea con la investigación en microeconomía y teoría de juegos aplicada a la asignación de recursos computacionales, donde se busca maximizar la utilidad total del sistema. El descarte de carga consciente del valor es una aplicación práctica de la priorización de tareas, un concepto fundamental en la gestión de la calidad de servicio (QoS) en redes y sistemas distribuidos, donde se busca minimizar el impacto en la experiencia del usuario al degradar el servicio de manera controlada.