Aller au contenu
TYPEDébloqué
ÉTAPEFlotte
DIFFICULTÉAvancé
MÉTIERDéployer une API
POURCréateurs d'IA
POURÉquipes de devs
SERVICESPipe
SERVICESDaemon
POURQUOI HOODYHTTP-natif
POURQUOI HOODYÉconomie des conteneurs
POURQUOI HOODYIA-natif
TYPEDébloqué
ÉTAPEFlotte
DIFFICULTÉAvancé
MÉTIERDéployer une API
POURCréateurs d'IA
POURÉquipes de devs
SERVICESPipe
SERVICESDaemon
POURQUOI HOODYHTTP-natif
POURQUOI HOODYÉconomie des conteneurs
POURQUOI HOODYIA-natif
TYPEDébloqué
ÉTAPEFlotte
DIFFICULTÉAvancé
MÉTIERDéployer une API
POURCréateurs d'IA
POURÉquipes de devs
SERVICESPipe
SERVICESDaemon
POURQUOI HOODYHTTP-natif
POURQUOI HOODYÉconomie des conteneurs
POURQUOI HOODYIA-natif
TYPEDébloqué
ÉTAPEFlotte
DIFFICULTÉAvancé
MÉTIERDéployer une API
POURCréateurs d'IA
POURÉquipes de devs
SERVICESPipe
SERVICESDaemon
POURQUOI HOODYHTTP-natif
POURQUOI HOODYÉconomie des conteneurs
POURQUOI HOODYIA-natif
PIPE · LLM LOCAL · FAN-OUT

Lancez un LLM local, servez-le à toute votre flotte

vous faites tourner un modèle 70B sur une seule machine GPU. Cinquante conteneurs en aval dans votre flotte ont besoin de la même réponse pour la même requête — ils scorent le même catalogue, génèrent les mêmes embeddings, évaluent la même expérience. Ne payez pas cinquante inférences. Lancez le modèle une fois, broadcastez les tokens.

Lire l'API pipe

Un GPU, un pipe, cinquante consommateurs

La réponse naïve est un serveur HTTP avec une queue, du request batching et de la contention de lock. La réponse moins chère pour cette forme : chaque requête va sur un chemin pipe avec ?n=50. Le modèle tourne une fois. Cinquante conteneurs consommateurs GET le même chemin et streament les mêmes tokens en même temps, fan-outés par le pipe. Un worker lent applique de la backpressure à sa propre connexion — les autres restent à pleine vitesse.

fleet-broadcast.sh
# 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 envoie les bytes vers le haut. GET les tire vers le bas. Le paramètre ?n=50 dit combien de lecteurs attendre ; le pipe garde la connexion jusqu'à ce que ce nombre se connecte, puis fan-out le stream simultanément vers tous. Pas de queue, pas de couche de batching, pas d'inference-server-with-load-balancer.

UNE INFÉRENCE

Le modèle tourne exactement une fois par requête

cinquante conteneurs en aval veulent la même réponse ; vous la générez sur le GPU une fois. Le pipe gère la livraison. Pas de framework de request-batching, pas de couche de cache de tokens, pas de coordination « s'il vous plaît ne le relancez pas ».

FAN-OUT PIPE

?n=50 fan-out les mêmes bytes vers cinquante lecteurs

le pipe bloque jusqu'à ce que cinquante receivers se connectent, puis streame les bytes du producer vers chacun en parallèle. Copies identiques, livraison à pleine vitesse, zéro stockage côté serveur. Jusqu'à 256 receivers par chemin.

BACKPRESSURE PAR RECEIVER

Les workers lents ne ralentissent qu'eux-mêmes

si un conteneur consommateur fait du GC ou que son disque est occupé, sa connexion lag. Le pipe applique de la backpressure à ce receiver — les 49 autres continuent à streamer à pleine vitesse. Pas de head-of-line blocking, pas de tuning de profondeur de queue.

PLAFOND FAN-OUT256Plafond de receivers par chemin appliqué par le pipe — réglez ?n pour attendre ce nombre avant que le transfert démarre.
INFÉRENCES PAR REQUÊTE1Le modèle tourne une fois par requête, pas une fois par consommateur. Le coût compute est découplé de la taille de la flotte.
EMPREINTE SDK0 kbLe producer est curl. Les consommateurs sont curl. Tout ce qui parle HTTP peut s'abonner — conteneur, agent, navigateur, shell.

Ce que vous arrêtez de payer

Quand cinquante conteneurs veulent la même réponse, les alternatives facturent à l'appel, au token, ou par serveur d'inférence. Le pipe facture pour un seul transfert HTTP. Lancez le modèle sur une machine que vous louez déjà.

AVANTAPI hostée · facturation au token50× tokensBedrock ou OpenAI vous facture cinquante completions identiques quand cinquante conteneurs posent la même question. Même prompt, même réponse, facturé cinquante fois.
APRÈSModèle local · broadcast pipe1× tokensLa machine GPU que vous louez déjà génère une fois. Le pipe transporte les bytes vers les cinquante. La flotte scale horizontalement sans scaler la facture d'inférence.

ce n'est pas chaque charge — c'est la forme où N conteneurs veulent la même réponse. Quand c'est votre forme, le pipe est le fan-out le moins cher que vous câblerez. Les charges avec des prompts qui divergent veulent toujours un vrai serveur d'inférence ; ce pattern brille quand la question est identique et que la flotte est large.

Un GPU, un pipe, cinquante conteneurs qui goûtent les mêmes tokens.

0101 · UN GPU GÉNÈRE LES TOKENS
0202 · UN PIPE LES TRANSPORTE
0303 · CINQUANTE CONTAINERS LES GOÛTENT EN MÊME TEMPS
pas de service de fan-out d'inférencele chemin est le broadcast

Ce que ça remplace

Chaque stack « donne à ma flotte accès à un modèle » que vous attrapez quand une requête doit alimenter plusieurs consommateurs. Chacune facture à l'appel, héberge vos weights, ou vous demande de faire tourner un load balancer devant vLLM. Le pipe broadcast une fois.

  • AWS Lambda + BedrockFacturation au token × taille de flotte, weights que vous ne possèdes pas
  • Modal LabsRunners GPU hostés, facturation à la seconde par worker
  • ReplicatePricing à l'appel, round-trip réseau par consommateur
  • API OpenAI à l'échellePrompt identique facturé une fois par consommateur
  • vLLM/TGI derrière un load balancerServeur, queue, tuning de batching, surface d'ops à maintenir en vie
  • Gateways de modèles auto-hostésRouting, auth, rate limits — tout en DIY pour un seul fan-out

Arrêtez de payer cinquante factures d'inférence pour une réponse. Lancez le modèle là où vous louez déjà le silicium. Ouvrez un pipe. Laissez la flotte lire.

Lire l'API pipe

Lis les autres