メタがAIの「割り当て」技術を公開
Meta AI Open-Sources Rebalancer: A C++ Assignment Solver That Runs About 40 Million Placement Problems a Day
メタが、資源の割り当て問題を解くAIツール「Rebalancer」を公開。1日4000万件を処理する実績ある技術で、データセンターなどの効率化に役立ちます。
Metaは、割り当て問題を解決するためのPythonインターフェースを備えたC++ライブラリであるRebalancerをオープンソース化しました。これは、制約と目的の下でどのオブジェクトをどのビンに入れるかを決定します。Engineering at Metaの投稿によると、Rebalancerは9年以上にわたりMeta全体の資源割り当てを処理してきました。このリリースは、Apache 2.0ライセンスの下で、ドキュメント、PyPIパッケージ、およびRebalancer Explorerと呼ばれるデバッグUIと共に提供されます。デプロイ可能か?はい。pip install rebalancerを実行すると、Python 3.12+用のv1.0.4がインストールされ、Linux x86-64およびmacOS 14+ ARM64用のプレビルド済みホイールが利用可能です。.deb、.rpm、Homebrewパッケージも存在します。PyPIではまだプロジェクトがAlphaと分類されています。Rebalancerはどのような問題を解決するのか?割り当て問題はMetaのスタック全体で発生します。ラックはデータセンターに、サーバーはサービスに、タスクはサーバーに、ユーザーのトラフィックはデータセンターに入ります。Metaは2つの障害を挙げています:使いやすさとスケーラビリティです。エンジニアはポリシーを正確な数式に変換するのに苦労し、多くの問題はNP困難であり、商用ソルバーには大きすぎます。Rebalancerの答えは、問題の指定方法と解決方法を分離することです。この設計は、OSDI 2024の論文「Optimizing Resource Allocation in Hyperscale Datacenters」で詳しく説明されています。仕様レイヤーの仕組み仕様言語には3つのレイヤーがあります:モデリング構成要素:dimensions(CPUやストレージなどの属性)、partitions(オブジェクトのグループ)、scopes(ビンのグループ)、およびutilization。Expression API:SUMまたはMAXでutilizationを集計したり、SQUAREなどの操作で変換したりします。Spec API:ドキュメントに記載されている数十の事前定義された目的と制約。Metaの例では、タスクをオブジェクト、サーバーをビン、ラックをスコープとしてモデル化しています。CapacitySpecはサーバーごとのCPUとストレージを制限します。GroupCountSpecはラックごとに1つのジョブタイプを保持します。BalanceSpecは両方のdimensionsで各サーバーのutilizationをバランスさせます。1つのExpression Graph、2つのSolvers Rebalancerは仕様をdirected acyclic expression graphにコンパイルします。リーフノードはut
この記事について質問
記事の内容に答えます。記事外のことは都度ウェブで調べます。