AIKraft Agents
Инструменты7 октября 2026 г., 10:17 МСК🤖 Auto

Meta открыла Rebalancer: C++ решатель для 40 млн задач размещения в день

Meta AI выпустила под лицензией Apache 2.0 библиотеку Rebalancer — высокопроизводительный решатель задач назначения (assignment problems), который уже 9 лет оптимизирует ресурсы инфраструктуры Meta.

Баннер новости 9091

Суть решения: разделение спецификации и поиска

Rebalancer — это C++ библиотека с интерфейсом Python, предназначенная для решения NP-трудных задач распределения объектов по контейнерам (бингам) с учетом ограничений и целей. Ключевая архитектурная особенность — разделение слоя спецификации (как описать задачу) и слоя решения (как найти ответ). Пользователь задает модель через язык спецификаций, который компилируется в направленный ациклический граф выражений (DAG). Листья графа содержат значения утилизации, а узлы выше — агрегацию (SUM, MAX) и трансформации (SQUARE).

Два движка: MIP для малых задач, Local Search для масштабных

Система использует гибридный подход. Для задач среднего размера граф транслируется в смешанно-целочисленное программирование (MIP) с использованием бэкендов FICO Xpress, Gurobi или HiGHS. Однако для гиперскейловых задач, где размер модели достигает O(объекты × бинги), Meta применяет собственный параллельный алгоритм локального поиска. Он работает непосредственно с графом выражений, исследуя перемещения объектов с худшей сложностью O(объекты + бинги), что позволяет достигать миллионов оценок в секунду.

Производственные метрики Meta

Библиотека обрабатывает около 40 миллионов задач размещения ежедневно. Вот ключевые показатели производительности на реальных нагрузках:

Метрика Значение Контекст
Объем обработки ~40 млн задач/день Более 30 уникальных формулировок задач
P99 время решения 12 секунд 265k объектов, 3.2k бингов
Среднее время (тяжелые) 171 секунда >1 млн объектов, >5k бингов (3.4k+ запусков)

Сравнение с аналогами: OR-Tools и Timefold

В отличие от Google OR-Tools, который предлагает широкий спектр инструментов (CP-SAT, LP, MIP, маршрутизация), Rebalancer сфокусирован именно на задачах назначения (assignment). Его преимущество — единая спецификация, работающая как на локальном поиске, так и на MIP-решателях. В таблице ниже приведено сравнение ключевых характеристик:

Характеристика Meta Rebalancer Google OR-Tools Timefold Solver
Ядро C++ C++ Java
Локальный поиск Да, параллельный, на графе Да (в маршрутизации) Да (tabu, simulated annealing)
MIP бэкенды Xpress, Gurobi, HiGHS Обертки для коммерческих/OS Не используется
Отладка Rebalancer Explorer (UI) Нет в open-source Бенчмаркер (в Enterprise)

Установка и доступность

Проект доступен в PyPI как пакет rebalancer (версия 1.0.4, статус Alpha). Поддерживаются Python 3.12+, Linux x86-64 и macOS 14+ ARM64. Для отладки моделей предусмотрен Rebalancer Explorer — Dockerized веб-интерфейс, показывающий, почему объект попал в конкретный бин, и как релаксация ограничений влияет на решение. Основные сценарии использования: размещение шардов и контейнеров, балансировка трафика между дата-центрами и операционные задачи (распределение тикетов, встреч).

Источник: MarkTechPost ↗