
1 つのサーバーで 60 のコンテナ
1 つのベアメタルボックスで数十から数百の Hoody コンテナを実行。KSM と BTRFS のデデュプでマージナルコストはほぼゼロ。
1 台の GPU ボックスで 70B モデルを実行しています。フリート全体の 50 個のダウンストリームコンテナが、同じクエリに対する同じ答えを必要とします — 同じカタログをスコアリング、同じエンベディングを生成、同じ実験を評価しています。50 回の推論に支払わないでください。モデルを 1 回実行し、トークンをブロードキャストします。
# generate once, pipe upwardllama.cpp -m llama3-70b.gguf \ -p "$PROMPT" --stream \ | curl -T - \ /pipe/llm?n=50pipe/llm?n=501 つのパス · 50 人の読者モデルは 1 回実行 · パイプはブロードキャスト · 遅いワーカーは自分自身だけを遅らせる
素朴な答えは、キュー、リクエストバッチング、ロック競合を伴う HTTP サーバーです。この形により安価な答えは: 各クエリが ?n=50 付きでパイプパスに送られます。モデルは 1 回実行されます。50 個のコンシューマーコンテナが同じパスを GET し、パイプによってファンアウトされた同じトークンを同時にストリーミングします。遅いワーカーは自分自身のコネクションにバックプレッシャーを適用 — 他はラインスピードを維持します。
# 1× GPU box — run the model once and pipe its tokens upward.
llama.cpp -m llama3-70b.gguf -p "$PROMPT" --stream \
| curl -T - https://pipe.hoody.com/api/v1/pipe/llm?n=50
# 50 consumer containers — same path, ?n=50, fanned out by the pipe.
for i in $(seq 1 50); do
curl https://pipe.hoody.com/api/v1/pipe/llm?n=50 \
| jq -c .delta \
| ./score.py --worker $i &
done
# Sender blocks until 50 readers have connected, then bytes flow.
# Slow workers backpressure their own connection — others stay at line speed.PUT がバイトを上へ送ります。GET がバイトを下へ引き出します。?n=50 パラメータは何人の読者を待つかを指定します。パイプはその人数が接続するまでコネクションを保持し、その後ストリームを全員に同時にファンアウトします。キューも、バッチングレイヤーも、ロードバランサー付き推論サーバーもありません。
50 個のダウンストリームコンテナが同じ答えを欲しがります。GPU でそれを 1 回生成します。パイプが配信を処理します。リクエストバッチングフレームワークも、トークンキャッシングレイヤーも、「もう一度実行しないでください」の調整もありません。
パイプは 50 人の受信者が接続するまでブロックし、その後プロデューサーのバイトを各受信者に並列でストリーミングします。同一のコピー、ラインレート配信、サーバー側保存ゼロ。パスあたり最大 256 受信者。
1 つのコンシューマーコンテナが GC 中またはディスクが忙しい場合、そのコネクションが遅れます。パイプはその受信者にバックプレッシャーを適用 — 他の 49 個はフルスピードでストリーミングを続けます。ヘッドオブラインブロッキングなし、キュー深度チューニングなし。
50 個のコンテナが同じ答えを欲しがるとき、代替手段はコール単位、トークン単位、または推論サーバー単位で課金します。パイプは 1 つの HTTP 転送に対して課金します。すでにレンタルしているボックスでモデルを実行してください。
これはすべてのワークロードではありません — N 個のコンテナが同じ答えを欲しがる形です。それがあなたの形である場合、パイプは配線できる中で最も安価なファンアウトです。発散するプロンプトを持つワークロードは依然として実際の推論サーバーが必要です。このパターンは、質問が同一でフリートが広いときに輝きます。
1 つの GPU、1 つのパイプ、50 個のコンテナが同じトークンを味わう。
1 つのクエリが多数のコンシューマーに供給される必要があるときに手を伸ばす、すべての「フリートにモデルアクセスを与える」スタック。それぞれがコール単位で課金したり、ウェイトをホストしたり、vLLM の前にロードバランサーを実行するよう求めたりします。パイプは 1 回ブロードキャストします。
1 つの答えに対して 50 件の推論料金を支払うのをやめましょう。すでにシリコンをレンタルしている場所でモデルを実行してください。パイプを開きます。フリートに読ませましょう。