Recommandations d’instance pour les déploiements de points de terminaison multimodèles
Plusieurs éléments doivent être pris en compte lors de la sélection d’un type d’instance de ML SageMaker AI pour un point de terminaison multimodèle :
-
Provisionnez suffisamment de capacité Amazon Elastic Block Store (Amazon EBS) pour tous les modèles qui doivent être servis.
-
Équilibrez les performances (minimisez les démarrages à froid) et les coûts (ne surprovisionnez pas la capacité d'instance). Pour plus d’informations sur le volume de stockage attaché par SageMaker AI à chaque type d’instance d’un point de terminaison et d’un point de terminaison multimodèles, consultez Volumes de stockage d’instances.
-
Pour un conteneur configuré pour s'exécuter en mode
MultiModel, le volume de stockage provisionné pour ses instances est supérieur à celui du modeSingleModelpar défaut. Cela permet à d'autres modèles d'être mis en cache sur le volume de stockage d'instance qu'en modeSingleModel.
Lorsque vous choisissez un type d’instance de ML SageMaker AI, tenez compte des éléments suivants :
-
Les points de terminaison multimodèles sont actuellement pris en charge pour tous les types d’instances de processeur et sur les types d’instances à GPU unique.
-
Pour la distribution du trafic (modèles d’accès) vers les modèles que vous souhaitez héberger derrière le point de terminaison multimodèle, ainsi que la taille du modèle (nombre de modèles pouvant être chargés en mémoire sur l’instance), gardez les informations suivantes à l’esprit :
-
Considérez la quantité de mémoire d'une instance comme l'espace de cache pour les modèles à charger, et considérez le nombre de vCPUs comme la limite de simultanéité pour effectuer des inférences sur les modèles chargés (en supposant que l'appel d'un modèle est lié au processeur).
-
Pour les instances basées sur des processeurs, le nombre de vCPUs a une incidence sur le nombre maximal d’invocations simultanés par instance (en supposant que l’invocation d’un modèle soit lié au processeur). Un nombre plus élevé de vCPU vous permet d'appeler plus de modèles uniques simultanément.
-
Pour les instances basées sur des GPU, une capacité de mémoire d'instance et de GPU supérieure vous permet d'avoir plus de modèles chargés et prêts à servir les demandes d'inférence.
-
Pour les instances basées sur des processeurs et des GPU, une mémoire « slack » disponible permet que les modèles inutilisés puissent être déchargés, en particulier pour les points de terminaison multimodèles avec plusieurs instances. Si une instance ou une zone de disponibilité échoue, les modèles de ces instances seront reroutés vers d'autres instances derrière le point de terminaison.
-
-
Déterminez votre tolérance aux temps de chargement/téléchargement :
-
Les familles de types d'instance d (par exemple, m5d, c5d ou r5d) et g5s sont équipées d'un SSD NVMe (mémoire non volatile express), qui offre des performances d'I/O élevées et peut réduire le temps nécessaire pour télécharger les modèles sur le volume de stockage et pour que le conteneur charge le modèle à partir du volume de stockage.
-
Comme les types d’instances d et g5 sont livrés avec un stockage SSD NVMe, SageMaker AI n’attache pas un volume de stockage Amazon EBS aux instances de calcul ML qui hébergent le point de terminaison multimodèle. Auto Scaling fonctionne mieux lorsque les modèles sont similaires en taille et homogènes, c'est-à-dire lorsqu'ils ont des exigences de ressources et de latence d'inférence similaires.
-
Vous pouvez également utiliser les conseils suivants pour optimiser le chargement des modèles sur vos points de terminaison multimodèles :
Choisir un type d'instance qui ne peut pas contenir tous les modèles ciblés en mémoire
Dans certains cas, vous pouvez décider de réduire les coûts en choisissant un type d'instance qui ne peut pas contenir tous les modèles ciblés en mémoire simultanément. SageMaker AI décharge dynamiquement les modèles lorsqu’il manque de mémoire pour libérer de l’espace pour un modèle nouvellement ciblé. Pour les modèles rarement demandés, vous sacrifiez la latence de charge dynamique. Dans les cas où les besoins de latence sont plus stricts, vous pouvez opter pour des types d'instance plus importants ou pour plus d'instances. Investir du temps à l'avance dans les tests et les analyses des performances vous aide à réussir vos déploiements de production.
Évaluation des accès au cache de votre modèle
Les métriques Amazon CloudWatch peuvent vous aider à évaluer vos modèles. Pour plus d’informations sur les métriques que vous pouvez utilisez avec des points de terminaison multimodèles, consultez Métriques CloudWatch pour les déploiements de points de terminaison multimodèles .
Vous pouvez utiliser la statistique Average de la métrique ModelCacheHit pour contrôler le ratio des demandes où le modèle est déjà chargé. Vous pouvez utiliser la statistique SampleCount de la métrique ModelUnloadingTime pour contrôler le nombre de demandes de déchargement envoyées au conteneur pendant une période donnée. Si les modèles sont déchargés trop fréquemment (indicateur de l’écrasement, où les modèles sont déchargés et chargés à nouveau parce qu’il n’y a pas suffisamment d’espace cache pour le jeu de modèles de travail), envisagez d’utiliser un type d’instance plus grand avec plus de mémoire ou d’augmenter le nombre d’instances derrière le point de terminaison multimodèle. Pour les points de terminaison multimodèles avec plusieurs instances, sachez qu’un modèle peut être chargé sur plus d’une instance.