負荷とともに成長するスウォーム

必要なときだけ助けを借りる巨大モデル——MoE スウォームはいまやトラフィックに合わせて自らスケールする:静かなときは緊密かつ高速、忙しいときは広く並列に。

A coordinator GPU breathing wider as idle phones and GPUs are drawn in under load

Kvasir は単一マシンが保持できるよりもはるかに大きなモデルを提供する——122B パラメータの Mixture-of-Experts モデルが、コーディネータ 1 台とワーカーのスウォームにまたがって走る:LAN 上の GPU、200 Gb/s リンク越しの GPU、さらにはインターネット経由でダイヤルインするスマートフォンまで。MoE モデルは各トークンをそのエキスパートのごく一部だけにルーティングするため、どの瞬間も重みの大半は遊休状態にあり、その遊休エキスパートはメインノードの外——それを保持するとボランティアしたどんなハードウェアの上——に住める。

新しいのは、スウォームがいまや負荷に合わせて自らスケールするという点だ。

どう振る舞うか

静かなときは緊密に、忙しいときは広く

トラフィックが軽いとき、コーディネータはすべてを自分の GPU で提供する——トークンあたり最速の経路で、ネットワークホップはゼロ。リクエストが積み上がり始め、推論スロットが飽和すると、二つのことが自動的に起きる:

  • すでに抱えているワーカーを再稼働させる。コーディネータは自分のキューを監視する。飽和状態では、ルーティングされたエキスパートの仕事を実績のある(proven)ワーカー——実際に以前提供したことのあるワーカー——へストリームし続け、トークンあたりのレイテンシを少し犠牲にして総スループットを大きく稼ぐ。接続しただけで一度も計算していないワーカーが負荷を任されることは決してない;まっさらな新規ワーカーには、公平な最初の一回が与えられる。
  • hub が新しいワーカーを募る。コントロール hub は同じ飽和を察知し、そのモデルのエキスパートへの「需要(demand)」を引き上げる。遊休ノード——誰かのポケットの中のスマートフォン、街の反対側の予備 GPU——はすでにその需要マーケットをポーリングしている。需要が上がった瞬間、それらは提供すべきエキスパートのスライスを提示され、ダウンロードし、ダイヤルインして参加する。サージが過ぎ去ると需要は元に戻り、余剰ワーカーは静かに離脱する。

これを誰もスケジューリングしない。どのノードもプッシュされない。スウォームは負荷とともに呼吸する:静かなときは緊密かつ高速、忙しいときは広く並列に——そして家庭用ルーターの背後にあるノードでも機能する。すべてがプルベースだからだ。

これが、誰一人として所有していないハードウェアの上で兆パラメータ級のモデルを提供できるネットワークのかたちだ:遊休容量は、招く価値があるまさにそのときに、そのときだけ招かれる。