Configurez la répartition des coûts au niveau de l'entreprise pour les environnements et les charges de travail de ML à l'aide du balisage des ressources dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Configurez la répartition des coûts au niveau de l'entreprise pour les environnements ML et les charges de travail à l'aide du balisage des ressources dans Amazon SageMaker

Alors que les entreprises et les responsables informatiques cherchent à accélérer l'adoption de l'apprentissage automatique (ML), il est de plus en plus nécessaire de comprendre la répartition des dépenses et des coûts pour votre environnement ML afin de répondre aux exigences de l'entreprise. Sans une gestion et une gouvernance des coûts appropriées, vos dépenses de ML peuvent entraîner des surprises dans votre facture AWS mensuelle. Amazon Sage Maker est une plateforme ML entièrement gérée dans le cloud qui fournit à nos entreprises clientes des outils et des ressources pour établir des mesures de répartition des coûts et améliorer la visibilité des coûts détaillés et de l'utilisation par vos équipes, unités commerciales, produits, etc.

Dans cet article, nous partageons des conseils et des bonnes pratiques concernant la répartition des coûts pour votre environnement et vos charges de travail SageMaker. Dans presque tous les services AWS, y compris SageMaker, l'application de balises aux ressources est un moyen standard de suivre les coûts. Ces balises peuvent vous aider à suivre, signaler et surveiller vos dépenses de ML grâce à des solutions prêtes à l'emploi telles que Explorateur de coûts AWS ainsi que Budgets AWS, ainsi que des solutions personnalisées basées sur les données de Rapports de coût et d'utilisation AWS (CUR).

Balisage de la répartition des coûts

La répartition des coûts sur AWS est un processus en trois étapes :

  1. Attacher balises de répartition des coûts à vos ressources.
  2. Activez vos balises dans le Balises de répartition des coûts section de la console de facturation AWS.
  3. Utilisez les balises pour suivre et filtrer les rapports de répartition des coûts.

Une fois que vous avez créé et attaché des balises aux ressources, elles apparaissent dans la console AWS Billing Balises de répartition des coûts section sous Balises de répartition des coûts définies par l'utilisateur. Il peut s'écouler jusqu'à 24 heures avant que les balises n'apparaissent après leur création. Vous devez ensuite activer ces balises pour qu'AWS commence à les suivre pour vos ressources. En règle générale, après l'activation d'une balise, il faut environ 24 à 48 heures pour que les balises s'affichent dans Cost Explorer. Le moyen le plus simple de vérifier si vos balises fonctionnent est de rechercher votre nouvelle balise dans le filtre de balises de Cost Explorer. Si c'est le cas, vous êtes prêt à utiliser les balises pour vos rapports sur la répartition des coûts. Vous pouvez ensuite choisir de regrouper vos résultats par clés de balise ou de filtrer par valeurs de balise, comme illustré dans la capture d'écran suivante.

Configurez la répartition des coûts au niveau de l'entreprise pour les environnements et les charges de travail de ML à l'aide du balisage des ressources dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Une chose à noter : si vous utilisez Organisations AWS et ont des comptes AWS liés, les balises ne peuvent être activées que dans le compte du payeur principal. En option, vous pouvez également activer les CUR pour les comptes AWS qui activent les rapports de répartition des coûts sous forme de fichier CSV avec votre utilisation et vos coûts regroupés par vos balises actives. Cela vous donne un suivi plus détaillé de vos coûts et facilite la mise en place de vos propres solutions de reporting personnalisées.

Balisage dans SageMaker

À un niveau élevé, le balisage des ressources SageMaker peut être regroupé en deux compartiments :

  • Balisage de l'environnement du bloc-notes SageMaker, soit Amazon SageMakerStudio domaines et utilisateurs de domaine, ou instances de bloc-notes SageMaker
  • Balisage des tâches gérées par SageMaker (étiquetage, traitement, formation, réglage des hyperparamètres, transformation par lots, etc.) et des ressources (telles que les modèles, les équipes de travail, les configurations des terminaux et les terminaux)

Nous les couvrons plus en détail dans cet article et fournissons des solutions sur la façon d'appliquer le contrôle de gouvernance pour assurer une bonne hygiène de marquage.

Balisage des domaines et des utilisateurs de SageMaker Studio

Studio est un environnement de développement intégré (IDE) basé sur le Web pour le ML qui vous permet de créer, d'entraîner, de déboguer, de déployer et de surveiller vos modèles de ML. Vous pouvez lancer rapidement des blocs-notes Studio et composer dynamiquement des ressources de calcul sous-jacentes sans interrompre votre travail.

Pour baliser automatiquement ces ressources dynamiques, vous devez attribuer des balises au domaine SageMaker et aux utilisateurs de domaine qui disposent d'un accès provisionné à ces ressources. Vous pouvez spécifier ces balises dans le paramètre tags de créer-domaine or créer un profil utilisateur lors de la création du profil ou du domaine, ou vous pouvez les ajouter ultérieurement à l'aide de la ajouter des balises API. Studio copie et attribue automatiquement ces balises aux blocs-notes Studio créés dans le domaine ou par des utilisateurs spécifiques. Vous pouvez également ajouter des balises aux domaines SageMaker en modifiant les paramètres du domaine dans le panneau de configuration de Studio.

Voici un exemple d'attribution de balises au profil lors de la création.

aws sagemaker create-user-profile --domain-id  --user-profile-name data-scientist-full --tags Key=studiouserid,Value= --user-settings ExecutionRole=arn:aws:iam:::role/SageMakerStudioExecutionRole_datascientist-full

Pour taguer des domaines et des utilisateurs existants, utilisez la add-tags API. Les balises sont ensuite appliquées à tous les nouveaux blocs-notes. Pour que ces balises soient appliquées à vos notebooks existants, vous devez redémarrer l'application Studio (Kernel Gateway et Jupyter Server) appartenant à ce profil utilisateur. Cela n'entraînera aucune perte de données de l'ordinateur portable. Référez-vous à ceci Arrêter et mettre à jour SageMaker Studio et les applications Studio pour savoir comment supprimer et redémarrer vos applications Studio.

Configurez la répartition des coûts au niveau de l'entreprise pour les environnements et les charges de travail de ML à l'aide du balisage des ressources dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Balisage des instances de bloc-notes SageMaker

Dans le cas d'une instance de bloc-notes SageMaker, le balisage est appliqué à l'instance elle-même. Les balises sont attribuées à toutes les ressources exécutées dans la même instance. Vous pouvez spécifier des balises par programmation à l'aide du paramètre tags dans le créer-notebook-instance API ou ajoutez-les via la console SageMaker lors de la création de l'instance. Vous pouvez également ajouter ou mettre à jour des balises à tout moment à l'aide de la ajouter des balises API ou via la console SageMaker.

Notez que cela exclut les tâches et les ressources gérées par SageMaker, telles que les tâches de formation et de traitement, car elles se trouvent dans l'environnement de service plutôt que sur l'instance. Dans la section suivante, nous verrons plus en détail comment appliquer le balisage à ces ressources.

Balisage des tâches et des ressources gérées par SageMaker

Pour les tâches et les ressources gérées par SageMaker, le balisage doit être appliqué au tags attribut dans le cadre de chaque demande d'API. Un SKLearnProcessor exemple est illustré dans le code suivant. Vous trouverez d'autres exemples d'attribution de balises à d'autres tâches et ressources gérées par SageMaker sur le GitHub repo.

from sagemaker import get_execution_role
from sagemaker.sklearn.processing import SKLearnProcessor

processing_tags = [{' Key':"cost-center','Value':'TF2WorkflowProcessing'}]
sklearn_processorl = SKLearnProcessor(framework_version='0.23-1' ,
									 role=get_execution_role(),
									 instance_type='ml.m5.xlarge',
									 instance_count=2,
									 tags=processing_tags)

Balisage des pipelines SageMaker

Dans le cas des pipelines SageMaker, vous pouvez marquer l'intégralité du pipeline dans son ensemble au lieu de chaque étape individuelle. Le pipeline SageMaker propage automatiquement les balises à chaque étape du pipeline. Vous avez toujours la possibilité d'ajouter des balises supplémentaires et distinctes à des étapes individuelles si nécessaire. Dans l'interface utilisateur de Studio, les balises de pipeline s'affichent dans la section des métadonnées.

Configurez la répartition des coûts au niveau de l'entreprise pour les environnements et les charges de travail de ML à l'aide du balisage des ressources dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Pour appliquer des balises à un pipeline, utilisez le SDK Python SageMaker :

pipeline_tags = [ {'Key': 'pipeline-type', 'Value': 'TF2WorkflowPipeline'}]
pipeline.upsert(role_arn=role, tags=pipeline_tags)
execution = pipeline.start()

Appliquer le balisage à l'aide de stratégies IAM

Bien que le balisage soit un mécanisme efficace pour mettre en œuvre des stratégies de gestion et de gouvernance du cloud, appliquer le bon comportement de balisage peut être difficile si vous le laissez aux utilisateurs finaux. Comment empêchez-vous la création de ressources de ML si une balise spécifique est manquante, comment vous assurez-vous que les bonnes balises sont appliquées et comment empêchez-vous les utilisateurs de supprimer des balises existantes ?

Vous pouvez accomplir cela en utilisant Gestion des identités et des accès AWS (IAM). Le code suivant est un exemple de stratégie qui empêche les actions de SageMaker telles que CreateDomain or CreateNotebookInstance si la demande ne contient pas la clé d'environnement et l'une des valeurs de la liste. La ForAllValues modificateur avec le aws:TagKeys clé de condition indique que seule la clé environment est autorisé dans la demande. Cela empêche les utilisateurs d'inclure d'autres clés, comme l'utilisation accidentelle Environment au lieu de environment.

"sagemaker:CreateTrainingJob"
      ],
      "{
      "Sid": "SageMakerEnforceEnvtOnCreate",
      "Action": [
        "sagemaker:CreateDomain",
        "sagemaker:CreateEndpoint",
        "sagemaker:CreateNotebookInstance",
        Effect": "Allow",
      "Resource": "*",
  "Condition": {
            "StringEquals": {
                "aws:RequestTag/environment": [
                    "dev","staging","production"
                ]
            },
            "ForAllValues:StringEquals": {"aws:TagKeys": "environment"}
        }
      }

Politiques de balise ainsi que politiques de contrôle des services (SCP) peuvent également être un bon moyen de standardiser la création et l'étiquetage de vos ressources ML. Pour plus d'informations sur la mise en œuvre d'une stratégie de balisage qui applique et valide le balisage au niveau de l'organisation, reportez-vous à Série de blogs sur la répartition des coûts n° 3 : Appliquer et valider les balises de ressources AWS.

Rapports sur la répartition des coûts

Vous pouvez afficher les balises en filtrant les vues sur Cost Explorer, en affichant un rapport mensuel de répartition des coûts, ou en examinant le CUR.

Visualisation des balises dans Cost Explorer

Cost Explorer est un outil qui vous permet de visualiser et d'analyser vos coûts et votre utilisation. Vous pouvez explorer votre utilisation et vos coûts à l'aide du graphique principal : les rapports de coût et d'utilisation de Cost Explorer. Pour une vidéo rapide sur l'utilisation de Cost Explorer, consultez Comment puis-je utiliser Cost Explorer pour analyser mes dépenses et mon utilisation ?

Avec Cost Explorer, vous pouvez filtrer la façon dont vous affichez vos coûts AWS par balises. Par groupe nous permet de filtrer les résultats par des clés de balise telles que Environment, Deploymentou Cost Center. Le filtre de balise nous aide à sélectionner la valeur souhaitée, quelle que soit la clé. Les exemples comprennent Production ainsi que Staging. Gardez à l'esprit que vous devez exécuter les ressources après avoir ajouté et activé des balises ; sinon, Cost Explorer n'aura aucune donnée d'utilisation et la valeur de la balise ne sera pas affichée en tant que filtre ou groupe par option.

Configurez la répartition des coûts au niveau de l'entreprise pour les environnements et les charges de travail de ML à l'aide du balisage des ressources dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

La capture d'écran suivante est un exemple de filtrage par toutes les valeurs de BusinessUnit Étiquette.

Configurez la répartition des coûts au niveau de l'entreprise pour les environnements et les charges de travail de ML à l'aide du balisage des ressources dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Examen des balises dans le CUR

Le rapport de coût et d'utilisation contient l'ensemble de données de coût et d'utilisation le plus complet disponible. Le rapport contient des éléments de ligne pour chaque combinaison unique de produit AWS, de type d'utilisation et d'opération que votre compte AWS utilise. Vous pouvez personnaliser le CUR pour agréger les informations par heure ou par jour. Un rapport mensuel de répartition des coûts est un moyen de configurer des rapports de répartition des coûts. Vous pouvez mettre en place un rapport mensuel de répartition des coûts qui répertorie l'utilisation d'AWS pour votre compte par catégorie de produit et utilisateur de compte lié. Le rapport contient les mêmes postes que le rapport de facturation détaillé et des colonnes supplémentaires pour vos clés de balise. Vous pouvez le configurer et télécharger votre rapport en suivant les étapes de Rapport mensuel de répartition des coûts.

La capture d'écran suivante montre comment les clés de balise définies par l'utilisateur s'affichent dans le CUR. Les clés de balise définies par l'utilisateur ont le préfixe user tels que user:Department ainsi que user:CostCenter. Les clés de balise générées par AWS ont le préfixe aws.

Configurez la répartition des coûts au niveau de l'entreprise pour les environnements et les charges de travail de ML à l'aide du balisage des ressources dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Visualisez le CUR à l'aide d'Amazon Athena et d'Amazon QuickSight

Amazone Athéna est un service de requête interactif qui facilite l'analyse des données dans Amazon S3 à l'aide du SQL standard. Athena est sans serveur, il n'y a donc pas d'infrastructure à gérer et vous ne payez que pour les requêtes que vous exécutez. Pour intégrer Athena aux CUR, reportez-vous à Interrogation des rapports de coût et d'utilisation à l'aide d'Amazon Athena. Vous pouvez ensuite créer des requêtes personnalisées pour interroger les données CUR à l'aide du SQL standard. La capture d'écran suivante est un exemple de requête pour filtrer toutes les ressources qui ont la valeur TF2WorkflowTraining pour le cost-center Étiquette.

select * from {$table_name} where resource_tags_user_cost-center= 'TF2WorkflowTraining'

Dans l'exemple suivant, nous essayons de déterminer quelles ressources manquent de valeurs sous le cost-center Étiquette.

SELECT
 bill_payer_account_id, line_item_usage_account_id, DATE_FORMAT((line_item_usage_start_date), '%Y-%m-%d') AS day_line_item_usage_start_date, line_item_resource_id, line_item_usage_type, resource_tags_user_cost-center
FROM
{$table_name} 
WHERE
 resource_tags_user_cost-center IS NULL
AND line_item_product_code = 'AmazonSageMaker'

Vous trouverez plus d'informations et des exemples de requêtes dans le Bibliothèque de requêtes AWS CUR.

Vous pouvez également introduire des données 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 sur l'ingestion de données CUR dans QuickSight, consultez Comment puis-je ingérer et visualiser le rapport d'utilisation et de coût AWS (CUR) dans Amazon QuickSight.

Suivi budgétaire à l'aide de balises

AWS Budgets est un excellent moyen de fournir une alerte précoce en cas de pics de dépenses inattendus. Vous pouvez créer des budgets personnalisés qui vous alertent lorsque vos coûts et votre utilisation de ML dépassent (ou devraient dépasser) vos seuils définis par l'utilisateur. Avec AWS Budgets, vous pouvez surveiller vos coûts ML mensuels totaux ou filtrer vos budgets pour suivre les coûts associés à des dimensions d'utilisation spécifiques. Par exemple, vous pouvez définir la portée du budget pour inclure les coûts des ressources SageMaker marqués comme cost-center: ML-Marketing, comme illustré dans la capture d'écran suivante. Pour des dimensions supplémentaires et des instructions détaillées sur la configuration des budgets AWS, reportez-vous à ici.

Configurez la répartition des coûts au niveau de l'entreprise pour les environnements et les charges de travail de ML à l'aide du balisage des ressources dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Avec alertes budgétaires, vous pouvez envoyer des notifications lorsque vos limites budgétaires sont (ou sont sur le point d'être) dépassées. Ces alertes peuvent également être affichées sur un Service de notification simple d'Amazon (Amazon SNS). Un AWS Lambda La fonction qui s'abonne à la rubrique SNS est alors invoquée, et toutes les actions implémentables par programmation peuvent être prises.

AWS Budgets vous permet également de configurer mesures budgétaires, qui sont des étapes que vous pouvez suivre lorsqu'un seuil budgétaire est dépassé (montants réels ou prévisionnels). Ce niveau de contrôle vous permet de réduire les dépenses excessives involontaires dans votre compte. Vous pouvez configurer des réponses spécifiques au coût et à l'utilisation dans votre compte qui seront appliquées automatiquement ou via un processus d'approbation de flux de travail lorsqu'un objectif budgétaire a été dépassé. Il s'agit d'une solution vraiment puissante pour garantir que vos dépenses en ML sont cohérentes avec les objectifs de l'entreprise. Vous pouvez sélectionner le type d'action à entreprendre. Par exemple, lorsqu'un seuil budgétaire est dépassé, vous pouvez déplacer des utilisateurs IAM spécifiques des autorisations d'administrateur vers la lecture seule. Pour les clients utilisant Organisations, vous pouvez appliquer des actions à une unité organisationnelle entière en les déplaçant d'administrateur à en lecture seule. Pour plus de détails sur la gestion des coûts à l'aide d'actions budgétaires, reportez-vous à Comment gérer les dépassements de coûts dans votre environnement multicompte AWS – Partie 1.

Vous pouvez également configurer un rapport pour surveiller les performances de vos budgets existants sur une cadence quotidienne, hebdomadaire ou mensuelle et envoyer ce rapport à un maximum de 50 adresses e-mail. Avec Rapports budgétaires AWS, vous pouvez combiner tous les budgets liés à SageMaker dans un seul rapport. Cette fonctionnalité vous permet de suivre votre empreinte SageMaker à partir d'un emplacement unique, comme illustré dans la capture d'écran suivante. Vous pouvez choisir de recevoir ces rapports sur une cadence quotidienne, hebdomadaire ou mensuelle (j'ai choisi Hebdomadaire pour cet exemple), et choisissez le jour de la semaine où vous souhaitez les recevoir.

Cette fonctionnalité est utile pour tenir vos parties prenantes informées de vos coûts et de votre utilisation de SageMaker, et les aider à voir quand les dépenses n'évoluent pas comme prévu.

Configurez la répartition des coûts au niveau de l'entreprise pour les environnements et les charges de travail de ML à l'aide du balisage des ressources dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Après avoir configuré cette configuration, vous devriez recevoir un e-mail semblable au suivant.

Configurez la répartition des coûts au niveau de l'entreprise pour les environnements et les charges de travail de ML à l'aide du balisage des ressources dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Conclusion

Dans cet article, nous avons montré comment configurer le balisage de répartition des coûts pour SageMaker et partagé des conseils sur les meilleures pratiques de balisage pour votre environnement et vos charges de travail SageMaker. Nous avons ensuite discuté de différentes options de rapport comme Cost Explorer et le CUR pour vous aider à améliorer la visibilité de vos dépenses en ML. Enfin, nous avons présenté AWS Budgets et le rapport récapitulatif du budget pour vous aider à surveiller les dépenses de ML de votre organisation.

Pour plus d'informations sur l'application et l'activation des balises de répartition des coûts, voir Balises de répartition des coûts définies par l'utilisateur.


À propos des auteurs

Sean MorganSean Morgan est un architecte de solutions AI/ML chez AWS. Il a de l'expérience dans les domaines des semi-conducteurs et de la recherche universitaire, et utilise son expérience pour aider les clients à atteindre leurs objectifs sur AWS. Pendant son temps libre, Sean est un contributeur et un mainteneur open source actif, et est le responsable du groupe d'intérêt spécial pour les modules complémentaires TensorFlow.

Configurez la répartition des coûts au niveau de l'entreprise pour les environnements et les charges de travail de ML à l'aide du balisage des ressources dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Brent Rabowski se concentre sur la science des données chez AWS et tire parti de son expertise pour aider les clients AWS dans leurs propres projets de science des données.

Configurez la répartition des coûts au niveau de l'entreprise pour les environnements et les charges de travail de ML à l'aide du balisage des ressources dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Nilesh Shetty est responsable de compte technique senior chez AWS, où il aide les clients du support d'entreprise à rationaliser leurs opérations cloud sur AWS. Il est passionné par l'apprentissage automatique et a de l'expérience en tant que consultant, architecte et développeur. En dehors du travail, il aime écouter de la musique et regarder des sports.

Configurez la répartition des coûts au niveau de l'entreprise pour les environnements et les charges de travail de ML à l'aide du balisage des ressources dans Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.James Wu est un architecte de solution spécialiste senior AI/ML chez AWS. aider les clients à concevoir et à créer des solutions d'IA/ML. Le travail de James couvre un large éventail de cas d'utilisation du ML, avec un intérêt principal pour la vision par ordinateur, l'apprentissage en profondeur et la mise à l'échelle du ML dans l'entreprise. Avant de rejoindre AWS, James a été architecte, développeur et leader technologique pendant plus de 10 ans, dont 6 ans en ingénierie et 4 ans dans les secteurs du marketing et de la publicité.

Horodatage:

Plus de Apprentissage automatique AWS