
ستون حاوية على خادم واحد
صندوق معادن عارية واحد يشغل عشرات إلى مئات حاويات Hoody. يجعل KSM و BTRFS dedup التكلفة الإضافية قريبة من الصفر.
تشغّل نموذج 70B على صندوق GPU واحد. خمسون حاوية تابعة عبر أسطولك تحتاج الإجابة نفسها على الاستعلام نفسه — تقيّم الكتالوج نفسه، تولّد التضمينات نفسها، تُقيّم التجربة نفسها. لا تدفع مقابل خمسين استدلالًا. شغّل النموذج مرّة واحدة، وابثّ الرموز.
# generate once, pipe upwardllama.cpp -m llama3-70b.gguf \ -p "$PROMPT" --stream \ | curl -T - \ /pipe/llm?n=50pipe/llm?n=50مسار واحد · خمسون قارئًاالنموذج يعمل مرّة واحدة · الأنبوب يبثّ · العمّال البطيئون يبطّئون أنفسهم فقط
الإجابة الساذجة هي خادم HTTP بطابور وحزم طلبات وتنازع أقفال. الإجابة الأرخص لهذا الشكل: كل استعلام يذهب إلى مسار أنبوب مع ?n=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 يحدّد عدد القرّاء المنتظَرين؛ الأنبوب يحتفظ بالاتصال حتى يتصل ذلك العدد، ثم يوزّع البثّ بالتزامن إلى الجميع. لا طابور، لا طبقة حزم، لا خادم استدلال خلف موازن أحمال.
خمسون حاوية تابعة تريد الإجابة نفسها؛ أنت تولّدها على GPU مرّة واحدة. الأنبوب يتولّى التسليم. لا إطار حزم طلبات، ولا طبقة تخزين رموز، ولا تنسيق "رجاءً لا تشغّله مجدّدًا".
الأنبوب يحجب حتى يتصل خمسون مستقبِلًا، ثم يبثّ بايتات المنتج إلى كلٍّ منهم بالتوازي. نسخ متطابقة، تسليم بسرعة الخط، صفر تخزين على الخادم. حتى 256 مستقبِلًا لكل مسار.
إذا كانت إحدى الحاويات المستهلكة تجمع نفايات أو قرصها مشغول، يتأخّر اتصالها. الأنبوب يطبّق ضغطًا عكسيًا على ذلك المستقبِل — الـ49 الآخرون يستمرّون بالبثّ بأقصى سرعة. لا حجب رأس الصف، ولا ضبط لعمق الطابور.
حين تريد خمسون حاوية الإجابة نفسها، البدائل تفرض رسومًا لكل استدعاء، أو لكل رمز، أو لكل خادم استدلال. الأنبوب يفرض رسوم نقل HTTP واحد. شغّل النموذج على صندوق تستأجره أصلًا.
هذا ليس كل عبء عمل — إنه الشكل الذي تريد فيه N حاوية الإجابة نفسها. حين يكون هذا شكلك، الأنبوب أرخص بثّ موزّع ستوصّله. الأعباء بتوجيهات متباينة لا تزال تريد خادم استدلال حقيقيًا؛ هذا النمط يلمع حين يكون السؤال متطابقًا والأسطول واسعًا.
وحدة GPU واحدة، أنبوب واحد، خمسون حاوية تتذوّق الرموز نفسها.
كل حزمة "امنح أسطولي وصولًا إلى نموذج" تلجأ إليها حين يحتاج استعلام واحد إلى تغذية مستهلكين كثر. كلٌّ منها يفرض رسومًا لكل استدعاء، أو يستضيف أوزانك، أو يطلب منك تشغيل موازن أحمال أمام vLLM. الأنبوب يبثّ مرّة واحدة.
كفّ عن دفع خمسين فاتورة استدلال لإجابة واحدة. شغّل النموذج حيث تستأجر السيليكون أصلًا. افتح أنبوبًا. دع الأسطول يقرأ.