On-Off Scaling Pattern pour les charges de travail d'AI et de traitement vidéo
Une plateforme de traitement vidéo basée sur l'AI devait gérer des charges de travail très variables — de zéro tâche pendant les heures creuses à des centaines de tâches concurrentes de traitement vidéo et d'inférence AI pendant les périodes de pointe — sans payer pour des ressources GPU et de calcul inactives.
Discutez de Votre Projet
Le Défi
Les charges de travail d'AI et de traitement vidéo sont intrinsèquement irrégulières et coûteuses :
- Les instances GPU sont coûteuses qu'elles traitent des tâches ou qu'elles soient inactives
- L'encodage vidéo, la transcription et l'inférence AI exigent des profils de ressources différents
- Le rapport crête-creux était de 50:1 — plus de 200 tâches pendant les pics, quasi-nul pendant la nuit
- L'auto-scaling traditionnel était trop lent (démarrage à froid de 5 à 10 min) pour les requêtes utilisateur sensibles au temps
- L'infrastructure fixe provisionnée pour les pics entraînait plus de 80 % de gaspillage pendant les heures creuses
Notre Solution
Nous avons mis en œuvre un On-Off scaling pattern — une architecture hybride où les ressources de calcul sont provisionnées juste-à-temps pour les charges de travail actives et entièrement désallouées lorsqu'elles sont inactives, avec des warm pools pour les tâches sensibles à la latence et des cold pools pour les tâches batch.
Architecture
- Job Queue : File d'attente de tâches basée sur une base de données avec classification des priorités
- Orchestrator : Service gérant le cycle de vie des ressources et le routage des tâches
- GPU Workers (AI) : Pods GPU Cloud pour l'inférence (détection d'objets, transcription, détection de locuteur)
- CPU Workers (Vidéo) : VMs Cloud pour l'encodage et le rendu vidéo
- Warm Pool : Instances pré-initialisées pour les tâches sensibles à la latence (démarrage < 30s)
- Cold Pool : Instances à la demande pour le traitement batch/en masse (démarrage de 2 à 5 min acceptable)
Implémentation du On-Off Pattern
États du cycle de vie des ressources
Les ressources suivent un cycle de vie défini : de l'état entièrement désalloué (coût zéro), en passant par le provisionnement et le "warming" (chargement des modèles, contrôles de santé), aux états prêt et en traitement, puis à travers une fenêtre de "cooldown" avant de revenir à l'état désalloué.
Stratégie de Warm Pool
Pour le traitement sensible à la latence (initié par l'utilisateur, résultats attendus en quelques minutes) :
- Maintenir un minimum de warm pool d'instances pendant les heures de bureau
- Pré-charger les modèles AI au démarrage des conteneurs
- Router les tâches entrantes vers les instances warm en premier
- Scaler d'autres instances warm lorsque la profondeur de la queue dépasse un seuil
- Un minuteur de cooldown configurable maintient les instances actives entre les tâches sporadiques
Stratégie de Cold Pool
Pour le traitement batch (tâches en masse de nuit, ré-encodages non urgents) :
- Zéro instance en cours d'exécution par défaut
- La Job Queue déclenche le provisionnement lorsque des tâches batch sont soumises
- Instances optimisées pour le traitement en masse, privilégiant le débit à la latence
- Terminer immédiatement après l'achèvement du batch
- Utiliser des instances spot/préemptibles pour des économies de coûts significatives
Classification et Routage des tâches
Les tâches sont automatiquement classifiées par priorité et par type, puis routées vers le pool approprié :
- Les tâches AI initiées par l'utilisateur de haute priorité sont routées vers les warm GPU pools
- Les tâches en temps réel critiques sont routées vers des instances dédiées toujours actives
- Les tâches d'encodage de priorité moyenne sont routées vers des warm ou cold CPU pools
- Les tâches batch de basse priorité sont routées vers des instances cold spot/préemptibles
Logique de l'Orchestrator
Déclencheurs de Scale-Up
- La profondeur de la queue dépasse un seuil configurable
- Le temps d'attente moyen dépasse le SLA pour le niveau de priorité
- Montée en puissance planifiée avant les heures de pointe connues
- Déclenchement manuel via l'API admin pour les pics de trafic anticipés
Déclencheurs de Scale-Down
- Aucune tâche traitée pendant la durée de la fenêtre de cooldown
- Réduction planifiée après les heures de pointe
- Toutes les tâches en file d'attente terminées sans nouvelles soumissions
- Seuil de coût atteint pour la période de facturation
Santé et Récupération
- Sondes de santé régulières sur toutes les instances actives
- Les instances non saines sont remplacées automatiquement
- Les tâches échouées sont remises en queue avec un compte de tentatives et routées vers une instance différente
- Dead letter queue pour les tâches dépassant le nombre maximal de tentatives
Impact sur les coûts
Le On-Off pattern a permis une réduction des coûts d'environ 70% par rapport à une infrastructure fixe toujours active, en éliminant le calcul inactif pendant les heures creuses, en dimensionnant correctement les ressources par type de tâche, et en tirant parti des instances spot pour les charges de travail batch.
Fonctionnalités clés
- Coût d'inactivité nul — Ressources entièrement désallouées lorsqu'elles ne traitent pas de tâches
- Warm Pools — Instances pré-initialisées pour les charges de travail sensibles à la latence
- Cold Pools — Provisionnement à la demande pour les tâches batch au coût le plus bas
- Classification des tâches — Routage automatique basé sur la priorité, le type et les exigences de latence
- Fenêtres de Cooldown — Le délai d'inactivité configurable empêche le scale-down prématuré entre les rafales
- Support Spot/Preemptible — Les tâches batch sont routées vers des instances à prix réduit pour des économies significatives
- Santé et Récupération — Remplacement automatique des instances non saines avec remise en queue des tâches
- Scaling Planifié — Anticiper les modèles de trafic connus avec des règles de provisionnement basées sur le temps
Résultats
Stack Technologique
caseStudyDetail.more Études de Cas
Découvrez plus de nos implémentations techniques
Utiliser RunPod pour une inférence d'AI évolutive et rentable
Une plateforme d'analyse vidéo basée sur l'AI avait besoin d'une capacité de calcul GPU haute performance pour la détection d'objets et l'inférence en temps réel sur plusieurs flux vidéo simultanés, sans le coût prohibitif de serveurs GPU dédiés fonctionnant 24h/24 et 7j/7.
Traitement de factures assisté par l'IA avec OCR et intégration QuickBooks
Une entreprise de taille moyenne, traitant des centaines de factures fournisseurs chaque mois, devait éliminer la saisie manuelle des données en extrayant automatiquement les données des factures à l'aide de l'IA/OCR et en les synchronisant directement dans QuickBooks pour la tenue de livres et le suivi des paiements.
Prêt à Transformer Votre Entreprise ?
Discutons de la façon dont nous pouvons appliquer des solutions similaires à vos défis.