En 2021, nous avons lancé Services proactifs d'assistance AWS dans le cadre de la Prise en charge des entreprises AWS plan. Depuis son introduction, nous avons aidé des centaines de clients à optimiser leurs charges de travail, à définir des garde-fous et à améliorer la visibilité du coût et de l'utilisation de leurs charges de travail d'apprentissage automatique (ML).
Dans cette série d'articles, nous partageons les leçons apprises sur l'optimisation des coûts dans Amazon Sage Maker. En Partie 1, nous avons montré comment commencer à utiliser Explorateur de coûts AWS pour identifier les opportunités d'optimisation des coûts dans SageMaker. Dans cet article, nous nous concentrons sur les environnements d'inférence SageMaker : inférence en temps réel, transformation par lots, inférence asynchrone et inférence sans serveur.
SageMaker offre plusieurs options d'inférence pour vous de choisir en fonction de vos exigences de charge de travail :
- Inférence en temps réel pour les besoins en ligne, à faible latence ou à haut débit
- Transformation par lots pour le traitement planifié hors ligne et lorsque vous n'avez pas besoin d'un point de terminaison persistant
- Inférence asynchrone lorsque vous avez des charges utiles volumineuses avec de longs délais de traitement et que vous souhaitez mettre les demandes en file d'attente
- Inférence sans serveur lorsque vous avez des modèles de trafic intermittents ou imprévisibles et que vous pouvez tolérer les démarrages à froid
Dans les sections suivantes, nous abordons chaque option d'inférence plus en détail.
Inférence en temps réel SageMaker
Lorsque vous créez un point de terminaison, SageMaker attache un Boutique de blocs élastiques Amazon (Amazon EBS) volume de stockage au Cloud de calcul élastique Amazon (Amazon EC2) qui héberge le point de terminaison. Cela est vrai pour tous les types d'instances qui ne sont pas fournis avec un stockage SSD. Étant donné que les types d'instances d* sont fournis avec un stockage SSD NVMe, SageMaker n'attache pas de volume de stockage EBS à ces instances de calcul ML. Faire référence à Volumes de stockage d'instance d'hôte pour la taille des volumes de stockage que SageMaker attache pour chaque type d'instance pour un point de terminaison unique et pour un point de terminaison multimodèle.
Le coût des points de terminaison en temps réel SageMaker est basé sur l'heure d'instance consommée pour chaque instance pendant que le point de terminaison est en cours d'exécution, le coût du Go-mois de stockage provisionné (volume EBS), ainsi que les données Go traitées entrantes et sortantes de l'instance de point de terminaison, comme indiqué dans Tarification d'Amazon SageMaker. Dans Cost Explorer, vous pouvez afficher les coûts des terminaux en temps réel en appliquant un filtre sur le type d'utilisation. Les noms de ces types d'utilisation sont structurés comme suit :
REGION-Host:instanceType
(par exemple,USE1-Host:ml.c5.9xlarge
)REGION-Host:VolumeUsage.gp2
(par exemple,USE1-Host:VolumeUsage.gp2
)REGION-Hst:Data-Bytes-Out
(par exemple,USE2-Hst:Data-Bytes-In
)REGION-Hst:Data-Bytes-Out
(par exemple,USW2-Hst:Data-Bytes-Out)
Comme illustré dans la capture d'écran suivante, le filtrage par type d'utilisation Host:
affichera une liste des types d'utilisation d'hébergement en temps réel dans un compte.
Vous pouvez soit sélectionner des types d'utilisation spécifiques, soit sélectionner Sélectionner tout et choisissez Appliquer pour afficher la répartition des coûts d'utilisation de l'hébergement en temps réel SageMaker. Pour voir la répartition des coûts et de l'utilisation par heure d'instance, vous devez désélectionner tous les REGION-Host:VolumeUsage.gp2
types d'utilisation avant d'appliquer le filtre de type d'utilisation. Vous pouvez également appliquer des filtres supplémentaires tels que le numéro de compte, le type d'instance EC2, la balise de répartition des coûts, la région et PLUS. La capture d'écran suivante montre les graphiques de coût et d'utilisation pour les types d'utilisation d'hébergement sélectionnés.
De plus, vous pouvez explorer le coût associé à une ou plusieurs instances d'hébergement en utilisant le Type d'instance filtre. La capture d'écran suivante montre la répartition des coûts et de l'utilisation pour l'instance d'hébergement ml.p2.xlarge.
De même, le coût des données en Go traitées et traitées peut être affiché en sélectionnant les types d'utilisation associés en tant que filtre appliqué, comme illustré dans la capture d'écran suivante.
Une fois que vous avez atteint les résultats souhaités avec les filtres et les regroupements, vous pouvez soit télécharger vos résultats en choisissant Télécharger au format CSV ou enregistrez le rapport en choisissant Enregistrer dans la bibliothèque de rapports. Pour obtenir des conseils généraux sur l'utilisation de Cost Explorer, reportez-vous à Nouveau look d'AWS Cost Explorer et cas d'utilisation courants.
En option, vous pouvez activer Rapports de coût et d'utilisation AWS (AWS CUR) pour obtenir des informations sur les données de coût et d'utilisation de vos comptes. AWS CUR contient les détails de la consommation AWS horaire. Il est stocké dans Service de stockage simple Amazon (Amazon S3) dans le compte payeur, qui consolide les données de tous les comptes liés. Vous pouvez exécuter des requêtes pour analyser les tendances de votre utilisation et prendre les mesures appropriées pour optimiser les coûts. Amazone Athéna est un service de requête sans serveur que vous pouvez utiliser pour analyser les données d'AWS CUR dans Amazon S3 à l'aide de SQL standard. Vous trouverez plus d'informations et des exemples de requêtes dans le Bibliothèque de requêtes AWS CUR.
Vous pouvez également alimenter les données AWS CUR dans Amazon QuickSight, où vous pouvez le découper et le découper comme vous le souhaitez à des fins de création de rapports ou de visualisation. Pour obtenir des instructions, consultez Comment puis-je ingérer et visualiser le rapport d'utilisation et de coût AWS (CUR) dans Amazon QuickSight.
Vous pouvez obtenir des informations au niveau des ressources telles que l'ARN du point de terminaison, les types d'instance de point de terminaison, le tarif horaire de l'instance, les heures d'utilisation quotidienne, etc. auprès d'AWS CUR. Vous pouvez également inclure des balises de répartition des coûts dans votre requête pour un niveau de granularité supplémentaire. L'exemple de requête suivant renvoie l'utilisation des ressources d'hébergement en temps réel au cours des 3 derniers mois pour le compte payeur donné :
La capture d'écran suivante montre les résultats obtenus en exécutant la requête à l'aide d'Athena. Pour plus d'informations, reportez-vous à Interrogation des rapports de coût et d'utilisation à l'aide d'Amazon Athena.
Le résultat de la requête montre que le point de terminaison mme-xgboost-housing
avec l'instance ml.x4.xlarge signale 24 heures d'exécution pendant plusieurs jours consécutifs. Le tarif de l'instance est de 0.24 USD/heure et le coût quotidien pour une exécution de 24 heures est de 5.76 USD.
Les résultats AWS CUR peuvent vous aider à identifier les modèles de points de terminaison exécutés pendant des jours consécutifs dans chacun des comptes liés, ainsi que les points de terminaison avec le coût mensuel le plus élevé. Cela peut également vous aider à décider si les points de terminaison des comptes hors production peuvent être supprimés pour réduire les coûts.
Optimiser les coûts pour les terminaux en temps réel
Du point de vue de la gestion des coûts, il est important d'identifier les instances sous-utilisées (ou surdimensionnées) et d'adapter la taille et le nombre d'instances, si nécessaire, aux exigences de la charge de travail. Les métriques système courantes telles que l'utilisation du CPU/GPU et l'utilisation de la mémoire sont écrites dans Amazon Cloud Watch pour toutes les instances d'hébergement. Pour les points de terminaison en temps réel, SageMaker met plusieurs métriques supplémentaires à disposition dans CloudWatch. Certaines des métriques couramment surveillées incluent le nombre d'appels et les erreurs d'appel 4xx/5xx. Pour une liste complète des mesures, consultez Surveillez Amazon SageMaker avec Amazon CloudWatch.
La métrique CPUUtilization
fournit la somme de l'utilisation de chaque cœur de processeur individuel. L'utilisation du processeur de chaque plage de cœurs est comprise entre 0 et 100. Par exemple, s'il y a quatre processeurs, le CPUUtilization
la plage est de 0 à 400 %. La métrique MemoryUtilization
est le pourcentage de mémoire utilisé par les conteneurs sur une instance. Cette plage de valeurs est de 0 à 100 %. La capture d'écran suivante montre un exemple de métriques CloudWatch CPUUtilization
et les MemoryUtilization
pour une instance de point de terminaison ml.m4.10xlarge fournie avec 40 processeurs virtuels et 160 Gio de mémoire.
Ces graphiques de métriques montrent une utilisation maximale du CPU d'environ 3,000 30 %, ce qui équivaut à 30 vCPU. Cela signifie que ce point de terminaison n'utilise pas plus de 40 vCPU sur la capacité totale de 6 vCPU. De même, l'utilisation de la mémoire est inférieure à XNUMX %. À l'aide de ces informations, vous pouvez éventuellement tester une instance plus petite pouvant répondre à ce besoin en ressources. De plus, le CPUUtilization
La métrique montre un modèle classique de demande de processeur élevée et faible périodique, ce qui fait de ce point de terminaison un bon candidat pour la mise à l'échelle automatique. Vous pouvez commencer avec une instance plus petite et effectuer un scale-out en premier au fur et à mesure que votre demande de calcul évolue. Pour information, voir Mise à l'échelle automatique des modèles Amazon SageMaker.
SageMaker est idéal pour tester de nouveaux modèles car vous pouvez facilement les déployer dans un environnement de test A/B en utilisant variantes de fabrication, et vous ne payez que ce que vous utilisez. Chaque variante de production s'exécute sur sa propre instance de calcul et vous êtes facturé par heure d'instance consommée pour chaque instance pendant l'exécution de la variante.
SageMaker prend également en charge variantes d'ombre, qui ont les mêmes composants qu'une variante de production et s'exécutent sur leur propre instance de calcul. Avec les variantes fantômes, SageMaker déploie automatiquement le modèle dans un environnement de test, achemine une copie des demandes d'inférence reçues par le modèle de production vers le modèle de test en temps réel et collecte des mesures de performances telles que la latence et le débit. Cela vous permet de valider tout nouveau composant candidat de votre pile de diffusion de modèles avant de le promouvoir en production.
Lorsque vous avez terminé vos tests et que vous n'utilisez plus le point de terminaison ou les variantes de manière intensive, vous devez le supprimer pour réduire les coûts. Étant donné que le modèle est stocké dans Amazon S3, vous pouvez le recréer selon vos besoins. Vous pouvez détecter automatiquement ces endpoints et prendre des mesures correctives (telles que leur suppression) en utilisant Événements Amazon CloudWatch et les AWS Lambda les fonctions. Par exemple, vous pouvez utiliser le Invocations
pour obtenir le nombre total de requêtes envoyées à un point de terminaison de modèle, puis détecter si les points de terminaison ont été inactifs au cours des dernières heures (sans invocations pendant une certaine période, par exemple 24 heures).
Si vous avez plusieurs instances de point de terminaison sous-utilisées, envisagez des options d'hébergement telles que points de terminaison multimodèle (MME), points de terminaison multi-conteneurs (MCE), et pipelines d'inférence série pour consolider l'utilisation sur moins d'instances de point de terminaison.
Pour le déploiement de modèles d'inférence en temps réel et asynchrone, vous pouvez optimiser les coûts et les performances en déployant des modèles sur SageMaker à l'aide de AWS Graviton. AWS Graviton est une famille de processeurs conçus par AWS qui offrent les meilleures performances en termes de prix et sont plus économes en énergie que leurs homologues x86. Pour obtenir des conseils sur le déploiement d'un modèle ML sur des instances basées sur AWS Graviton et des détails sur l'avantage en termes de performances tarifaires, reportez-vous à Exécutez des charges de travail d'inférence d'apprentissage automatique sur des instances basées sur AWS Graviton avec Amazon SageMaker. SageMaker prend également en charge Inférence AWS accélérateurs à travers le ml.inf2 famille d'instances pour le déploiement de modèles ML pour l'inférence en temps réel et asynchrone. Vous pouvez utiliser ces instances sur SageMaker pour obtenir des performances élevées à faible coût pour les modèles d'intelligence artificielle (IA) générative, y compris les grands modèles de langage (LLM) et les transformateurs de vision.
En outre, vous pouvez utiliser Outil de recommandation d'inférence Amazon SageMaker pour exécuter des tests de charge et évaluer les avantages en termes de rapport qualité-prix du déploiement de votre modèle sur ces instances. Pour obtenir des conseils supplémentaires sur la détection automatique des points de terminaison SageMaker inactifs, ainsi que sur le dimensionnement correct des instances et la mise à l'échelle automatique pour les points de terminaison SageMaker, reportez-vous à Assurez des ressources de calcul efficaces sur Amazon SageMaker.
Transformation par lots SageMaker
Inférence par lots, ou inférence hors ligne, est le processus de génération de prédictions sur un lot d'observations. Les prédictions hors ligne conviennent aux ensembles de données plus volumineux et dans les cas où vous pouvez vous permettre d'attendre plusieurs minutes ou plusieurs heures pour obtenir une réponse.
Le coût de la transformation par lots SageMaker est basé sur l'heure d'instance consommée pour chaque instance pendant l'exécution de la tâche de transformation par lots, comme indiqué dans Tarification d'Amazon SageMaker. Dans Cost Explorer, vous pouvez explorer les coûts de transformation par lots en appliquant un filtre sur le type d'utilisation. Le nom de ce type d'utilisation est structuré comme REGION-Tsform:instanceType
(par exemple, USE1-Tsform:ml.c5.9xlarge
).
Comme illustré dans la capture d'écran suivante, le filtrage par type d'utilisation Tsform:
affichera une liste des types d'utilisation de la transformation par lots SageMaker dans un compte.
Vous pouvez soit sélectionner des types d'utilisation spécifiques, soit sélectionner Sélectionner tout et choisissez Appliquer pour afficher la répartition des coûts d'utilisation de l'instance de transformation par lots pour les types sélectionnés. Comme mentionné précédemment, vous pouvez également appliquer des filtres supplémentaires. La capture d'écran suivante montre les graphiques de coût et d'utilisation pour les types d'utilisation de transformation par lots sélectionnés.
Optimiser les coûts de transformation par lots
La transformation par lots SageMaker ne vous facture que les instances utilisées pendant l'exécution de vos travaux. Si vos données sont déjà dans Amazon S3, la lecture des données d'entrée d'Amazon S3 et l'écriture des données de sortie dans Amazon S3 sont gratuites. Tous les objets de sortie sont tentés d'être chargés sur Amazon S3. Si tous réussissent, la tâche de transformation par lots est marquée comme terminée. Si un ou plusieurs objets échouent, la tâche de transformation par lots est marquée comme ayant échoué.
Les frais pour les tâches de transformation par lots s'appliquent dans les scénarios suivants :
- Le travail est réussi
- Échec dû à
ClientError
et le conteneur de modèle est SageMaker ou un cadre géré SageMaker - Échec dû à
AlgorithmError
orClientError
et le conteneur de modèle est votre propre conteneur personnalisé (BYOC)
Voici quelques-unes des meilleures pratiques pour optimiser une tâche de transformation par lots SageMaker. Ces recommandations peuvent réduire la durée d'exécution totale de votre tâche de transformation par lots, réduisant ainsi les coûts :
- Ensemble Stratégie par lots à
MultiRecord
et lesSplitType
àLine
si vous avez besoin du travail de transformation par lots pour créer des mini-lots à partir du fichier d'entrée. S'il ne peut pas diviser automatiquement l'ensemble de données en mini-lots, vous pouvez le diviser en mini-lots en plaçant chaque lot dans un fichier d'entrée séparé, placé dans le compartiment S3 de la source de données. - Assurez-vous que la taille du lot tient dans la mémoire. SageMaker gère généralement cela automatiquement ; cependant, lors de la division manuelle des lots, cela doit être réglé en fonction de la mémoire.
- La transformation par lots partitionne les objets S3 dans l'entrée par clé et mappe ces objets aux instances. Lorsque vous avez plusieurs fichiers, une instance peut traiter
input1.csv
, et une autre instance pourrait traiterinput2.csv
. Si vous avez un fichier d'entrée mais que vous initialisez plusieurs instances de calcul, une seule instance traite le fichier d'entrée et les autres instances sont inactives. Assurez-vous que le nombre de fichiers est égal ou supérieur au nombre d'instances. - Si vous avez un grand nombre de petits fichiers, il peut être avantageux de combiner plusieurs fichiers en un petit nombre de fichiers plus volumineux pour réduire le temps d'interaction d'Amazon S3.
- Si vous utilisez le Créer un travail de transformation API, vous pouvez réduire le temps nécessaire pour effectuer des tâches de transformation par lots en utilisant des valeurs optimales pour des paramètres tels que MaxPayloadInMo, MaxConcurrentTransformsou Stratégie par lots:
MaxConcurrentTransforms
indique le nombre maximal de requêtes parallèles pouvant être envoyées à chaque instance dans une tâche de transformation. La valeur idéale pourMaxConcurrentTransforms
est égal au nombre de cœurs de vCPU dans une instance.MaxPayloadInMB
est la taille maximale autorisée de la charge utile, en Mo. La valeur enMaxPayloadInMB
doit être supérieure ou égale à la taille d'un seul enregistrement. Pour estimer la taille d'un enregistrement en Mo, divisez la taille de votre ensemble de données par le nombre d'enregistrements. Pour garantir que les enregistrements tiennent dans la taille de charge utile maximale, nous vous recommandons d'utiliser une valeur légèrement supérieure. La valeur par défaut est 6 Mo.MaxPayloadInMB
ne doit pas dépasser 100 Mo. Si vous spécifiez l'optionMaxConcurrentTransforms
paramètre, alors la valeur de (MaxConcurrentTransforms
*MaxPayloadInMB
) ne doit pas non plus dépasser 100 Mo.- Dans les cas où la charge utile peut être arbitrairement grande et est transmise à l'aide d'un codage par blocs HTTP, définissez la valeur MaxPayloadInMB sur 0. Cette fonctionnalité ne fonctionne que dans les algorithmes pris en charge. Actuellement, les algorithmes intégrés de SageMaker ne prennent pas en charge le codage par blocs HTTP.
- Les tâches d'inférence par lots sont généralement de bons candidats pour la mise à l'échelle horizontale. Chaque travailleur au sein d'un cluster peut opérer sur un sous-ensemble de données différent sans avoir besoin d'échanger des informations avec d'autres travailleurs. AWS propose plusieurs options de stockage et de calcul qui permettent une mise à l'échelle horizontale. Si une seule instance n'est pas suffisante pour répondre à vos exigences de performances, envisagez d'utiliser plusieurs instances en parallèle pour répartir la charge de travail. Pour connaître les principales considérations lors de la conception d'architectures de tâches de transformation par lots, reportez-vous à Inférence par lots à grande échelle avec Amazon SageMaker.
- Surveillez en continu les métriques de performance de vos tâches de transformation par lots SageMaker à l'aide de CloudWatch. Recherchez les goulots d'étranglement, tels que l'utilisation élevée du CPU ou du GPU, l'utilisation de la mémoire ou le débit du réseau, pour déterminer si vous devez ajuster les tailles ou les configurations des instances.
- SageMaker utilise Amazon S3 API de téléchargement en plusieurs parties pour télécharger les résultats d'une tâche de transformation par lots vers Amazon S3. Si une erreur se produit, les résultats téléchargés sont supprimés d'Amazon S3. Dans certains cas, comme lorsqu'une panne de réseau se produit, un chargement partitionné incomplet peut rester dans Amazon S3. Pour éviter d'encourir des frais de stockage, nous vous recommandons d'ajouter le Stratégie de compartiment S3 aux règles de cycle de vie du compartiment S3. Cette stratégie supprime les chargements partitionnés incomplets susceptibles d'être stockés dans le compartiment S3. Pour plus d'informations, voir Gestion du cycle de vie de votre stockage.
Inférence asynchrone SageMaker
L'inférence asynchrone est un excellent choix pour les charges de travail sensibles aux coûts avec des charges utiles importantes et un trafic en rafale. Les requêtes peuvent prendre jusqu'à 1 heure pour être traitées et avoir des tailles de charge utile allant jusqu'à 1 Go. Il est donc plus adapté aux charges de travail qui ont des exigences de latence assouplies.
L'appel de points de terminaison asynchrones diffère des points de terminaison en temps réel. Plutôt que de transmettre une charge utile de demande de manière synchrone avec la demande, vous chargez la charge utile sur Amazon S3 et transmettez un URI S3 dans le cadre de la demande. En interne, SageMaker maintient une file d'attente avec ces demandes et les traite. Lors de la création du point de terminaison, vous pouvez éventuellement spécifier un Service de notification simple d'Amazon (Amazon SNS) pour recevoir des notifications de réussite ou d'erreur. Lorsque vous recevez la notification indiquant que votre demande d'inférence a été traitée avec succès, vous pouvez accéder au résultat dans l'emplacement Amazon S3 de sortie.
Le coût de l'inférence asynchrone est basé sur l'instance-heure consommée pour chaque instance pendant que le point de terminaison est en cours d'exécution, le coût du Go-mois de stockage provisionné, ainsi que les données en Go traitées dans et hors de l'instance du point de terminaison, comme indiqué dans Tarification d'Amazon SageMaker. Dans Cost Explorer, vous pouvez filtrer les coûts d'inférence asynchrones en appliquant un filtre sur le type d'utilisation. Le nom de ce type d'utilisation est structuré comme REGION-AsyncInf:instanceType
(par exemple, USE1-AsyncInf:ml.c5.9xlarge
). Notez que le volume en Go et les types d'utilisation de données traitées en Go sont les mêmes que les points de terminaison en temps réel, comme mentionné précédemment dans cet article.
Comme illustré dans la capture d'écran suivante, le filtrage par type d'utilisation AsyncInf:
dans Cost Explorer affiche une répartition des coûts par types d'utilisation de point de terminaison asynchrone.
Pour voir la répartition des coûts et de l'utilisation par heure d'instance, vous devez désélectionner tous les REGION-Host:VolumeUsage.gp2
types d'utilisation avant d'appliquer le filtre de type d'utilisation. Vous pouvez également appliquer des filtres supplémentaires. Les informations au niveau des ressources telles que l'ARN du point de terminaison, les types d'instance de point de terminaison, le tarif horaire de l'instance et les heures d'utilisation quotidienne peuvent être obtenues auprès d'AWS CUR. Voici un exemple de requête AWS CUR pour obtenir l'utilisation des ressources d'hébergement asynchrone au cours des 3 derniers mois :
La capture d'écran suivante montre les résultats obtenus lors de l'exécution de la requête AWS CUR à l'aide d'Athena.
Le résultat de la requête montre que le point de terminaison sagemaker-abc-model-5
avec l'instance ml.m5.xlarge signale 24 heures d'exécution pendant plusieurs jours consécutifs. Le tarif de l'instance est de 0.23 $/heure et le coût quotidien pour une exécution de 24 heures est de 5.52 $.
Comme mentionné précédemment, les résultats AWS CUR peuvent vous aider à identifier les modèles de points de terminaison exécutés pendant des jours consécutifs, ainsi que les points de terminaison avec le coût mensuel le plus élevé. Cela peut également vous aider à décider si les points de terminaison des comptes hors production peuvent être supprimés pour réduire les coûts.
Optimiser les coûts pour l'inférence asynchrone
Tout comme les points de terminaison en temps réel, le coût des points de terminaison asynchrones est basé sur l'utilisation du type d'instance. Par conséquent, il est important d'identifier les instances sous-utilisées et de les redimensionner en fonction des exigences de la charge de travail. Afin de surveiller les endpoints asynchrones, SageMaker fait plusieurs métriques tel que ApproximateBacklogSize
, HasBacklogWithoutCapacity
, et plus disponibles dans CloudWatch. Ces métriques peuvent afficher les demandes dans la file d'attente d'une instance et peuvent être utilisées pour la mise à l'échelle automatique d'un point de terminaison. L'inférence asynchrone SageMaker inclut également des métriques au niveau de l'hôte. Pour plus d'informations sur les métriques au niveau de l'hôte, consultez Tâches SageMaker et métriques de point de terminaison. Ces métriques peuvent afficher l'utilisation des ressources qui peuvent vous aider à dimensionner correctement l'instance.
SageMaker prend en charge mise à l'échelle automatique pour les terminaux asynchrones. Contrairement aux points de terminaison hébergés en temps réel, les points de terminaison d'inférence asynchrone prennent en charge la réduction des instances à zéro en définissant la capacité minimale sur zéro. Pour les points de terminaison asynchrones, SageMaker vous recommande vivement de créer une configuration de politique pour la mise à l'échelle du suivi de la cible pour un modèle déployé (variante). Vous devez définir la politique de mise à l'échelle qui a mis à l'échelle ApproximateBacklogPerInstance
métrique personnalisée et définissez la MinCapacity
valeur à zéro.
L'inférence asynchrone vous permet de réduire les coûts en mettant à l'échelle automatiquement le nombre d'instances à zéro lorsqu'il n'y a pas de requêtes à traiter, de sorte que vous ne payez que lorsque votre point de terminaison traite les requêtes. Les demandes reçues lorsqu'il n'y a aucune instance sont mises en file d'attente pour traitement après la mise à l'échelle du point de terminaison. Par conséquent, pour les cas d'utilisation qui peuvent tolérer une pénalité de démarrage à froid de quelques minutes, vous pouvez éventuellement réduire le nombre d'instances de point de terminaison à zéro lorsqu'il n'y a pas de requêtes en attente et revenir en arrière à mesure que de nouvelles requêtes arrivent. Le temps de démarrage à froid dépend du temps nécessaire pour lancer un nouveau point de terminaison à partir de zéro. De plus, si le modèle lui-même est grand, le temps peut être plus long. Si votre travail devrait prendre plus de temps que le temps de traitement d'une heure, vous pouvez envisager la transformation par lots SageMaker.
De plus, vous pouvez également prendre en compte le temps de mise en file d'attente de votre demande combiné au temps de traitement pour choisir le type d'instance. Par exemple, si votre cas d'utilisation peut tolérer des heures d'attente, vous pouvez choisir une instance plus petite pour réduire les coûts.
Pour obtenir des conseils supplémentaires sur le dimensionnement correct des instances et la mise à l'échelle automatique pour les points de terminaison SageMaker, reportez-vous à Assurez des ressources de calcul efficaces sur Amazon SageMaker.
Inférence sans serveur
L'inférence sans serveur vous permet de déployer des modèles ML pour l'inférence sans avoir à configurer ou à gérer l'infrastructure sous-jacente. En fonction du volume de demandes d'inférence reçues par votre modèle, l'inférence sans serveur SageMaker provisionne, dimensionne et désactive automatiquement la capacité de calcul. Par conséquent, vous ne payez que le temps de calcul pour exécuter votre code d'inférence et la quantité de données traitées, et non le temps d'inactivité. Pour les points de terminaison sans serveur, le provisionnement d'instance n'est pas nécessaire. Vous devez fournir le taille de la mémoire et simultanéité maximale. Étant donné que les points de terminaison sans serveur fournissent des ressources de calcul à la demande, votre point de terminaison peut subir quelques secondes supplémentaires de latence (démarrage à froid) pour le premier appel après une période d'inactivité. Vous payez pour la capacité de calcul utilisée pour traiter les demandes d'inférence, facturée à la milliseconde, au Go-mois de stockage provisionné et à la quantité de données traitées. Les frais de calcul dépendent de la configuration de mémoire que vous choisissez.
Dans Cost Explorer, vous pouvez filtrer les coûts des terminaux sans serveur en appliquant un filtre sur le type d'utilisation. Le nom de ce type d'utilisation est structuré comme REGION-ServerlessInf:Mem-MemorySize
(par exemple, USE2-ServerlessInf:Mem-4GB
). Notez que les types d'utilisation du volume en Go et des données traitées en Go sont les mêmes que les points de terminaison en temps réel.
Vous pouvez voir la répartition des coûts en appliquant des filtres supplémentaires tels que le numéro de compte, le type d'instance, la région, etc. La capture d'écran suivante montre la répartition des coûts en appliquant des filtres pour le type d'utilisation d'inférence sans serveur.
Optimiser les coûts pour l'inférence sans serveur
Lors de la configuration de votre point de terminaison sans serveur, vous pouvez spécifier la taille de la mémoire et le nombre maximal d'appels simultanés. L'inférence sans serveur SageMaker attribue automatiquement des ressources de calcul proportionnelles à la mémoire que vous sélectionnez. Si vous choisissez une taille de mémoire supérieure, votre conteneur a accès à davantage de vCPU. Avec l'inférence sans serveur, vous ne payez que la capacité de calcul utilisée pour traiter les demandes d'inférence, facturée à la milliseconde, et la quantité de données traitées. Les frais de calcul dépendent de la configuration de mémoire que vous choisissez. Les tailles de mémoire que vous pouvez choisir sont 1024 Mo, 2048 Mo, 3072 Mo, 4096 Mo, 5120 Mo et 6144 Mo. Le prix augmente avec l'augmentation de la taille de la mémoire, comme expliqué dans Tarification d'Amazon SageMaker, il est donc important de sélectionner la bonne taille de mémoire. En règle générale, la taille de la mémoire doit être au moins aussi grande que la taille de votre modèle. Cependant, il est recommandé de se référer à l'utilisation de la mémoire lors du choix de la taille de la mémoire du point de terminaison, en plus de la taille du modèle lui-même.
Meilleures pratiques générales pour optimiser les coûts d'inférence SageMaker
L'optimisation des coûts d'hébergement n'est pas un événement ponctuel. Il s'agit d'un processus continu de surveillance de l'infrastructure déployée, des modèles d'utilisation et des performances, ainsi que de la surveillance des nouvelles solutions innovantes publiées par AWS qui pourraient avoir un impact sur les coûts. Tenez compte des bonnes pratiques suivantes :
- Choisissez un type d'instance approprié – SageMaker prend en charge plusieurs types d'instances, chacun avec différentes combinaisons de capacités de CPU, de GPU, de mémoire et de stockage. En fonction des besoins en ressources de votre modèle, choisissez un type d'instance qui fournit les ressources nécessaires sans surprovisionnement. Pour plus d'informations sur les types d'instances SageMaker disponibles, leurs spécifications et des conseils sur la sélection de la bonne instance, reportez-vous à Assurez des ressources de calcul efficaces sur Amazon SageMaker.
- Tester en mode local – Afin de détecter les pannes et de déboguer plus rapidement, il est recommandé de tester le code et le conteneur (en cas de BYOC) dans mode local avant d'exécuter la charge de travail d'inférence sur l'instance SageMaker distante. Le mode local est un excellent moyen de tester vos scripts avant de les exécuter dans un environnement d'hébergement géré SageMaker.
- Optimiser les modèles pour être plus performants – Les modèles non optimisés peuvent entraîner des temps d'exécution plus longs et utiliser plus de ressources. Vous pouvez choisir d'utiliser des instances plus nombreuses ou plus grandes pour améliorer les performances ; cependant, cela entraîne des coûts plus élevés. En optimisant vos modèles pour qu'ils soient plus performants, vous pourrez peut-être réduire les coûts en utilisant moins d'instances ou des instances plus petites tout en conservant des caractéristiques de performances identiques ou meilleures. Vous pouvez utiliser Amazon Sage Maker Neo avec l'inférence SageMaker pour optimiser automatiquement les modèles. Pour plus de détails et des exemples, voir Optimiser les performances du modèle avec Neo.
- Utiliser des balises et des outils de gestion des coûts – Pour maintenir la visibilité sur vos charges de travail d'inférence, il est recommandé d'utiliser des balises ainsi que des outils de gestion des coûts AWS tels que Budgets AWS, Console de facturation AWS, et la fonctionnalité de prévision de Cost Explorer. Vous pouvez également explorer les plans d'épargne SageMaker en tant que modèle de tarification flexible. Pour plus d'informations sur ces options, reportez-vous à Partie 1 de cette série.
Conclusion
Dans cet article, nous avons fourni des conseils sur l'analyse des coûts et les meilleures pratiques lors de l'utilisation des options d'inférence SageMaker. Alors que l'apprentissage automatique s'impose comme un outil puissant dans tous les secteurs, la formation et l'exécution de modèles de ML doivent rester rentables. SageMaker offre un ensemble de fonctionnalités large et approfondi pour faciliter chaque étape du pipeline ML et offre des opportunités d'optimisation des coûts sans affecter les performances ou l'agilité. Contactez votre équipe AWS pour obtenir des conseils sur les coûts de vos charges de travail SageMaker.
À propos des auteurs
Deepali Rajale est spécialiste senior IA/ML chez AWS. Elle travaille avec des entreprises clientes en fournissant des conseils techniques sur les meilleures pratiques pour le déploiement et la maintenance des solutions AI/ML dans l'écosystème AWS. Elle a travaillé avec un large éventail d'organisations sur divers cas d'utilisation d'apprentissage en profondeur impliquant la PNL et la vision par ordinateur. Elle se passionne pour donner aux organisations les moyens de tirer parti de l'IA générative pour améliorer leur expérience d'utilisation. Dans ses temps libres, elle aime les films, la musique et la littérature.
Uri Rosenberg est le responsable technique spécialisé en IA et ML pour l'Europe, le Moyen-Orient et l'Afrique. Basé en Israël, Uri s'efforce d'autonomiser les entreprises clientes sur tout ce qui concerne le ML pour concevoir, construire et exploiter à grande échelle. Dans ses temps libres, il aime faire du vélo, de la randonnée et de l'escalade.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- PlatoAiStream. Intelligence des données Web3. Connaissance Amplifiée. Accéder ici.
- Frapper l'avenir avec Adryenn Ashley. Accéder ici.
- Achetez et vendez des actions de sociétés PRE-IPO avec PREIPO®. Accéder ici.
- La source: https://aws.amazon.com/blogs/machine-learning/part-5-analyze-amazon-sagemaker-spend-and-determine-cost-optimization-opportunities-based-on-usage-part-5-hosting/
- :possède
- :est
- :ne pas
- :où
- $UP
- 000
- 1
- 100
- 2021
- 24
- 30
- 40
- 500
- 7
- 8
- a
- Capable
- A Propos
- accélérateurs
- accès
- Compte
- hybrides
- atteindre
- atteint
- à travers
- Action
- actes
- ajouter
- ajout
- Supplémentaire
- Afrique
- Après
- AI
- AI / ML
- algorithmes
- Tous
- allocation
- permet
- déjà
- aussi
- Amazon
- Amazon EC2
- Amazon Sage Maker
- Amazon Web Services
- montant
- an
- selon une analyse de l’Université de Princeton
- il analyse
- et les
- Une autre
- tous
- plus
- api
- appliqué
- Appliquer
- Application
- approprié
- d'environ
- SONT
- artificiel
- intelligence artificielle
- Intelligence artificielle (AI)
- AS
- associé
- At
- joindre
- tentative
- auto
- automatiquement
- disponibles
- éviter
- AWS
- RETOUR
- basé
- BE
- car
- était
- before
- ci-dessous
- avantageux
- profiter
- avantages.
- LES MEILLEURS
- les meilleures pratiques
- Améliorée
- Big
- plus gros
- facturation
- Block
- Breakdown
- apporter
- construire
- intégré
- mais
- by
- CAN
- candidat
- candidats
- capacités
- Compétences
- maisons
- cas
- certaines
- Modifications
- caractéristiques
- charge
- accusé
- des charges
- le choix
- Selectionnez
- choose
- classiques
- Escalade
- Grappe
- code
- du froid
- комбинации
- combiner
- combiné
- comment
- vient
- Commun
- communément
- complet
- composant
- composants électriques
- calcul
- ordinateur
- Vision par ordinateur
- concurrent
- configuration
- consécutif
- Considérer
- considérations
- consolider
- Consolide
- consommées
- consommation
- Contenant
- Conteneurs
- contient
- continu
- Core
- correct
- Prix
- La gestion des coûts
- rentable
- Costs
- pourriez
- engendrent
- création
- Lecture
- Customiser
- Clients
- Tous les jours
- données
- ensembles de données
- jours
- décider
- Décider
- profond
- l'apprentissage en profondeur
- Réglage par défaut
- Demande
- dépend
- déployer
- déployé
- déployer
- déploiement
- déploie
- Conception
- un
- voulu
- détail
- détails
- Déterminer
- différent
- discuter
- Commande
- affiche
- distribuer
- do
- Ne fait pas
- fait
- Ne pas
- double
- down
- download
- deux
- pendant
- chacun
- Plus tôt
- même
- Est
- risque numérique
- efficace
- non plus
- vous accompagner
- l'autonomisation des
- permettre
- permet
- Endpoint
- énergie
- de renforcer
- assurer
- Entreprise
- Environment
- environnements
- égal
- Équivalent
- erreur
- Erreurs
- établit
- estimation
- Europe
- évaluer
- événement
- exemple
- dépassent
- échange
- attendu
- d'experience
- expérience
- expliqué
- explorez
- explorateur
- précieux
- supplémentaire
- œil
- faciliter
- FAIL
- Échoué
- famille
- plus rapide
- Fonctionnalité
- few
- moins
- Déposez votre dernière attestation
- Fichiers
- une fonction filtre
- filtration
- filtres
- Prénom
- s'adapter
- flexible
- Focus
- Abonnement
- suit
- Pour
- trouvé
- quatre
- De
- plein
- fonctions
- En outre
- Gain
- Général
- générateur
- génératif
- IA générative
- obtenez
- donné
- Bien
- GPU
- graphiques
- l'
- plus grand
- Réservation de groupe
- l'orientation
- Poignées
- Vous avez
- ayant
- he
- aider
- a aidé
- ici
- Haute
- augmentation
- le plus élevé
- sa
- Horizontal
- organisé
- hébergement
- frais d'hébergement
- hôtes
- heure
- HEURES
- Comment
- How To
- Cependant
- HTML
- http
- HTTPS
- Des centaines
- i
- idéal
- identifier
- Idle
- if
- Impact
- impactant
- important
- améliorer
- in
- comprendre
- inclut
- Y compris
- Augmente
- indique
- individuel
- secteurs
- d'information
- Infrastructure
- technologie innovante
- contribution
- idées.
- instance
- Des instructions
- Intelligence
- l'interaction
- intérieurement
- développement
- Introduction
- impliquant
- Israël
- IT
- SES
- lui-même
- Emploi
- Emplois
- jpg
- Vif
- en gardant
- ACTIVITES
- langue
- gros
- plus importantes
- Nom
- Latence
- lancer
- lancé
- conduire
- Conduit
- savant
- apprentissage
- au
- Cours
- Leçons apprises
- Niveau
- Levier
- vos produits
- comme
- Gamme
- lié
- Liste
- littérature
- charge
- locales
- emplacement
- Location
- plus long
- Style
- Faible
- baisser
- Réduction du coût
- click
- machine learning
- maintenir
- Maintenir
- maintient
- a prendre une
- FAIT DU
- gérer
- gérés
- gestion
- d'outils de gestion
- manager
- manuellement
- Map
- marqué
- Match
- maximales
- Mai..
- veux dire
- Découvrez
- Mémoire
- mentionné
- métrique
- Métrique
- Milieu
- Moyen-Orient
- pourrait
- minimum
- Minutes
- ML
- Mode
- modèle
- numériques jumeaux (digital twin models)
- Surveiller
- surveillé
- Stack monitoring
- Mois
- mensuel
- mois
- PLUS
- Films
- Point de terminaison multimodèle
- plusieurs
- Musique
- must
- prénom
- noms
- nécessaire
- Besoin
- nécessaire
- Besoins
- réseau et
- PANNE DU RÉSEAU
- Nouveauté
- nlp
- aucune
- déclaration
- Notifications
- nombre
- objets
- obtenir
- obtenu
- of
- de rabais
- Offres Speciales
- direct
- on
- ONE
- en ligne
- uniquement
- fonctionner
- Opportunités
- optimaux
- à mettre en œuvre pour gérer une entreprise rentable. Ce guide est basé sur trois décennies d'expérience
- Optimiser
- l'optimisation
- Option
- Options
- or
- de commander
- organisations
- Autre
- ande
- coupure de courant
- décrit
- sortie
- exceptionnel
- plus de
- propre
- Parallèle
- paramètre
- paramètres
- partie
- pass
- En passant
- passionné
- passé
- Patron de Couture
- motifs
- Payer
- pourcentage
- performant
- période
- périodique
- objectifs
- en particulier pendant la préparation
- pipeline
- plan
- plans
- Platon
- Intelligence des données Platon
- PlatonDonnées
- politique
- peut-être
- Post
- Poteaux
- solide
- pratique
- pratiques
- Prédictions
- prix
- établissement des prix
- Modèle de prix
- Cybersécurité
- processus
- Traité
- les process
- traitement
- processeurs
- Vidéo
- la promotion de
- fournir
- à condition de
- fournit
- aportando
- disposition
- des fins
- Putting
- requêtes
- gamme
- Tarif
- plutôt
- nous joindre
- en cours
- réal
- en temps réel
- recevoir
- reçu
- reçoit
- recommander
- recommandations
- recommandé
- recommande
- record
- Articles
- réduire
- région
- de Presse
- rester
- éloigné
- Supprimé
- rapport
- Rapports
- Rapports
- nécessaire
- demandes
- conditions
- Exigences
- ressource
- Resources
- réponse
- REST
- résultat
- Résultats
- Retours
- bon
- Rock
- Roulent
- routes
- Règle
- Courir
- pour le running
- sagemaker
- Inférence SageMaker
- même
- Épargnez
- Épargnes
- Escaliers intérieurs
- Balance
- mise à l'échelle
- scénarios
- prévu
- gratter
- scripts
- secondes
- les sections
- sur le lien
- choisi
- la sélection
- supérieur
- envoyé
- séparé
- Série
- Sans serveur
- service
- Services
- service
- set
- mise
- plusieurs
- Shadow
- Partager
- elle
- devrait
- montrer
- montré
- montré
- Spectacles
- De même
- étapes
- depuis
- unique
- Taille
- tailles
- Tranche
- petit
- faibles
- So
- Solutions
- quelques
- Identifier
- spécialiste
- groupe de neurones
- caractéristiques
- passer
- scission
- empiler
- Standard
- Commencer
- j'ai commencé
- étapes
- storage
- stockée
- fortement
- structuré
- succès
- réussi
- Avec succès
- tel
- suffisant
- convient
- Support
- soutien proactif
- Appareils
- Les soutiens
- combustion propre
- TAG
- Prenez
- prend
- tâches
- équipe
- Technique
- tester
- Essais
- tests
- que
- qui
- La
- leur
- Les
- puis
- Là.
- ainsi
- donc
- Ces
- des choses
- this
- ceux
- Avec
- débit
- fiable
- fois
- à
- outil
- les outils
- sujet
- Total
- circulation
- Formation
- Transformer
- transformateurs
- Trends
- oui
- se tourne
- type
- types
- sous-jacent
- contrairement à
- imprévisible
- téléchargé
- Utilisation
- utilisé
- cas d'utilisation
- d'utiliser
- Usages
- en utilisant
- d'habitude
- Utilisant
- VALIDER
- Plus-value
- Valeurs
- Variante
- divers
- Voir
- définition
- vision
- visualisation
- le volume
- volumes
- attendez
- souhaitez
- Façon..
- we
- web
- services Web
- WELL
- Quoi
- quand
- que
- qui
- tout en
- large
- Large gamme
- sera
- comprenant
- dans les
- sans
- travaillé
- travailleur
- ouvriers
- vos contrats
- écriture
- code écrit
- Vous n'avez
- Votre
- zéphyrnet
- zéro