PAI-EAS Spot est une solution économique permettant de déployer des services d'inférence en ligne à l'aide d'instances Spot. Cette option convient parfaitement aux applications sensibles aux coûts qui peuvent tolérer de légers délais de réponse occasionnels. Cette rubrique présente les bonnes pratiques d'utilisation de PAI-EAS Spot afin de vous aider à réduire vos coûts tout en maintenant la stabilité de vos services.
Scénarios d'utilisation
Charges de travail non critiques : Applications pour lesquelles des interruptions de service occasionnelles ont un impact minimal.
Traitement tolérant aux pannes : Applications capables de gérer de brèves indisponibilités du service grâce à des mécanismes de nouvelle tentative ou d'autres stratégies de tolérance aux pannes.
Besoins élevés en optimisation des coûts : Projets ou entreprises cherchant à réduire leurs coûts opérationnels en utilisant des ressources de calcul flexibles et peu onéreuses.
Méthode de configuration du service Spot
Connectez-vous à la console PAI. Sélectionnez une région en haut de la page, choisissez l'espace de travail souhaité, puis cliquez sur Enter Elastic Algorithm Service (EAS).
Cliquez sur Deploy Service. Dans la section Inference Service, cliquez sur Custom Deployment dans la partie Custom Model Deployment.
-
Dans la section de déploiement des ressources, définissez le type de ressource sur Public Resources. Choisissez une spécification de ressource (les instances de série L ou H sont recommandées), activez le mode Spot et saisissez votre prix d'enchère. Consultez la courbe des prix historiques pour visualiser les prix du marché des dernières 48 heures et vous en servir comme référence pour vos enchères.
Dans la section Deployment Resources, ajoutez plusieurs spécifications de ressources. Pour chacune d'elles, activez l'option Spot et définissez un prix d'enchère. Réglez la durée de conservation des instances Spot (Spot Instance Retention Duration) sur No Guaranteed Protection Period.
ImportantVotre prix d'enchère ne correspond pas au prix que vous payez réellement : c'est le prix du marché qui détermine le montant facturé. Votre enchère reflète le prix maximum que vous êtes prêt à payer. Tant que le prix du marché reste inférieur à votre enchère, votre instance reste active. Pendant cette période, vous payez le prix actuel du marché, et non votre prix d'enchère.
Nous vous recommandons vivement de définir votre prix d'enchère à 20 % du prix catalogue. Par exemple, le prix catalogue à la demande pour une instance L20 avec 8 cœurs et un seul GPU est de 14,4 CNY/heure. Les prix Spot actuels ne dépassent jamais 20 % du prix catalogue, soit 2,88 CNY/heure dans ce cas. Cette stratégie garantit un accès stable aux ressources avec une réduction significative. Pour plus d'informations, consultez la rubrique Sélection d'instances Spot.
Configurez des instances régulières (à la demande) parallèlement aux instances Spot afin d'éviter les échecs de déploiement si la capacité Spot n'est pas disponible.
Une fois le déploiement réussi, consultez les fluctuations de prix des dernières 48 heures sur la page des détails du service EAS afin de mieux comprendre l'évolution des coûts. Dans la section Service Instances, vérifiez l'état de vos instances Spot. Cliquez sur une instance pour ouvrir le panneau latéral droit, qui affiche un graphique linéaire intitulé Instance Specification Price (CNY/hour). La ligne bleue continue indique le prix catalogue initial, tandis que la ligne violette en pointillés représente le prix du marché Spot dans la zone.
Récupération des instances Spot et tolérance aux pannes
Mécanisme de récupération de la plateforme EAS
Lorsqu'une instance Spot est sur le point d'être récupérée, EAS reçoit généralement une notification d'avertissement environ 5 minutes à l'avance. Dès réception de cet avis, l'instance entame un arrêt gracieux pour drainer le trafic en douceur et éviter les échecs de requêtes. Simultanément, EAS lance automatiquement une nouvelle instance en tentant le déploiement selon l'ordre spécifié dans votre configuration de ressources. Ce processus minimise les perturbations et assure la continuité fluide de vos activités.
Configurez des instances régulières à la demande pour prévenir toute interruption totale du service si toutes les instances Spot sont récupérées. Cela garantit la continuité et la stabilité du service.
Retour aux instances Spot après récupération
Si votre service bascule vers des instances régulières après la récupération d'une instance Spot et que vous souhaitez revenir aux instances Spot dès que l'inventaire le permet, utilisez la fonctionnalité de recréation d'instance.
La fonctionnalité de recréation d'instance libère l'instance actuelle et en crée une nouvelle avec des paramètres identiques :
Dans la section Service Instances, cliquez sur le menu déroulant de la colonne Actions correspondant à l'instance cible et sélectionnez Instance Recreation.
Recommandations de configuration utilisateur
Lorsqu'une instance Spot est sur le point d'être récupérée, EAS démarre automatiquement une nouvelle instance et initie un arrêt gracieux. Pour améliorer la stabilité, la fiabilité et la vitesse de démarrage du service, suivez ces recommandations de configuration.
Configurer plusieurs types d'instances
Afin de garantir la stabilité et la fiabilité du service, adoptez une stratégie diversifiée en sélectionnant plusieurs spécifications de ressources. Il est crucial d'inclure au moins un type d'instance régulier (non Spot) comme option de secours. EAS tentera de déployer les instances dans l'ordre que vous spécifiez, maximisant ainsi les chances de démarrage réussi et de fonctionnement continu. Pour plus d'informations sur la sélection d'instances multi-spécifications, consultez la rubrique Sélection d'instances multi-spécifications.
Dans la section Deployment Resources, ajoutez jusqu'à 10 spécifications de ressources. Définissez un Bid Price (CNY/heure) pour chaque instance Spot. Pour la durée de conservation des instances Spot (Spot Instance Retention Duration), choisissez soit No Guaranteed Protection Period, soit Guarantee 1 Hour of Usage.
Activer le cache mémoire du répertoire local
Pour accélérer le chargement des fichiers de modèle lors du démarrage d'une nouvelle instance après la récupération d'une instance Spot, configurez la mise en cache mémoire du répertoire local. Cette fonction utilise la mémoire inactive du nœud pour mettre en cache les fichiers de modèle depuis le répertoire local. Les nouvelles instances peuvent alors charger les modèles directement depuis la mémoire au lieu de les lire depuis le stockage de données centralisé monté, ce qui réduit le temps d'initialisation et minimise les temps d'arrêt du service pendant la mise à l'échelle.
Activez l'accélération par cache mémoire lors de la création du service EAS pour améliorer l'efficacité de la mise à l'échelle. Pour plus d'informations, consultez la rubrique Accélération du cache de modèle.
Dans la section Service Features, activez l'option Memory Cache Acceleration. Une fois activée, cliquez sur Modify Configuration pour ajuster les paramètres du cache.
Le tableau ci-dessous illustre l'amélioration des performances obtenue en activant l'accélération par cache mémoire (cachefs). En prenant l'exemple du changement de modèle Stable Diffusion, par rapport au chargement direct des modèles depuis un répertoire monté sur OSS, l'activation de cachefs permet aux nouvelles instances de lire les modèles depuis la mémoire d'autres instances en cours d'exécution (hit distant cachefs), réduisant considérablement le temps de chargement du modèle.
Modèle | Taille du modèle | Temps de chargement du modèle (s) | |
Montage OSS | Hit distant cachefs | ||
anything-v4.5.safetensors | 7,2 Go | 89,88 | 15,18 |
Anything-v5.0-PRT-RE.safetensors | 2,0 Go | 16,73 | 5,46 |
cetusMix_Coda2.safetensors | 3,6 Go | 24,76 | 7,13 |
chilloutmix_NiPrunedFp32Fix.safetensors | 4,0 Go | 48,79 | 8,47 |
CounterfeitV30_v30.safetensors | 4,0 Go | 64,99 | 7,94 |
deliberate_v2.safetensors | 2,0 Go | 16,33 | 5,55 |
DreamShaper_6_NoVae.safetensors | 5,6 Go | 71,78 | 10,17 |
pastelmix-fp32.ckpt | 4,0 Go | 43,88 | 9,23 |
revAnimated_v122.safetensors | 4,0 Go | 69,38 | 3,20 |
Utiliser ACR Enterprise Edition
Pour accélérer l'extraction d'images lors du démarrage de nouvelles instances après la récupération d'une instance Spot, utilisez ACR Enterprise Edition avec l'accélération d'image activée. Déployez les services EAS à l'aide d'images accélérées en ajoutant _accelerated à l'URL standard de l'image. Lors du déploiement, sélectionnez le réseau VPC associé à votre instance ACR Enterprise Edition.
Utilisez ACR Enterprise Edition avec un type d'instance Standard Edition. Activez l'accélération d'image lors de la création de votre dépôt d'images pour améliorer l'efficacité de la mise à l'échelle. Pour plus d'informations, consultez la rubrique Accélération d'image.
Dans les options d'accélération d'image, sélectionnez Full Mode.
Combinaison avec la mise à l'échelle élastique
Lorsque votre charge de travail présente des pics et des creux significatifs, activez la mise à l'échelle automatique horizontale. Utilisez une combinaison de groupes de ressources dédiés pour la capacité de base + ressources Spot pour l'élasticité + ressources régulières comme solution de secours afin d'assurer une mise à l'échelle fluide et une efficacité optimale des coûts. Suivez cette stratégie de configuration :
Achetez un ensemble de groupes de ressources dédiés EAS en abonnement ou à la demande pour garantir une capacité de service minimale. Dans la console, configurez les besoins en GPU, CPU et mémoire dans votre groupe de ressources dédié afin d'assurer un démarrage fiable des services.
-
Activez le Elastic Resource Pool EAS et configurez plusieurs spécifications de ressources. Donnez la priorité aux ressources Spot dans votre ordre de tri, en plaçant les ressources régulières en dernier recours. Cela garantit que, lors des pics de trafic, la mise à l'échelle utilise d'abord la capacité Spot disponible et ne se rabat sur les ressources régulières que lorsque l'inventaire Spot est insuffisant, équilibrant ainsi économies de coûts et fiabilité.
Configurez trois types de ressources dans le pool de ressources élastique : ecs.gn8v-8x.48xlarge (Spot activé, enchère de 33 CNY/heure) et ecs.gn8is-8x.32xlarge (Spot activé, enchère de 25 CNY/heure) en tant que ressources Spot, et ml.gu7i.c8m30,1-gu30 (Spot désactivé) comme solution de secours. Réglez la durée de conservation des instances Spot (Spot Instance Retention Duration) sur Guarantee 1 Hour of Usage.
-
Après avoir déployé votre service, activez la mise à l'échelle automatique horizontale sur la page des détails du service en fonction des métriques métier. Effectuez la mise à l'échelle automatiquement à l'aide de métriques telles que les QPS, l'utilisation du CPU, l'utilisation du GPU ou la longueur de la file d'attente, ou définissez des métriques personnalisées.
Dans la boîte de dialogue Auto Scaling Settings, définissez le nombre Minimum Instances et Maximum Instances (par exemple, 2 et 10). Sélectionnez une métrique de mise à l'échelle et définissez un seuil (par exemple, réglez le GPU Utilization Threshold sur 60 %), puis cliquez sur Enable.
Vous pouvez également activer la mise à l'échelle planifiée pour s'aligner sur les modèles de trafic prévisibles au fil du temps.
Dans la boîte de dialogue Scheduled Auto Scaling Settings, cliquez sur Add pour créer une tâche planifiée. Configurez le Task Name, le Target Instance Count et le Scheduling Cycle (choisissez entre Weekly, Daily ou une expression cron). Sélectionnez l'heure d'exécution et le système générera automatiquement l'expression cron correspondante (par exemple,
0 0 9 * * *s'exécute tous les jours à 9 h). Cliquez sur OK une fois terminé.
Lors de la création d'instances, EAS donne la priorité à la capacité du groupe de ressources dédié, puis parcourt les ressources disponibles dans le pool de ressources élastiques selon l'ordre que vous avez spécifié.
Par exemple, si votre groupe de ressources dédié est entièrement utilisé et que des instances supplémentaires sont nécessaires depuis le pool de ressources publiques, le système vérifie d'abord combien d'instances ecs.gn8v-8x.48xlarge peuvent être créées. Si la capacité est insuffisante, il vérifie les ecs.gn8is-8x.32xlarge. Si les deux ne sont pas disponibles, il utilise ml.gu7i.c8m30,1-gu30 pour les instances restantes.
Par exemple, pour augmenter de 8 instances la capacité au-delà de votre groupe de ressources dédié, vous pourriez obtenir 2 instances dans le groupe dédié, 3 sur ecs.gn8v-8x.48xlarge, 2 sur ecs.gn8is-8x.32xlarge et 3 sur ml.gu7i.c8m30,1-gu30.
Pour des instructions détaillées sur la configuration élastique d'EAS, consultez les documents suivants :