lunes, 26 de octubre de 2026 EN · IT · ES
Herald of AI

IAGenerado Noticias de IA para todos, escritas por IA y explicadas de forma sencilla. Modelos, tecnología, cultura y las personas detrás.

Cómo funciona

Meta abre el código de Rebalancer, un solucionador que resuelve 40 millones de problemas de asignación diarios

Una biblioteca en C++ que decide dónde deben ir los objetos: servidores, tareas, tráfico, ahora es gratuita para todos.

Vista aérea de portátiles, gráficos e informes utilizados para el análisis de datos en un escritorio.
Vista aérea de portátiles, gráficos e informes utilizados para el análisis de datos en un escritorio. Foto de archivo · Photo: Nataliya Vaitkevich / Pexels

Meta ha publicado Rebalancer, un solucionador de alto rendimiento que ayuda a asignar objetos a contenedores bajo reglas estrictas. La herramienta se ejecuta dentro de Meta desde hace más de nueve años, resolviendo alrededor de 40 millones de problemas de colocación cada día en más de 30 aplicaciones internas 1. Ahora está disponible para el público bajo la licencia open-source Apache 2.0.

Qué hace

Los problemas de asignación plantean una pregunta sencilla: ¿cuál objeto va en cuál contenedor? La respuesta depende de reglas —como límites de CPU o capacidades de almacenamiento— y de objetivos, como mantener el equilibrio. En Meta, el mismo problema aparece en todas partes: colocar racks en centros de datos, asignar servidores a servicios, enrutar tareas a máquinas y dirigir el tráfico de usuarios a regiones.

El desafío es que muchos de estos problemas son NP-hard, lo que significa que son demasiado grandes para que la mayoría de los solucionadores comerciales los manejen de forma eficiente 3. Los ingenieros también tienen dificultades para convertir sus políticas en fórmulas precisas. Rebalancer intenta resolver ambos problemas separando cómo se describe un problema de cómo se resuelve realmente.

Cómo funciona

Rebalancer utiliza un lenguaje de especificación con tres capas. La capa de modelado define dimensiones como CPU o memoria, particiones de objetos y ámbitos de contenedores. La capa de expresiones permite combinar esas dimensiones usando operaciones como SUM o MAX. La capa de especificación proporciona docenas de restricciones y objetivos integrados, como equilibrar el uso entre servidores o limitar la capacidad por rack 3.

Por dentro, la especificación se compila en un grafo de expresiones. Desde ahí, los usuarios pueden elegir entre dos enfoques de resolución. El solucionador de búsqueda local comienza con cualquier asignación válida y realiza pequeñas mejoras repetidamente hasta que no queda ningún movimiento mejor. Se ejecuta en paralelo y puede evaluar millones de posibilidades por segundo, por lo que es adecuado para problemas masivos. El solucionador óptimo traduce el grafo a un programa mixto entero y utiliza backends comerciales o open-source como FICO Xpress, Gurobi o HiGHS. Encuentra la mejor respuesta posible, pero solo funciona en problemas más pequeños 2.

Meta usa búsqueda local para casi todos sus problemas a gran escala y reserva el solucionador óptimo para casos más pequeños o prototipos rápidos 3.

Números reales

A gran escala, el sistema es impresionante. Meta reporta un tiempo de solución P99 de solo 12 segundos para problemas que involucran 265.000 objetos y 3.200 contenedores 1. Incluso problemas más grandes —más de un millón de objetos y 5.000 contenedores— promedian alrededor de 171 segundos para resolverse. El proyecto se entrega con una herramienta de depuración en Docker llamada Rebalancer Explorer, que ayuda a los ingenieros a entender por qué el solucionador tomó ciertas decisiones 4.

Rebalancer se instala mediante PyPI como la versión 1.0.4 y requiere Python 3.12 o posterior 3. Aún tiene una clasificación Alpha en el índice de paquetes, pero Meta dice que está listo para producción.

Why it matters

Otras herramientas open-source como Google OR-Tools y Timefold Solver también manejan problemas de asignación y programación. Pero Rebalancer destaca al permitir que los usuarios definan un problema una vez en una especificación clara y luego lo ejecuten en un solucionador de búsqueda local rápido o en uno matemáticamente óptimo, sin reescribir nada 3. Para los equipos que construyen infraestructura a gran escala, esa flexibilidad podría ahorrar mucho tiempo de ingeniería.

Los datos clave

  • Rebalancer resuelve aproximadamente 40 millones de problemas de asignación por día en Meta
  • El tiempo P99 de solución es de 12 segundos para problemas con 265.000 objetos y 3.200 contenedores
  • Disponible en PyPI como v1.0.4 bajo la licencia Apache 2.0
  • Usa tanto búsqueda local como solucionadores de programación mixta entera
  • Ha sido utilizado internamente en Meta durante más de nueve años

Fuentes

  1. Meta AI Open-Sources Rebalancer: A C++ Assignment Solver That Runs About 40 Million Placement Problems a Day — marktechpost.com
  2. GitHub - facebook/rebalancer: Rebalancer is a domain-specific language ...
  3. Meta AI Open-Sources Rebalancer: A C++ Assignment Solver That Runs ... — syncai.news
  4. Meta Rebalancer is now open source: its C++ solver lands on PyPI — en.softonic.com
  5. Open-Sourcing Rebalancer: A Generic, High-Performance Library for ... — engineering.fb.com